From b632ee9ab18da8b986a645b199cb755555b2fca7 Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Thu, 3 Apr 2025 17:27:22 +0200 Subject: [PATCH] feat(ci): release using goreleaser --- .github/.goreleaser.yaml | 19 +++++++++++++++++++ .github/workflows/release.yaml | 34 ++++++++++++++++++++++++++++++++++ .gitlab-ci.yml | 15 +++++++++++++++ .goreleaser.yaml | 25 +++++++++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 .github/.goreleaser.yaml create mode 100644 .github/workflows/release.yaml create mode 100644 .goreleaser.yaml diff --git a/.github/.goreleaser.yaml b/.github/.goreleaser.yaml new file mode 100644 index 0000000..9424dc6 --- /dev/null +++ b/.github/.goreleaser.yaml @@ -0,0 +1,19 @@ +--- +version: 2 + +# changelog +changelog: + use: "git" + sort: "desc" + filters: + exclude: + - "^chore" + - "^ci" + - "^docs" + groups: + - title: "🚀 Features" + regexp: "^feat" + - title: "🐛 Bug Fixes" + regexp: "^fix" + - title: "🛠 Maintenance" + regexp: "^(chore|refactor)" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..425299c --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,34 @@ +--- +name: "release" + +on: + push: + tags: + - "*" + +jobs: + release: + name: "release" + runs-on: "ubuntu-latest" + steps: + + # checkout repo + - name: "checkout" + uses: "actions/checkout@v4" + with: + fetch-depth: 0 + + # setup go + - name: "set up go" + uses: "actions/setup-go@v5" + with: + go-version: "stable" + + # run goreleaser + - name: "run goreleaser" + uses: "goreleaser/goreleaser-action@v5" + with: + version: "v2.8.2" + args: "release --clean --config ./.github/.goreleaser.yaml" + env: + GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 71a9c92..22dd1eb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,6 +2,7 @@ image: "golang:alpine" stages: - "linter" - "testing" + - "releasing" linter: stage: "linter" @@ -16,3 +17,17 @@ testing: image: "cr.simoncor.net/siempie/go-build:latest" script: - "go test *.go" + +releasing: + stage: "releasing" + needs: + - "testing" + image: + name: "goreleaser/goreleaser:v2.8.2" + entrypoint: [""] + rules: + - if: '$CI_COMMIT_TAG' + variables: + GITLAB_TOKEN: '$GORELEASER_GITLAB_TOKEN' + script: + - "goreleaser release --clean" diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..7b82529 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,25 @@ +--- +version: 2 + +# changelog +changelog: + use: "git" + sort: "desc" + filters: + exclude: + - "^chore" + - "^ci" + - "^docs" + groups: + - title: "🚀 Features" + regexp: "^feat" + - title: "🐛 Bug Fixes" + regexp: "^fix" + - title: "🛠 Maintenance" + regexp: "^(chore|refactor)" + +# gitlab +gitlab_urls: + api: "https://gitlab.simoncor.net/api/v4/" + download: "https://gitlab.simoncor.net" + use_package_registry: true