name: PR Workflow on: pull_request_target jobs: release-snapshot: name: Release snapshot strategy: matrix: runner-platform: - ubuntu-latest - buildjet-4vcpu-ubuntu-2204-arm include: - runner-platform: ubuntu-latest build-arch: linux/amd64 tagged-platform: amd64 - runner-platform: buildjet-4vcpu-ubuntu-2204-arm build-arch: linux/arm64 tagged-platform: arm64 runs-on: ${{ matrix.runner-platform }} steps: - name: Set up Buildx uses: docker/setup-buildx-action@v1 - name: Cache Docker layers # AWS data transfer is pricy if: ${{ matrix.runner-platform != 'buildjet-4vcpu-ubuntu-2204-arm' }} uses: actions/cache@v2 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-prs-${{ matrix.build-arch }}-${{ github.event.pull_request.head.sha }} restore-keys: | ${{ runner.os }}-buildx-prs-${{ matrix.build-arch }} - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - uses: actions/checkout@v2 with: ref: ${{ github.event.pull_request.head.sha }} - name: Get current time uses: josStorer/get-current-time@v2 id: current-time - name: Build and push id: docker_build uses: docker/build-push-action@v2 with: context: . push: true tags: codetheweb/muse:${{ github.event.pull_request.head.sha }}-${{ matrix.tagged-platform }} cache-from: type=local,src=/tmp/.buildx-cache cache-to: type=local,dest=/tmp/.buildx-cache,mode=min platforms: ${{ matrix.build-arch }} build-args: | COMMIT_HASH=${{ github.sha }} BUILD_DATE=${{ steps.current-time.outputs.time }} combine-and-comment: name: Combine platform tags and leave comment runs-on: ubuntu-latest needs: release-snapshot steps: - name: Set up Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Combine tags run: docker buildx imagetools create -t 'codetheweb/muse:pr-${{ github.event.number }}' -t 'codetheweb/muse:${{ github.event.pull_request.head.sha }}' 'codetheweb/muse:${{ github.event.pull_request.head.sha }}-arm64' 'codetheweb/muse:${{ github.event.pull_request.head.sha }}-amd64' - name: Create comment uses: marocchino/sticky-pull-request-comment@v2 with: header: "pr-release" message: | #### :package: A new release has been made for this pull request. To play around with this PR, pull `codetheweb/muse:pr-${{ github.event.number }}` or `codetheweb/muse:${{ github.event.pull_request.head.sha }}`. Images are available for x86_64 and ARM64. > Latest commit: ${{ github.event.pull_request.head.sha }}