|
84 | 84 | sudo losetup -Dv
|
85 | 85 | sudo losetup -lv
|
86 | 86 | - name: "Register QEMU (tonistiigi/binfmt)"
|
87 |
| - run: docker run --privileged --rm tonistiigi/binfmt --install all |
| 87 | + run: | |
| 88 | + # `--install all` will only install emulation for architectures that cannot be natively executed |
| 89 | + # Since some arm64 platforms do provide native fallback execution for 32 bits, |
| 90 | + # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`. |
| 91 | + # To avoid that, we explicitly list the architectures we do want emulation for. |
| 92 | + docker run --privileged --rm tonistiigi/binfmt --install linux/amd64 |
| 93 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm64 |
| 94 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7 |
88 | 95 | - name: "Run integration tests"
|
89 | 96 | uses: nick-fields/retry@v3
|
90 | 97 | with:
|
@@ -128,7 +135,14 @@ jobs:
|
128 | 135 | sudo losetup -Dv
|
129 | 136 | sudo losetup -lv
|
130 | 137 | - name: "Register QEMU (tonistiigi/binfmt)"
|
131 |
| - run: docker run --privileged --rm tonistiigi/binfmt --install all |
| 138 | + run: | |
| 139 | + # `--install all` will only install emulation for architectures that cannot be natively executed |
| 140 | + # Since some arm64 platforms do provide native fallback execution for 32 bits, |
| 141 | + # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`. |
| 142 | + # To avoid that, we explicitly list the architectures we do want emulation for. |
| 143 | + docker run --privileged --rm tonistiigi/binfmt --install linux/amd64 |
| 144 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm64 |
| 145 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7 |
132 | 146 | - name: "Run integration tests"
|
133 | 147 | # The nested IPv6 network inside docker and qemu is complex and needs a bunch of sysctl config.
|
134 | 148 | # Therefore it's hard to debug why the IPv6 tests fail in such an isolation layer.
|
@@ -191,7 +205,14 @@ jobs:
|
191 | 205 | with:
|
192 | 206 | fetch-depth: 1
|
193 | 207 | - name: "Register QEMU (tonistiigi/binfmt)"
|
194 |
| - run: docker run --privileged --rm tonistiigi/binfmt --install all |
| 208 | + run: | |
| 209 | + # `--install all` will only install emulation for architectures that cannot be natively executed |
| 210 | + # Since some arm64 platforms do provide native fallback execution for 32 bits, |
| 211 | + # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`. |
| 212 | + # To avoid that, we explicitly list the architectures we do want emulation for. |
| 213 | + docker run --privileged --rm tonistiigi/binfmt --install linux/amd64 |
| 214 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm64 |
| 215 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7 |
195 | 216 | - name: "Prepare (network driver=slirp4netns, port driver=builtin)"
|
196 | 217 | run: docker build -t ${TEST_TARGET} --target ${TEST_TARGET} --build-arg UBUNTU_VERSION=${UBUNTU_VERSION} --build-arg CONTAINERD_VERSION=${CONTAINERD_VERSION} --build-arg ROOTLESSKIT_VERSION=${ROOTLESSKIT_VERSION} .
|
197 | 218 | - name: "Disable BuildKit for RootlessKit v1 (workaround for issue #622)"
|
@@ -246,7 +267,14 @@ jobs:
|
246 | 267 | docker info
|
247 | 268 | docker version
|
248 | 269 | - name: "Register QEMU (tonistiigi/binfmt)"
|
249 |
| - run: docker run --privileged --rm tonistiigi/binfmt --install all |
| 270 | + run: | |
| 271 | + # `--install all` will only install emulation for architectures that cannot be natively executed |
| 272 | + # Since some arm64 platforms do provide native fallback execution for 32 bits, |
| 273 | + # armv7 emulation may or may not be installed, causing variance in the result of `uname -m`. |
| 274 | + # To avoid that, we explicitly list the architectures we do want emulation for. |
| 275 | + docker run --privileged --rm tonistiigi/binfmt --install linux/amd64 |
| 276 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm64 |
| 277 | + docker run --privileged --rm tonistiigi/binfmt --install linux/arm/v7 |
250 | 278 | - name: "Prepare integration test environment"
|
251 | 279 | run: |
|
252 | 280 | sudo apt-get install -y expect
|
|
0 commit comments