name: Docker PR Preview on: pull_request: types: - synchronize - opened - labeled env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} # due to https://github.com/actions/runner/issues/2372 # and not wanting to workaround like https://stackoverflow.com/questions/73797254/environment-variables-in-github-actions/74217028#74217028 # we disable for now a gloabl env variable since env is not available in job.if # DO_DOCKER_BUILD: ${{ contains(github.event.pull_request.labels.*.name, 'docker build') }} jobs: build_element_call: if: ${{ contains(github.event.pull_request.labels.*.name, 'docker build') }} uses: ./.github/workflows/build_resuable.yaml secrets: SENTRY_ORG: ${{ secrets.SENTRY_ORG }} SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} SENTRY_URL: ${{ secrets.SENTRY_URL }} SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} build_docker: if: ${{ contains(github.event.pull_request.labels.*.name, 'docker build') }} needs: build_element_call runs-on: ubuntu-latest permissions: contents: write # required to upload release asset packages: write steps: - name: Check it out uses: actions/checkout@v4 - name: 📥 Download artifact uses: actions/download-artifact@v4 with: name: build-output path: dist - name: Log in to container registry uses: docker/login-action@5f4866a30a54f16a52d2ecb4a3898e9e424939cf with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@c314eea2b27e3cb3c7d7be0618510234d8f6178e with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | type=sha,format=short,event=branch type=raw,value=pr_${{ github.event.pull_request.number }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb - name: Build and push Docker image uses: docker/build-push-action@f8bc7f46003ef0cf98b715743d86c2f1ccd01436 with: context: . platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}