Build please_pex releases in native environments #287
Merged
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.
Now that please_pex writes a preamble C binary that is native to each platform supported by Please, please_pex is no longer just a Go binary that can be cross-compiled for every platform on a Linux amd64 runner: the preamble needs to be built natively for each platform and embedded in the please_pex binary for that platform.
Reorganise the please_pex test, build and release workflow so that the release binaries are built natively on their respective platforms: alpine-builder for Linux (linking statically to musl results in a nice ~94KB binary), freebsd-builder for FreeBSD, and GitHub Actions' macOS 15 runners for Darwin.
Although Ubuntu arm64 GitHub runners are available, the linux_arm64 release has to be built on an Ubuntu amd64 runner because JavaScript-based workflow actions currently can't be executed on an Alpine arm64 container running on an arm64 host - see: