name: Build and Publish Docker Images on: push: branches: - main pull_request: branches: - main jobs: setup: runs-on: ubuntu-latest outputs: branch: ${{ steps.get-git-context.outputs.branch }} commit: ${{ steps.get-git-context.outputs.commit }} steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Get Git Context id: get-git-context uses: actions/github-script@v6 with: script: | const branch = github.ref.split('/').pop(); const commit = github.sha; core.setOutput('branch', branch); core.setOutput('commit', commit); build: needs: setup runs-on: ubuntu-latest strategy: matrix: dockerfile: ["worker.Dockerfile", "server.Dockerfile"] image-name: ["${{ vars.IMAGE_NAME_WORKER }}", "${{ vars.IMAGE_NAME_SERVER }}"] steps: - name: Build and Push Image uses: docker/build-push-action@v6 with: context: . file: ${{ matrix.dockerfile }} platforms: linux/amd64,linux/arm64 push: true tags: | git.brmartin.co.uk/${{ matrix.image-name }}:${{ needs.setup.outputs.branch }} git.brmartin.co.uk/${{ matrix.image-name }}:${{ needs.setup.outputs.commit }}