name: docker on: schedule: # Nightly builds capture upstream updates to dependency images such as node. - cron: '19 17 * * *' push: branches: [ master ] tags: [ '*.*.*' ] env: REGISTRY: docker.io IMAGE_NAME: parseplatform/parse-server jobs: build: runs-on: ubuntu-18.04 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@v2 - name: Set up QEMU id: qemu uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Log into Docker Hub if: github.event_name != 'pull_request' uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract Docker metadata id: meta uses: docker/metadata-action@v3 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} flavor: | latest=${{ steps.branch.outputs.branch_name == 'master' }} - name: Build and push Docker image uses: docker/build-push-action@v2 with: context: . platforms: linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}