mirror of
https://github.com/storytold/craft-common-actions.git
synced 2026-11-10 12:41:26 +00:00
* ci(release): cross-compile FreeBSD aarch64 in the x86_64 VM The FreeBSD release job built aarch64 in an emulated aarch64 guest, which ran into the 300-minute limit for most apps, so aarch64 was dropped from releases (#39). #49 fixed the same problem in freebsd.yml by cross-compiling in the KVM-accelerated x86_64 guest; this ports that setup to release.yml. The release VM is now always x86_64. For aarch64 it pins the quarterly package branch, installs lang/rust and runs the same "Set up the aarch64 cross toolchain" step as freebsd.yml; a test keeps the two copies identical. The build step sets the version before loading the cross environment, so xtask still builds for the guest. The built-in packager reads binaries from target/<triple>/release, and the job fails if an archive does not match the matrix architecture. aarch64 stays opt-in through the new freebsd-architectures input (default '["x86_64"]'): each app's package.sh still reads target/release and names its archive after uname -m, so it must honor CARGO_BUILD_TARGET first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ci(release): reject unsupported FreeBSD architectures before the VM starts The guest is always x86_64 and only aarch64 is cross-compiled, so any other freebsd-architectures value would build x86_64 binaries and the fallback packager would label them with that value. Check matrix.arch on the host first and fail for anything but x86_64 and aarch64. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>