name: Docker PR Preview on: pull_request: types: - synchronize - opened - labeled env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} jobs: build_element_call: if: ${{ contains(github.event.pull_request.labels.*.name, 'docker build') }} uses: ./.github/workflows/build_resuable.yaml build_docker: if: ${{ contains(github.event.pull_request.labels.*.name, 'docker build') }} runs-on: ubuntu-latest permissions: deployments: write steps: - name: 📥 Download artifact uses: actions/download-artifact@v4 with: github-token: ${{ secrets.ELEMENT_BOT_TOKEN }} run_id: ${{ github.event.workflow_run.id }} name: build 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.workflow_run.pull_requests[0].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 }}