From c0529116f024067735737e11a262c52752523eff Mon Sep 17 00:00:00 2001 From: Jon Langevin Date: Sat, 16 May 2026 02:41:33 -0400 Subject: [PATCH] =?UTF-8?q?fix:=20release=20workflow=20goreleaser=20--skip?= =?UTF-8?q?=3Dvalidate=20=E2=80=94=20accept=20ui=5Fdist=20drift=20at=20rel?= =?UTF-8?q?ease=20time?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v1.0.3 release run surfaced third bug after npm-auth + cp-cwd fixes landed: release failed after 0s error= git is in a dirty state M internal/ui_dist/index.html Root cause: Build-admin-UI step rebuilds internal/ui_dist/ from workflow repo HEAD (latest UI source), which may differ from this repo's committed snapshot (kept in-tree for go:embed at dev time). GoReleaser's git-dirty-state validation correctly flags this as 'modified files since last commit'. The fresh build IS the intended release artifact — we WANT the just-built dist embedded in the release binary, not the stale committed snapshot. So the dirty state is expected at release time. Fix: --skip=validate flag bypasses dirty check. Per goreleaser docs this is the appropriate escape hatch when build artifacts intentionally differ from committed state. Followup: cut v1.0.4 from main after this lands. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/workflows/release.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1a7ba23..117d708 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -55,7 +55,15 @@ jobs: - uses: goreleaser/goreleaser-action@v7 with: version: '~> v2' - args: release --clean + # --skip=validate bypasses goreleaser's git-dirty-state check. + # The Build admin UI step rebuilds internal/ui_dist/ from workflow + # repo HEAD, which may differ from this repo's committed snapshot + # (kept in-tree for go:embed at dev time). Per workflow-plugin-admin + # #13 v1.0.3 release run failure, dirty check fired on + # internal/ui_dist/index.html. The fresh build is the intended + # release artifact; skip-validate accepts that ui_dist drift is + # expected at release time. + args: release --clean --skip=validate env: GITHUB_TOKEN: ${{ secrets.RELEASES_TOKEN }} GOPRIVATE: github.com/GoCodeAlone/*