Skip to content

ci: resolve downstream asset names by build OS in manifest#151

Merged
jh-lee-cryptolab merged 1 commit into
CryptoLabInc:feat/go-migrationfrom
jh-lee-cryptolab:ci/manifest-os-naming
Jun 2, 2026
Merged

ci: resolve downstream asset names by build OS in manifest#151
jh-lee-cryptolab merged 1 commit into
CryptoLabInc:feat/go-migrationfrom
jh-lee-cryptolab:ci/manifest-os-naming

Conversation

@jh-lee-cryptolab
Copy link
Copy Markdown
Contributor

What

Updates the release-rune-cli.yml manifest generator to consume the new build-OS-based asset names that runed and rune-mcp now publish:

runed-<ver>-linux-amd64.tar.gz   ->  runed-<ver>-ubuntu-2204-amd64.tar.gz
runed-<ver>-darwin-arm64.tar.gz  ->  runed-<ver>-mac-14-arm64.tar.gz
rune-mcp-linux-amd64             ->  rune-mcp-ubuntu-2204-amd64
rune-mcp-darwin-arm64            ->  rune-mcp-mac-14-arm64

Why

The manifest step hardcoded runed-${VERSION}-${goos}-${arch}.tar.gz and rune-mcp-${goos}-${arch}. After the downstream rename (CryptoLabInc/runed#9 and the matching rune-mcp PR, which encode the glibc baseline in the asset name), those reconstructed names no longer exist — the generator would emit dead download URLs and fail to read the .sha256 / checksums.txt entries, breaking every tagged release.

How

Instead of reconstructing names, each platform's asset is now discovered from the downloaded files:

  • Map the manifest platform's GOOS to the os-type the downstream repos emit — they build natively, so linux -> ubuntu, darwin -> mac.
  • Glob the exact OS version (2204, 14, …) out of the downloaded *.tar.gz.sha256 / checksums.txt filenames, so a future downstream runner bump needs no change here.

The manifest platform keys (linux-amd64, darwin-arm64, linux-arm64) — the runtime.GOOS-runtime.GOARCH keys the rune CLI looks up at install time (internal/bootstrap/paths.go) — are unchanged; only the URLs/checksums inside change.

Notes

  • Based on feat/go-migration (where the Go rune CLI + this workflow live).
  • The rune CLI is pure Go (static, no CGO), so its own assets stay rune-<goos>-<arch> and its build runners are untouched — only the downstream-dependent manifest needed fixing.
  • Verified locally by simulating the generator against fake _downstream/ files with the new naming (all 3 platforms resolve to the correct asset + checksum). The release workflow only runs on v* tags, so it isn't exercised by this PR.
  • Release ordering is unchanged: runed and rune-mcp (pinned in .release-pins.yaml) must be published with the new naming before tagging rune.

runed and rune-mcp now name their release assets by build OS
(runed-<ver>-ubuntu-2204-amd64.tar.gz / runed-<ver>-mac-14-arm64.tar.gz,
rune-mcp-ubuntu-2204-amd64, ...) instead of GOOS, to encode the glibc
baseline — see CryptoLabInc/runed#9 and the matching rune-mcp change.

The manifest generator hardcoded the old runed-<ver>-<goos>-<arch>.tar.gz
and rune-mcp-<goos>-<arch> names, so it would build dead URLs and fail to
read the sha256 entries.

Resolve each platform's asset from the downloaded sha256 / checksums.txt
files instead: map the manifest platform's GOOS to the os-type the
downstream repos emit (linux -> ubuntu, darwin -> mac) and glob the exact
OS version from the filenames, so a downstream runner bump needs no change
here. The manifest platform keys (linux-amd64, darwin-arm64, ...) — the
GOOS-GOARCH keys the rune CLI looks up at runtime — are unchanged.
@jh-lee-cryptolab jh-lee-cryptolab merged commit e8b4f41 into CryptoLabInc:feat/go-migration Jun 2, 2026
@jh-lee-cryptolab jh-lee-cryptolab deleted the ci/manifest-os-naming branch June 2, 2026 07:59
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.

2 participants