name: Build next tags

on:
  workflow_dispatch:
  push:
    branches:
      - next

jobs:
  bake-next:
    runs-on: ubuntu-latest
    permissions:
      packages: write
      contents: read
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - name: Docker Setup QEMU
        uses: docker/setup-qemu-action@v3
        with:
          platforms: all
      - name: Docker Setup Buildx
        uses: docker/setup-buildx-action@v3
      - name: Login to DockerHub
        uses: docker/login-action@v3
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}
      - name: Login to GitHub Container Registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}
      - name: Build (full)
        uses: docker/build-push-action@v6
        with:
          context: .
          file: ./docker/docker-py3-kms/Dockerfile
          platforms: linux/amd64,linux/386,linux/arm64/v8,linux/arm/v7,linux/arm/v6
          push: true
          # the tag "python3-next" is for backward compatibility only
          tags: |
            pykmsorg/py-kms:next
            ghcr.io/py-kms-organization/py-kms:next
            pykmsorg/py-kms:next-full
            ghcr.io/py-kms-organization/py-kms:next-full
            pykmsorg/py-kms:python3-next
            ghcr.io/py-kms-organization/py-kms:python3-next
          build-args: |
            BUILD_COMMIT=${{ github.sha }}
            BUILD_REFERENCE=${{ github.ref_name }}
      - name: Build (minimal)
        uses: docker/build-push-action@v6
        with:
          context: .
          file: ./docker/docker-py3-kms-minimal/Dockerfile
          platforms: linux/amd64,linux/386,linux/arm64/v8,linux/arm/v7,linux/arm/v6
          push: true
          # the tag "latest-next" and "minimal-next" are for backward compatibility only
          tags: |
            pykmsorg/py-kms:next-minimal
            ghcr.io/py-kms-organization/py-kms:next-minimal
            pykmsorg/py-kms:latest-next
            ghcr.io/py-kms-organization/py-kms:latest-next
            pykmsorg/py-kms:minimal-next
            ghcr.io/py-kms-organization/py-kms:minimal-next
          build-args: |
            BUILD_COMMIT=${{ github.sha }}
            BUILD_REFERENCE=${{ github.ref_name }}
