name: PullRequest on: pull_request: branches: [ master ] types: [assigned, opened, synchronize, labeled] paths-ignore: - "*.md" - "docs/**" - "examples/**" env: IMAGE_TO_TEST: itzg/minecraft-server:test-${{ github.repository_owner }}-${{ github.run_id }} jobs: test: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - name: Setup Docker Buildx uses: docker/setup-buildx-action@v2 - name: Build uses: docker/build-push-action@v3.0.0 with: context: . platforms: linux/amd64 tags: ${{ env.IMAGE_TO_TEST }} load: true cache-from: type=gha - name: Run tests env: MODS_FORGEAPI_KEY: ${{ secrets.MODS_FORGEAPI_KEY }} MINECRAFT_VERSION: LATEST run: | tests/test.sh - name: Gather Docker metadata if: contains(github.event.pull_request.labels.*.name, 'ci/push-image') id: meta uses: docker/metadata-action@v3 with: images: | itzg/minecraft-server - name: Login to DockerHub if: contains(github.event.pull_request.labels.*.name, 'ci/push-image') uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Push if: contains(github.event.pull_request.labels.*.name, 'ci/push-image') uses: docker/build-push-action@v3.0.0 with: context: . platforms: linux/amd64,linux/arm/v7,linux/arm64 tags: ${{ steps.meta.outputs.tags }} pull: true push: true cache-from: type=gha labels: ${{ steps.meta.outputs.labels }}