name: Tests on: pull_request: branches: - master - main jobs: buildx: name: Test image build runs-on: ubuntu-latest # Set job-wide environment variables # - REPO: repo name on dockerhub # - IMAGE: image name on dockerhub env: REPO: mikenye IMAGE: picard strategy: matrix: docker-platform: - linux/amd64 # - linux/arm64 # - linux/arm/v6 # - linux/arm/v7 # - linux/i386 steps: # Check out our code - name: Checkout uses: actions/checkout@v2 # Hit an issue where arm builds would fail with cURL errors regarding intermediary certificates when downloading from github (ie: deploy-s6-overlay). # After many hours of troubleshooting, the workaround is to pre-load the image's rootfs with the CA certificates from the runner. # This problem may go away in future. - name: Copy CA Certificates from GitHub Runner to Image rootfs run: | ls -la /etc/ssl/certs/ mkdir -p ./rootfs/etc/ssl/certs mkdir -p ./rootfs/usr/share/ca-certificates/mozilla cp --no-dereference /etc/ssl/certs/*.crt ./rootfs/etc/ssl/certs cp --no-dereference /etc/ssl/certs/*.pem ./rootfs/etc/ssl/certs cp --no-dereference /usr/share/ca-certificates/mozilla/*.crt ./rootfs/usr/share/ca-certificates/mozilla # Set up QEMU for multi-arch builds - name: Set up QEMU uses: docker/setup-qemu-action@v1 # Set up buildx for multi platform builds - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 # Get archictecture suffix - name: Get image architecture suffix run: | echo "ARCH_TAG=$(echo '${{ matrix.docker-platform }}' | cut -d '/' -f2- | tr -s '/' '_')" >> $GITHUB_ENV # Show archictecture suffix - name: Show image architecture suffix run: | echo "Architecture suffix: ${{ env.ARCH_TAG }}" # Test container build for all supported platforms (defined above) - name: Build ${{ matrix.docker-platform }} run: docker buildx build --no-cache --progress plain -t "${{ env.REPO }}/${{ env.IMAGE }}:testing_${{ env.ARCH_TAG }}" --platform "${{ matrix.docker-platform }}" .