Skip to content

fix(ci): robust artifact placement in goreleaser#562

Merged
2xburnt merged 1 commit into
release/v29from
fix/v29-goreleaser-artifact-placement
Apr 1, 2026
Merged

fix(ci): robust artifact placement in goreleaser#562
2xburnt merged 1 commit into
release/v29from
fix/v29-goreleaser-artifact-placement

Conversation

@2xburnt

@2xburnt 2xburnt commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fixes the exec-goreleaser.yaml "Move artifacts" step which failed with no such file or directory after the extract-from-docker change (fix(ci): extract linux binaries from Docker images #561)
  • The old mv ${{ runner.temp }}/*/xiond* dist glob relied on a specific directory hierarchy from upload-artifact that isn't guaranteed with merge-multiple: true
  • New logic uses find to locate all xiond-* binaries, parses os/arch from filenames, and creates the exact directory structure goreleaser's prebuilt builder expects: dist/xiond_<os>_<arch>_<variant>/bin/xiond-<os>-<arch>
  • Adds diagnostic output to help debug artifact issues

Test plan

  • Trigger create-release.yaml via workflow_dispatch on this branch
  • Verify "Move artifacts" step shows correct file placement
  • Verify goreleaser successfully imports all prebuilt binaries

🤖 Generated with Claude Code

Replace fragile `mv */xiond*` glob with explicit find-and-place logic
that creates the exact directory structure goreleaser's prebuilt builder
expects (dist/xiond_<os>_<arch>_<variant>/bin/xiond-<os>-<arch>).

The old glob relied on upload-artifact preserving a specific directory
hierarchy, which doesn't work reliably with merge-multiple downloads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@2xburnt 2xburnt requested a review from a team as a code owner April 1, 2026 23:44
@2xburnt 2xburnt merged commit 4e28e7a into release/v29 Apr 1, 2026
7 checks passed
@2xburnt 2xburnt deleted the fix/v29-goreleaser-artifact-placement branch April 1, 2026 23:46
2xburnt added a commit that referenced this pull request Apr 20, 2026
## Summary

- When `SKIP_GITHUB_RELEASE=true` (non-tag `workflow_dispatch` runs),
goreleaser fails at the homebrew formula step because it can't resolve
download URLs without an active release
- Adds a pre-step that checks `SKIP_GITHUB_RELEASE` and appends
`homebrew` to the skip flags
- On real tag pushes (where `SKIP_GITHUB_RELEASE` is not set), homebrew
runs normally

## Context

This was the remaining failure from the create-release workflow test run
after #561 and #562 fixed the binary extraction and artifact placement.

## Test plan

- [ ] Trigger `create-release.yaml` via `workflow_dispatch` — should
pass fully now
- [ ] Real tag push still generates homebrew formula
(SKIP_GITHUB_RELEASE not set)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: TwiceBurnt <169301814+2xburnt@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant