diff --git a/.gitea/workflows/on_pr.yml b/.gitea/workflows/on_pr.yml new file mode 100644 index 0000000..c084d10 --- /dev/null +++ b/.gitea/workflows/on_pr.yml @@ -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 \ No newline at end of file diff --git a/.gitea/workflows/on_tag.yml b/.gitea/workflows/on_tag.yml new file mode 100644 index 0000000..2c793a7 --- /dev/null +++ b/.gitea/workflows/on_tag.yml @@ -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 }} \ No newline at end of file diff --git a/.gitea/workflows/push_master.yml b/.gitea/workflows/push_master.yml new file mode 100644 index 0000000..45c1cdf --- /dev/null +++ b/.gitea/workflows/push_master.yml @@ -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 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5bff213..25ef8b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ mailout.yml mailout-prod.yml mailout +dist diff --git a/.goreleaser.yml b/.goreleaser.yml new file mode 100644 index 0000000..848db8e --- /dev/null +++ b/.goreleaser.yml @@ -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 +# 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 \ No newline at end of file