Comparing a used Mac Mini, ARM64 hardware, and AMD x86 for GitLab CI
A comparison of a used M1/M2 Mac Mini, ARM64 servers, and AMD x86 hardware for a GitLab CI runner with x86_64 production images.
Comparing a used Mac Mini, ARM64 hardware, and AMD x86 for GitLab CI
I compared a used Mac Mini M2 listed at €500 with 16 GB RAM and a 512 GB SSD against Linux AMD hardware. The Mac Mini runs iOS builds natively, runs ARM64 Docker through Colima, and can run an Android emulator. Its estimated electricity cost was approximately €2 per month.
I selected the AMD option for the current workload.
Note
Hardware prices, availability, performance measurements, and software support described here are observations from July 2026. They require rechecking before a purchase.
Mac Mini capabilities
A used Mac Mini can cover the mobile capabilities listed in this comparison:
| Capability | Mac Mini M1/M2 | Linux AMD box | Notes |
|---|---|---|---|
| iOS builds (Xcode) | ✅ Native | ❌ Requires macOS | macOS is required for Xcode builds. |
| Android APK builds | ✅ Gradle + SDK | ✅ Gradle + SDK | Both work. Mac does not need KVM for compilation. |
| Android emulator (Maestro) | ARM64 image, Hypervisor.framework | x86_64 image, KVM | The Mac avoids ARM64-to-x86_64 translation. |
| iOS simulator (Maestro) | ✅ Native | ❌ Requires macOS | Relevant if iOS Maestro targets are added. |
| ARM64 Linux Docker builds | ✅ Via Colima (VM) | ❌ Needs ARM64 hardware | One machine can cover mobile and ARM64 server CI. |
| x86_64 Linux Docker builds | ❌ Emulated (QEMU, 3-10× slower) | ✅ Native | The architecture difference is the constraint. |
At €500 upfront and approximately €2 per month in electricity, the Mac Mini adds native iOS build support. The current team builds release APKs on development laptops, runs Maestro locally, and releases iOS manually, so iOS CI was outside the current workload. The purchase would add capacity for a future workflow rather than address an existing job.
As a general ARM64 CI runner, it has two constraints for this workload.
Constraint 1: 16 GB RAM, soldered
The 16 GB Mac Mini M1/M2 configuration costs less than the 24 GB configurations considered here. An 8 GB configuration leaves less memory for concurrent CI processes; Xcode builds in this comparison used 6-8 GB. At 16 GB:
- macOS consumes ~3 GB
- Colima VM needs ~4 GB
- One Docker build job: 8 GB limit = workable
- Two Docker build jobs: the 16 GB total leaves no memory for the host and Colima VM after two 8 GB job limits
concurrent=1 fits within this memory budget. concurrent=2 would require reducing the per-job memory cap below the level used by the Maven builds. That is half the concurrency of the current closet i5 box.
Constraint 2: Production images use x86_64
The backend, API, and CMS deploy to x86_64 AWS instances. Building x86_64 Docker images on an ARM64 Mac runs every RUN instruction under QEMU user-mode emulation. A Maven backend build that takes 45 seconds natively takes 3-7 minutes under QEMU in this comparison. With approximately 260 Docker build jobs per month, this increases the expected monthly build time.
Multi-arch images (ARM64 + x86_64) built with docker buildx can mitigate the architecture mismatch, but the x86_64 variant still runs under QEMU. The mobile data workload already runs on AWS Graviton, while the backend migration remains pending.
The Mac Mini fits the iOS build and ARM64-native runner use cases. It is less suitable as a general-purpose replacement for an x86_64 CI box while the production stack remains x86_64.
The non-macOS ARM64 landscape
For workloads that do not require macOS, the comparison included these ARM64 hardware options:
| Device | CPU | RAM | Price | Docker? | Linux? | CI-worthy? |
|---|---|---|---|---|---|---|
| Raspberry Pi 5 | 4× Cortex-A76 | 8 GB | ~€100 | ✅ | ✅ | Approximately 6× slower than the i5 in this comparison. |
| Orange Pi 5 Max | 8-core RK3588 | 16 GB | ~€170 | ✅ | ✅ | ⚠️ ~3× slower. Borderline. |
| MINISFORUM MS-R1 | 12-core CIX P1 | up to 64 GB | ~€560 | ✅ | ✅ | ARM64 option with 64 GB; measured throughput matched the i5. |
| Geekom QS1 Pro | Snapdragon X Elite | up to 64 GB | ~€800 | ⚠️ Beta | ⚠️ Maturing | ⚠️ Faster than our i5 but Linux support is not production-ready. |
| Ampere Altra Dev Kit | 32-128 cores | up to 768 GB | €1,500-4,000 | ✅ | ✅ | ✅ Server-class. Far beyond this CI workload’s requirements. |
The MINISFORUM MS-R1 has 12 ARM cores, up to 64 GB RAM, standard UEFI boot, Debian support, a PCIe x16 slot, and listed power consumption of approximately 20 W. At approximately €560, it is one ARM64 hardware option for CI. Jeff Geerling reviewed the platform.
The relevant limitation is throughput: the MS-R1 roughly matches the current i5-7500T in this comparison. The €560 purchase provides more RAM headroom and native ARM64, but no measured speed increase. A used AMD Ryzen office PC at €350 measured approximately 3× faster in the same comparison.
ARM cloud VPS availability
The cloud offers checked in this comparison used either provider-designed ARM instances or Ampere-based VPSs.
netcup listed Altra Max servers at €7.90-40.66 per month, and the ARM offering was sold out at the time of this comparison. Hetzner’s CAX line uses Ampere Altra in a shared-vCPU model, so performance depends on host contention.
Provider availability depends on capacity and allocation. The ARM offers checked here had fewer available listings than the x86 offers.
ServeTheHome reported replacing its planned ARM servers with AMD EPYC in 2025. The article discusses on-premise performance, software support, and core density as factors in that decision.
AMD x86 comparison
| Factor | ARM64 | AMD x86_64 |
|---|---|---|
| Server CPU vendors represented | Ampere | AMD, Intel |
| Fabrication represented | Limited vendor set | Multiple manufacturing options in this comparison |
| OEM ecosystem | Fewer boards in this comparison | Multiple server and PC vendors represented |
| Used market | Few options in this comparison | Broad availability. A 2-year-old Ryzen office PC costs €350. |
| Supply chain scope in this comparison | One primary merchant vendor | Two primary x86 vendors |
| Cloud availability in reviewed offers | Sold out at netcup, shared at Hetzner | Multiple x86 offers reviewed |
| Cloud availability (hyperscaler) | Hosted ARM instances available | Hosted x86_64 instances available |
| Docker CI performance in this comparison | Depends on availability and workload | Native x86_64 execution |
Decision
I selected a Hetzner dedicated box with a Ryzen 5 3600 and 64 GB RAM for €65.70/month. It uses the same AMD x86_64 architecture as the existing machines, the same Docker configuration, and the same pipeline structure. The listed CPU benchmark is approximately 3× the closet runner’s result.
For mobile CI, development laptops remain the build machines. A used Mac Mini M2 at €500 would satisfy the macOS requirement for iOS CI, but it would still require an x86_64 runner for the current production image builds.
For this workload, ARM64 is relevant when the target artifacts or runtime are ARM64. The current production images and existing runner are x86_64. AMD x86_64 hardware preserves that architecture and has multiple hardware and hosting options.
References
This post was written with AI assistance.