From 175eb1a88e03e11e393fd24ce1e77379bb0a1c85 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Mon, 8 Jun 2026 13:51:04 +0200 Subject: [PATCH 1/2] Switch release workflow to manual dispatch with releaseforge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the push-tag trigger with workflow_dispatch (optional tag input). The workflow now auto-bumps the version from conventional commits via releaseforge, generates AI release notes, creates and pushes the tag, then runs GoReleaser — mirroring the seedstorm release flow. Requires a GEMINI_API_KEY repo secret for the release-notes step. --- .github/workflows/release.yaml | 45 ++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index a939433..aabd064 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -1,9 +1,12 @@ name: Release on: - push: - tags: - - 'v*' + workflow_dispatch: + inputs: + tag: + description: 'Release tag (leave empty for auto-bump from conventional commits)' + required: false + type: string permissions: contents: write @@ -21,15 +24,47 @@ jobs: uses: actions/setup-go@v5 with: go-version: '1.24' + cache: true - name: Run tests - run: make test-integration + run: | + make build + go test ./... -v + + - name: Determine version + id: version + uses: AxeForging/releaseforge@main + with: + command: bump + + - name: Set tag + id: tag + run: | + if [ -n "${{ inputs.tag }}" ]; then + echo "tag=${{ inputs.tag }}" >> "$GITHUB_OUTPUT" + else + echo "tag=${{ steps.version.outputs.next-version }}" >> "$GITHUB_OUTPUT" + fi + + - name: Generate release notes + id: notes + uses: AxeForging/releaseforge@main + with: + command: generate + api-key: ${{ secrets.GEMINI_API_KEY }} + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: Create and push tag + run: | + echo "Releasing ${{ steps.tag.outputs.tag }}" + git tag ${{ steps.tag.outputs.tag }} + git push origin ${{ steps.tag.outputs.tag }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v6 with: distribution: goreleaser version: latest - args: release --clean + args: release --clean --release-notes ${{ steps.notes.outputs.release-notes }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 4f65c0e72594e6ede8b9ef18f45fb80057d6cae6 Mon Sep 17 00:00:00 2001 From: Lucas Machado Date: Mon, 8 Jun 2026 14:18:34 +0200 Subject: [PATCH 2/2] Make git-log fallback explicit in release notes step use-git-fallback already defaults to true; set it explicitly so the workflow self-documents that a missing GEMINI_API_KEY degrades to git commit-log notes rather than failing the release. --- .github/workflows/release.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index aabd064..1431a07 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -53,6 +53,9 @@ jobs: command: generate api-key: ${{ secrets.GEMINI_API_KEY }} github-token: ${{ secrets.GITHUB_TOKEN }} + # If GEMINI_API_KEY is unset/invalid the LLM step fails and releaseforge + # falls back to git commit-log notes, so the release still succeeds. + use-git-fallback: "true" - name: Create and push tag run: |