feat(ci): Adds some CI
All checks were successful
build / build (push) Successful in 2m18s
Build and release / build (push) Successful in 11m48s

This commit is contained in:
Thomas Maurice 2024-02-12 17:32:52 +01:00
parent 86df61986e
commit dbe6120da6
Signed by: thomas
GPG key ID: 1D577F50583032A6
5 changed files with 149 additions and 0 deletions

View file

@ -0,0 +1,18 @@
name: build
on:
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: 1.22
cache: true
- run: go mod tidy
- run: go test -v ./...
- run: go build

View file

@ -0,0 +1,28 @@
name: Build and release
on:
push:
tags:
- 'v*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: 1.22
cache: true
- run: go mod tidy
- run: go test -v ./...
- run: git reset --hard
- uses: goreleaser/goreleaser-action@v2
if: success() && startsWith(github.ref, 'refs/tags/')
with:
version: latest
args: release --rm-dist
env:
GORELEASER_FORCE_TOKEN: gitea
GITEA_TOKEN: ${{ secrets.TOKEN }}

View file

@ -0,0 +1,20 @@
name: build
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version: 1.22
cache: true
- run: go mod tidy
- run: go test -v ./...
- run: go build

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
mailout.yml mailout.yml
mailout-prod.yml mailout-prod.yml
mailout mailout
dist

82
.goreleaser.yml Normal file
View file

@ -0,0 +1,82 @@
project_name: mailoutctl
builds:
- id: default
env: [CGO_ENABLED=0]
goos:
- linux
- darwin
goarch:
- amd64
- arm64
- arm
- "386"
flags:
- -trimpath
ldflags:
- |
-s -w
-X git.maurice.fr/thomas/mailout/pkg/version.Version={{ .Version }}
-X git.maurice.fr/thomas/mailout/pkg/version.Commit={{ .Commit }}
-X git.maurice.fr/thomas/mailout/pkg/version.BuildTime={{ .Date }}
ignore:
- goarch: "386"
archives:
- format: tar.gz
name_template: >-
{{ .ProjectName }}_
{{- .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
format_overrides:
- goos: windows
format: zip
wrap_in_directory: false
strip_parent_binary_folder: true
files:
- LICENSE
- README.md
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ incpatch .Version }}-next"
changelog:
sort: asc
filters:
exclude:
- "^test:"
- "merge conflict"
- Merge pull request
- Merge remote-tracking branch
- Merge branch
groups:
- title: "New Features"
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
order: 100
- title: "Bug fixes"
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
order: 200
- title: "Improvements"
regexp: '^.*?imp(\([[:word:]]+\))??!?:.+$'
order: 300
- title: "Documentation updates"
regexp: ^.*?doc(\([[:word:]]+\))??!?:.+$
order: 400
- title: Other miscellaneous work
order: 500
# nfpms:
# - maintainer: Carlos A Becker <root@carlosbecker.dev>
# description: Sample project.
# homepage: https://github.com/caarlos0/tasktimer
# license: MIT
# formats:
# - deb
# - rpm
# - apk
release:
prerelease: auto
gitea_urls:
api: https://git.maurice.fr/api/v1
download: https://git.maurice.fr
skip_tls_verify: false