ci: migrate to goreleaser Gen 2 (PLA-460)#138
Merged
Merged
Conversation
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>
linuskendall
force-pushed
the
pla-460-wt
branch
from
April 24, 2026 10:06
8cdab8b to
6269de8
Compare
linuskendall
enabled auto-merge
April 24, 2026 10:08
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)
leafaar
approved these changes
Apr 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
.goreleaser.yamlwith a singlejetbinary build targetingx86_64-unknown-linux-gnu, producing ajet-linux-amd64artifact.github/workflows/goreleaser-check.ymlto validate the goreleaser config on PRs (uses GitHub-hosted runners as this is a public repo)ci/goreleaser-patch.yamlin Binaries-ci at build timePart 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.04→jet-linux-amd64.Test plan
goreleaser checkpasses in the goreleaser-check workflow on this PRgh workflow run build-release.yml --repo rpcpool/Binaries-ciafter merge to validate end-to-end🤖 Generated with Claude Code