diff --git a/.github/workflows/qemu.yml b/.github/workflows/qemu.yml new file mode 100644 index 0000000..6c7adcd --- /dev/null +++ b/.github/workflows/qemu.yml @@ -0,0 +1,37 @@ +name: Cross-Architecture Test + +on: [push, pull_request] + +jobs: + test: + strategy: + matrix: + include: + - arch: amd64 + qemu_arch: x86_64 + - arch: arm64v8 + qemu_arch: aarch64 + - arch: i386 + qemu_arch: i386 + + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: ${{ matrix.qemu_arch }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Available platforms + run: echo ${{ steps.qemu.outputs.platforms }} + + - name: Run cargo test + run: | + docker run --rm --privileged multiarch/qemu-user-static --reset -p yes + docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp ${{ matrix.arch }}/rust cargo test