Skip to content

ci: migrate to goreleaser Gen 2 (PLA-460)#138

Merged
linuskendall merged 9 commits into
mainfrom
pla-460-wt
Apr 30, 2026
Merged

ci: migrate to goreleaser Gen 2 (PLA-460)#138
linuskendall merged 9 commits into
mainfrom
pla-460-wt

Conversation

@linuskendall

@linuskendall linuskendall commented Apr 24, 2026

Copy link
Copy Markdown
Member

Summary

  • Add .goreleaser.yaml with a single jet binary build targeting x86_64-unknown-linux-gnu, producing a jet-linux-amd64 artifact
  • Add .github/workflows/goreleaser-check.yml to validate the goreleaser config on PRs (uses GitHub-hosted runners as this is a public repo)
  • GCS upload, cosigning, and GitHub Release publishing are handled by ci/goreleaser-patch.yaml in Binaries-ci at build time

Part of PLA-412 / PLA-460: migrating to Binaries-ci Gen 2 goreleaser workflow.

Note: Coordinate cutover with the companion nomad PR that renames the artifact from jet-ubuntu-22.04jet-linux-amd64.

Test plan

  • Verify goreleaser check passes in the goreleaser-check workflow on this PR
  • Trigger a manual build via gh workflow run build-release.yml --repo rpcpool/Binaries-ci after merge to validate end-to-end

🤖 Generated with Claude Code

linuskendall and others added 8 commits April 24, 2026 08:08
Add .goreleaser.yaml for the jet binary targeting x86_64-unknown-linux-gnu,
producing a jet-linux-amd64 artifact compatible with Binaries-ci Gen 2
build-release workflow. Add goreleaser-check workflow to validate the config
on PRs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Goreleaser's rust builder requires an explicit --package when the workspace
has more than one member (apps/jet and crates/tpu-client).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cargo-zigbuild uses zig's own sysroot, which doesn't follow Ubuntu's
multi-arch symlink for opensslconf.h. Set OPENSSL_INCLUDE_DIR and
OPENSSL_LIB_DIR explicitly so openssl-sys bypasses pkg-config and finds
the headers at /usr/include/x86_64-linux-gnu directly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
On Ubuntu 24.04 the openssl headers are under /usr/include/openssl/, not
/usr/include/x86_64-linux-gnu/openssl/. Set OPENSSL_INCLUDE_DIR=/usr/include
so openssl-sys passes -I /usr/include to zig cc and finds opensslv.h.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
On Ubuntu 24.04, opensslconf.h is only in the multi-arch path
/usr/include/x86_64-linux-gnu/openssl/ (not symlinked into /usr/include/openssl/).
OPENSSL_INCLUDE_DIR=/usr/include lets zig find opensslv.h, but macros.h then
fails to include opensslconf.h. Setting CFLAGS_x86_64_unknown_linux_gnu adds
the second include path that openssl-sys's build script (via cc crate) appends
to the compiler invocation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ubuntu 24.04 splits opensslconf.h and configuration.h into
/usr/include/x86_64-linux-gnu/openssl/ but zig cc does not add that
as a system include path unlike stock gcc. Use a before hook to
symlink both headers into /usr/include/openssl/ so openssl-sys can
find them without setting CFLAGS_x86_64_unknown_linux_gnu globally
(which caused zstd-sys to mix zig's bundled glibc stubs with Ubuntu's
multi-arch headers, resulting in __time64_t unknown type errors).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ubuntu 24.04 puts opensslconf.h and configuration.h only in
/usr/include/x86_64-linux-gnu/openssl/. zig cc doesn't add that as
a system search path, so openssl-sys can't find them.

Using -isystem (instead of -I) adds the path after zig's own bundled
libc headers in the search order. zig's bundled glibc stubs resolve
standard types first, avoiding the __time64_t conflict that occurred
with -I. OpenSSL-specific arch headers are still found because they
don't exist in zig's bundled headers at all.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Updates Cargo.lock to address RUSTSEC advisories flagged by cargo deny:
- keccak 0.1.5 -> 0.1.6 (RUSTSEC-2026-0012)
- quinn-proto 0.11.13 -> 0.11.14 (RUSTSEC-2026-0037)
- rand 0.8.5 -> 0.8.6, 0.9.2 -> 0.9.4 (RUSTSEC-2026-0097)
- rustls-webpki 0.103.9 -> 0.103.13 (RUSTSEC-2026-0049/0098/0099/0104)
@linuskendall
linuskendall added this pull request to the merge queue Apr 30, 2026
Merged via the queue into main with commit 75a225d Apr 30, 2026
1 check passed
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