Skip to content

Add GoReleaser config + tag-driven release workflow#3425

Draft
monty-sei wants to merge 1 commit into
mainfrom
monty/release-binaries
Draft

Add GoReleaser config + tag-driven release workflow#3425
monty-sei wants to merge 1 commit into
mainfrom
monty/release-binaries

Conversation

@monty-sei
Copy link
Copy Markdown
Contributor

First standardised release-artefact pipeline for sei-chain. Every v* tag would publish a pre-built static seid binary on the GitHub Release page alongside the existing Docker images.

Blocked — wasmd static archive issue: the libwasmvmXXXstatic.a files for wasmd v152/v155 in sei-wasmd/x/wasm/artifacts/ are Mach-O arm64 (macOS dev artefacts), not Linux musl ELF. The linker errors with cannot find -lwasmvm152_muslc / -lwasmvm155_muslc. This reproduces on GitHub Actions runners — the .a files themselves are the issue. Pending resolution on PLT-41 before this can land.

Opened as draft for review of the goreleaser config and workflow shape only.

Refs PLT-41, PLT-266.

Adds the first standardised release-artefact pipeline for sei-chain so
that every `v*` tag publishes a pre-built static `seid` binary on
the GitHub Release page alongside the existing Docker images.

Files:
  - .goreleaser.yaml           static linux/amd64 `seid` build
  - .github/workflows/goreleaser-release.yml
                               tag-triggered caller; delegates to
                               sei-protocol/uci's reusable goreleaser
                               workflow
  - scripts/check-libwasmvm-static.sh
                               fail-fast pre-build hook verifying the
                               muslc `.a` files are present

Build details:
  - CGO_ENABLED=1, CC=musl-gcc, tags netgo,muslc,ledger
  - linkmode=external with -static extldflags
  - LDFLAGS match the existing Makefile (sei-cosmos/version.* symbols)
  - libwasmvm_muslc.a / libwasmvm_muslc.aarch64.a are already checked
    into sei-wasmvm/internal/api/, so no rebuild at release time
  - release: draft=true, mode=append so this coexists safely with any
    other release-creation paths (uci release-publish, manual)

Out of scope (follow-ups):
  - linux/arm64 static seid (requires aarch64 musl cross-toolchain)
  - macOS seid
  - cosign signatures, SBOM, SLSA provenance

Once the uci PR adding goreleaser-release.yml is merged and tagged,
update the @ref in goreleaser-release.yml to a uci version tag.

Refs PLT-41, PLT-266.
@github-actions
Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedMay 13, 2026, 10:40 AM

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