@@ -275,9 +275,63 @@ jobs:
275275 # See https://github.com/actions/upload-artifact/issues/174 for details.
276276 dotnet-versions
277277 output/
278- release :
278+ test :
279279 needs : installer
280280 runs-on : ubuntu-latest
281+ strategy :
282+ matrix :
283+ # TODO: aspnetcore build fails on x64 with:
284+ # EXEC : error : Failed to load assembly 'System.Private.CoreLib'
285+ arch : [ppc64le, s390x]
286+ isV6 :
287+ - ${{ startsWith(github.ref, 'refs/tags/v6.') }}
288+ exclude :
289+ - arch : ppc64le
290+ isV6 : true
291+ steps :
292+ - name : Install cross-ppc64le packages
293+ run : (echo "deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs) main universe" &&
294+ echo "deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs)-security main universe" &&
295+ echo "deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs)-updates main universe" &&
296+ echo "deb [arch=ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs)-backports main universe") |
297+ sudo tee /etc/apt/sources.list.d/ports.list >/dev/null &&
298+ sudo apt-get update &&
299+ sudo apt-get install -y
300+ libc6:ppc64el
301+ libstdc++6:ppc64el
302+ zlib1g:ppc64el
303+ if : ${{ matrix.arch == 'ppc64le' }}
304+ - name : Install cross-s390x packages
305+ run : (echo "deb [arch=s390x] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs) main universe" &&
306+ echo "deb [arch=s390x] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs)-security main universe" &&
307+ echo "deb [arch=s390x] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs)-updates main universe" &&
308+ echo "deb [arch=s390x] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -cs)-backports main universe") |
309+ sudo tee /etc/apt/sources.list.d/ports.list >/dev/null &&
310+ sudo apt-get update &&
311+ sudo apt-get install -y
312+ libc6:s390x
313+ libstdc++6:s390x
314+ zlib1g:s390x
315+ if : ${{ matrix.arch == 's390x' }}
316+ - name : Checkout
317+ uses : actions/checkout@v4
318+ - name : Download the ${{ matrix.arch }} installer artifacts
319+ uses : actions/download-artifact@v3 # Has to match upload-artifact
320+ with :
321+ name : installer-${{ matrix.arch }}
322+ - name : Configure emulation
323+ run : docker run --rm --privileged multiarch/qemu-user-static:7.2.0-1 --reset --persistent=yes
324+ - name : Run a ppc64le smoke test
325+ run : QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu
326+ ./dotnet-test-sdk output/dotnet-sdk-*-linux-ppc64le.tar.gz
327+ if : ${{ matrix.arch == 'ppc64le' }}
328+ - name : Run a s390x smoke test
329+ run : QEMU_LD_PREFIX=/usr/s390x-linux-gnu
330+ ./dotnet-test-sdk output/dotnet-sdk-*-linux-s390x.tar.gz
331+ if : ${{ matrix.arch == 's390x' }}
332+ release :
333+ needs : test
334+ runs-on : ubuntu-latest
281335 strategy :
282336 matrix :
283337 arch : [x64]
0 commit comments