on:
push:
branches:
- - "master"
+ - "main"
+ release:
+ types: [published]
+
+permissions:
+ contents: read
jobs:
docker:
+ if: github.repository == 'psf/black'
runs-on: ubuntu-latest
steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
- name: Set up QEMU
- uses: docker/setup-qemu-action@v1
+ uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
+ uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
- uses: docker/login-action@v1
+ uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
+ - name: Check + set version tag
+ run:
+ echo "GIT_TAG=$(git describe --candidates=0 --tags 2> /dev/null || echo
+ latest_non_release)" >> $GITHUB_ENV
+
- name: Build and push
- uses: docker/build-push-action@v2
+ uses: docker/build-push-action@v4
+ with:
+ context: .
+ platforms: linux/amd64,linux/arm64
+ push: true
+ tags: pyfound/black:latest,pyfound/black:${{ env.GIT_TAG }}
+
+ - name: Build and push latest_release tag
+ if:
+ ${{ github.event_name == 'release' && github.event.action == 'published' &&
+ !github.event.release.prerelease }}
+ uses: docker/build-push-action@v4
+ with:
+ context: .
+ platforms: linux/amd64,linux/arm64
+ push: true
+ tags: pyfound/black:latest_release
+
+ - name: Build and push latest_prerelease tag
+ if:
+ ${{ github.event_name == 'release' && github.event.action == 'published' &&
+ github.event.release.prerelease }}
+ uses: docker/build-push-action@v4
with:
context: .
platforms: linux/amd64,linux/arm64
push: true
- tags: pyfound/black:latest
+ tags: pyfound/black:latest_prerelease
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}