codimd
codimd copied to clipboard
Add native ARM64 GitHub Actions runner support
trafficstars
This PR implements native ARM64 GitHub Actions runners to replace QEMU emulation for better performance and reliability.
Changes Made
๐ Docker Image Builds (push-image.yml)
- Before: All builds ran on
ubuntu-latestwith QEMU emulation for ARM64 - After: Native builds using appropriate runners:
- AMD64 builds:
ubuntu-latest - ARM64 builds:
ubuntu-24.04-arm64
- AMD64 builds:
- Removed: QEMU setup step (no longer needed for native builds)
- Result: Faster, more reliable ARM64 Docker image builds
๐งช Testing & Validation (build.yml)
- Before: Tests only ran on
ubuntu-latest(AMD64) - After: Matrix testing on both architectures:
ubuntu-latest(AMD64)ubuntu-24.04-arm64(ARM64)
- Result: Comprehensive cross-platform testing ensures code compatibility
Key Benefits
- ๐โโ๏ธ Performance: Native ARM64 execution vs emulated builds
- ๐ Coverage: Testing on both AMD64 and ARM64 platforms
- ๐ ๏ธ Maintenance: Cleaner workflows without QEMU complexity
- ๐ฎ Future-ready: Uses latest GitHub Actions ARM64 runners
Technical Details
The changes use GitHub's native ARM64 runners (ubuntu-24.04-arm) which provide:
- Better performance than QEMU emulation
- Native ARM64 instruction execution
- More reliable builds for ARM64 Docker images
Impact: Minimal changes (8 additions, 8 deletions) with no breaking changes to existing functionality.
Fixes #1922.
[!WARNING]
Firewall rules blocked me from connecting to one or more addresses
I tried to connect to the following addresses, but was blocked by firewall rules:
api.github.com
- Triggering command:
node download.js(dns block)api.nektosact.com
- Triggering command:
act --list(dns block)- Triggering command:
act --list --workflows=.github/workflows/build.yml(dns block)- Triggering command:
act --list --workflows=.github/workflows/push-image.yml(dns block)If you need me to access, download, or install something from one of these locations, you can either:
- Configure Actions setup steps to set up my environment, which run before the firewall is enabled
- Add the appropriate URLs or hosts to my firewall allow list
blocked by #1926
๐ฌ Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.