@@ -51,15 +51,53 @@ jobs:
5151 docker compose --version
5252
5353 # Note: we cannot use Docker Desktop because it has not been licensed for use in GithubActions
54- - name : Docker installation - Mac
54+
55+ - name : Install QEMU (macOS, arm64)
5556 if : ${{ matrix.os.name == 'mac' }}
5657 run : |
57- brew install colima docker docker-compose
58- colima start --vm-type=qemu --cpu 4 -m 8 -r docker
59- echo "DOCKER_HOST=unix://${HOME}/.colima/docker.sock" >> $GITHUB_ENV
60- mkdir -p ~/.docker/cli-plugins
61- ln -sfn /usr/local/bin/docker-compose ~/.docker/cli-plugins/docker-compose
58+ set -euxo pipefail
59+ # Ensure arm64 Homebrew (avoid Rosetta/x86_64 bottles)
60+ /usr/bin/arch -arm64 /bin/zsh -lc '
61+ export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH
62+ brew update
63+ brew install qemu
64+ which qemu-img
65+ qemu-img --version
66+ '
6267
68+ - name : Docker installation - Mac
69+ if : ${{ matrix.os.name == 'mac' }}
70+ run : |
71+ set -euxo pipefail
72+ # Ensure we run under arm64 and use the arm64 Homebrew prefix (/opt/homebrew)
73+ /usr/bin/arch -arm64 /bin/zsh -lc '
74+ export PATH=/opt/homebrew/bin:/opt/homebrew/sbin:$PATH
75+
76+ # Install required tools (qemu is mandatory for --vm-type=qemu)
77+ brew update
78+ brew install qemu colima docker docker-compose
79+
80+ # Clean stale state to avoid disk conversion/mount issues
81+ colima stop || true
82+ colima delete -f || true
83+ rm -rf "$HOME/.colima" "$HOME/.lima" || true
84+
85+ # Start Colima with QEMU; allocate decent CPUs/RAM and disk for CI
86+ colima start --vm-type=qemu --cpu 4 --memory 8 --runtime docker
87+
88+ # Point Docker CLI to Colima's socket
89+ echo "DOCKER_HOST=unix://${HOME}/.colima/docker.sock" >> "$GITHUB_ENV"
90+
91+ # Compose v2 plugin (link whatever docker-compose brew installed)
92+ mkdir -p ~/.docker/cli-plugins
93+ ln -sfn "$(command -v docker-compose)" ~/.docker/cli-plugins/docker-compose
94+
95+ # Sanity check
96+ docker version
97+ docker info
98+ docker compose version
99+ '
100+
63101 - name: Install Python dependencies
64102 run: make requirements
65103
0 commit comments