name: Release on: push: tags: - '*' jobs: docker-build: runs-on: ${{ matrix.runner }} name: ${{ matrix.platform }} - ${{ matrix.browser }} - ${{ matrix.tag }} strategy: matrix: include: # Chromium - runner: 'buildjet-4vcpu-ubuntu-2204' tag: 'latest' platform: 'amd64' browser: 'chromium' - runner: 'buildjet-4vcpu-ubuntu-2204-arm' tag: 'arm' platform: 'linux/arm64' browser: 'chromium' # Chrome - runner: 'buildjet-4vcpu-ubuntu-2204' tag: 'chrome' platform: 'amd64' browser: 'chrome' # Chrome is not supported on arm64 # - runner: "buildjet-4vcpu-ubuntu-2204-arm" # tag: "chrome-arm" # platform: "linux/arm64" # browser: "chrome" # No browser - runner: 'buildjet-4vcpu-ubuntu-2204' tag: 'noweb' platform: 'amd64' browser: 'none' - runner: 'buildjet-4vcpu-ubuntu-2204-arm' tag: 'noweb-arm' platform: 'linux/arm64' browser: 'none' steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Docker meta id: meta uses: docker/metadata-action@v4 with: images: ${{ secrets.DOCKER_IMAGE }} flavor: latest=false tags: | type=raw,value=${{ matrix.tag }} - name: Login to image repository if: github.ref_type == 'tag' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_TOKEN }} - name: Build and push uses: docker/build-push-action@v4 with: context: . file: Dockerfile platforms: ${{ matrix.platform }} build-args: | USE_BROWSER=${{ matrix.browser }} push: ${{ github.ref_type == 'tag' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}