fix(ci): build full cmd packages and use native arm64 runner#238
Merged
Conversation
The release build compiled single files (cmd/web/main.go, cmd/postie/postie.go) instead of whole packages. This broke build-web-linux once handlers were split into arr_handlers.go/api_key.go (undefined method errors), and silently dropped the watch subcommand from the postie CLI (defined in watch.go via init()). Build ./cmd/web and ./cmd/postie so every file in each package is compiled. The linux/arm64 CLI job cross-compiled with 'zig cc -target aarch64-linux-musl', but par2go links -lstdc++ (GNU libstdc++) which zig's musl target does not provide, failing with undefined std:: symbols. Switch to the native ubuntu-24.04-arm runner (same as the working build-image-arm64 job) so the system g++/libstdc++ resolves par2go's C++ deps, and drop the now-unused Zig setup step.
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.
Problem
The v0.0.30 release build (run 28684700916) failed in two jobs:
cmd/web/main.goas a single file. Once web handlers were split intoarr_handlers.goandapi_key.go, that file no longer sees their methods, so the build failed withws.handleListArrInstances undefined(and ~8 similar errors).zig cc -target aarch64-linux-musl, but par2go links-lstdc++(GNU libstdc++), which zig's musl target does not provide →ld.lld: undefined symbol: std::thread::join()and many otherstd::symbols fromlibparpar_gf16_linux_arm64.a.Latent bug also fixed
The CLI build compiled
cmd/postie/postie.goas a single file too. It compiled fine but silently dropped thewatchsubcommand, which is registered incmd/postie/watch.goviainit(). Released CLIs since v0.0.29-rc2 have been missingpostie watch.Fix
./cmd/weband./cmd/postie(all 4 build steps acrossrelease.ymlanddev-build.yml) so every file in each package is compiled.ubuntu-24.04-armrunner — the same runner the already-passingbuild-image-arm64job uses — so system g++/libstdc++ resolves par2go's C++ deps. Removed the now-unused Zig setup step.Verification
go build ./cmd/webandgo build -tags=cli ./cmd/postiesucceed locally; the single-file builds reproduce the exact CI errors.postie --helpfrom the package build lists thewatchcommand (absent from the single-file build).build-image-arm64path; confirmed green by the CI run on this PR.Context
Unblocks the v0.0.30 release (which carries the Windows CLI static-linking fix for #154).