Commit 4a6037f
committed
fix: use native Graviton instances for arm64 builds (no QEMU)
QEMU emulation is unreliable for arm64 packages with C extensions
(numpy, Pillow, cryptography, etc.) - processes hang or produce
incorrect binaries.
Changes:
- Launch one native EC2 Spot instance per requested architecture
- x86_64 builds: c5.xlarge (existing launch template)
- arm64 builds: c7g.xlarge Graviton (new arm64 launch template + AL2023 arm64 AMI)
- Each instance builds only its native architecture and uploads to S3
under the same build_id
- DynamoDB tracks completion with atomic pending_arches counter (ADD -1)
and arch_s3_keys StringSet; last instance to finish sets COMPLETED
- Remove QEMU setup from user-data (not needed for native builds)
- Add ec2_arm64_instance_type variable (default: c7g.xlarge)
- Add LAUNCH_TEMPLATE_ID_ARM64 env var to process_build Lambda1 parent c93091c commit 4a6037f
5 files changed
Lines changed: 287 additions & 168 deletions
File tree
- infrastructure
- lambdas
- process_build
- submit_build
- terraform
0 commit comments