Skip to content

Commit 7d692ce

Browse files
chore: install qemu
1 parent 5c5997c commit 7d692ce

1 file changed

Lines changed: 44 additions & 6 deletions

File tree

.github/workflows/cli-tests.yml

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)