Skip to content

Commit 0b243bf

Browse files
aksOpsclaude
andauthored
fix(ci): restore internal/ui/dist/.gitkeep after UI rebuild in release.yml (#125)
GoReleaser aborts with 'git is in a dirty state' when the release tag commits internal/ui/dist/.gitkeep (as scripts/release.sh does via `touch`): release.yml rebuilds the UI, vite's emptyOutDir deletes the committed .gitkeep, and the resulting 'D internal/ui/dist/.gitkeep' fails GoReleaser's clean-tree check. Restore the placeholder after the rebuild so the tree matches the tag. No-op for tags that don't track .gitkeep (e.g. v0.3.1). Unblocks the v0.4.0-beta.1 signed-artifact build via workflow_dispatch recovery. Claude-Session: https://claude.ai/code/session_01LDQVJrixs2nJoea67a8pEG Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent d738863 commit 0b243bf

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ jobs:
8383
npm ci
8484
npm run build
8585
test -f ../internal/ui/dist/index.html
86+
# vite's emptyOutDir wipes internal/ui/dist on rebuild, deleting the
87+
# committed .gitkeep placeholder that script-cut release tags carry.
88+
# Restore it so the working tree matches the tag and GoReleaser's
89+
# dirty-state check passes (no-op for tags that don't track .gitkeep).
90+
git -C "$GITHUB_WORKSPACE" checkout -- internal/ui/dist/.gitkeep 2>/dev/null || true
8691
8792
- name: Install cosign
8893
# sigstore/cosign-installer v3.9.2 — provides `cosign` for the keyless

0 commit comments

Comments
 (0)