# Trigger this workflow only to manually create a Docker release; this should only be used # in extraordinary circumstances, as Docker releases are normally created automatically as # part of the automated release workflow. name: release-manual-docker on: workflow_dispatch: inputs: ref: default: '' description: 'Reference (tag / SHA):' env: REGISTRY: docker.io IMAGE_NAME: parseplatform/parse-server jobs: build: runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Determine branch name id: branch run: echo "::set-output name=branch_name::${GITHUB_REF#refs/*/}" - name: Checkout repository uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.ref }} - name: Set up QEMU id: qemu uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Log into Docker Hub if: github.event_name != 'pull_request' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract Docker metadata id: meta uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} flavor: | latest=${{ steps.branch.outputs.branch_name == 'release' && github.event.inputs.ref == '' }} tags: | type=semver,enable=true,pattern={{version}},value=${{ github.event.inputs.ref }} type=raw,enable=${{ github.event.inputs.ref == '' }},value=latest - name: Build and push Docker image uses: docker/build-push-action@v3 with: context: . platforms: linux/amd64, linux/arm64/v8 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}