From ef922b29c2a573b63c027aa284f10ada8e0efa6b Mon Sep 17 00:00:00 2001 From: Luis Pater Date: Sat, 6 Sep 2025 15:37:48 +0800 Subject: [PATCH] Update workflows and build process for enhanced metadata injection - Upgraded GitHub Actions (`actions/checkout` to v4, `actions/setup-go` to v4, `goreleaser-action` to v4). - Added detailed build metadata (`VERSION`, `COMMIT`, `BUILD_DATE`) to workflows. - Unified metadata injection into binaries and Docker images. - Enhanced `.goreleaser.yml` with checksum, snapshot, and changelog configurations. --- .github/workflows/docker-image.yml | 14 +++++++++----- .github/workflows/release.yaml | 16 +++++++++++----- .goreleaser.yml | 20 +++++++++++++++----- 3 files changed, 35 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index bafe1601..3aacf4f5 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -24,8 +24,11 @@ jobs: with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Generate App Version - run: echo APP_VERSION=`git describe --tags --always` >> $GITHUB_ENV + - name: Generate Build Metadata + run: | + echo VERSION=`git describe --tags --always --dirty` >> $GITHUB_ENV + echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV + echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV - name: Build and push uses: docker/build-push-action@v6 with: @@ -35,8 +38,9 @@ jobs: linux/arm64 push: true build-args: | - APP_NAME=${{ env.APP_NAME }} - APP_VERSION=${{ env.APP_VERSION }} + VERSION=${{ env.VERSION }} + COMMIT=${{ env.COMMIT }} + BUILD_DATE=${{ env.BUILD_DATE }} tags: | ${{ env.DOCKERHUB_REPO }}:latest - ${{ env.DOCKERHUB_REPO }}:${{ env.APP_VERSION }} + ${{ env.DOCKERHUB_REPO }}:${{ env.VERSION }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 49cf9848..4bb5e63b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,20 +13,26 @@ jobs: goreleaser: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 0 - run: git fetch --force --tags - - uses: actions/setup-go@v3 + - uses: actions/setup-go@v4 with: go-version: '>=1.24.0' cache: true - - name: "Set custom GORELEASER_CURRENT_TAG" - run: echo "GORELEASER_CURRENT_TAG=${{ github.event.inputs.tag }}" >> $GITHUB_ENV - - uses: goreleaser/goreleaser-action@v3 + - name: Generate Build Metadata + run: | + echo VERSION=`git describe --tags --always --dirty` >> $GITHUB_ENV + echo COMMIT=`git rev-parse --short HEAD` >> $GITHUB_ENV + echo BUILD_DATE=`date -u +%Y-%m-%dT%H:%M:%SZ` >> $GITHUB_ENV + - uses: goreleaser/goreleaser-action@v4 with: distribution: goreleaser version: latest args: release --clean env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + VERSION: ${{ env.VERSION }} + COMMIT: ${{ env.COMMIT }} + BUILD_DATE: ${{ env.BUILD_DATE }} diff --git a/.goreleaser.yml b/.goreleaser.yml index 3842e6c9..08d40552 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -10,10 +10,7 @@ builds: main: ./cmd/server/ binary: cli-proxy-api ldflags: - - -s -w - - -X 'main.Version={{.Version}}' - - -X 'main.Commit={{.ShortCommit}}' - - -X 'main.BuildDate={{.Date}}' + - -s -w -X 'main.Version={{.Version}}' -X 'main.Commit={{.ShortCommit}}' -X 'main.BuildDate={{.Date}}' archives: - id: "cli-proxy-api" format: tar.gz @@ -24,4 +21,17 @@ archives: - LICENSE - README.md - README_CN.md - - config.example.yaml \ No newline at end of file + - config.example.yaml + +checksum: + name_template: 'checksums.txt' + +snapshot: + name_template: "{{ incpatch .Version }}-next" + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' \ No newline at end of file