name: docker-3.1dev

on:
  push:
    branches:
      - 3.1dev
  workflow_dispatch:
  schedule:
    - cron: "0 8 * * 1"

env:
  BUILD_VERSION: "3.1dev"
  DOCKER_CLI_EXPERIMENTAL: enabled

jobs:

  deploy:
    runs-on: ubuntu-20.04

    steps:
      - name: Source checkout
        uses: actions/checkout@v3

      - name: Setup QEMU
        id: qemu
        uses: docker/setup-qemu-action@v2.0.0

      - name: Setup Buildx
        id: buildx
        uses: docker/setup-buildx-action@v2

      - name: Set Docker metadata
        id: docker_meta
        uses: docker/metadata-action@v4
        with:
          images: ${{ github.repository }}
          labels: |
            org.opencontainers.image.version=${{ env.BUILD_VERSION }}
            org.opencontainers.image.revision=${{ github.sha }}
            org.opencontainers.image.title=${{ github.repository }}

      - name: GitHub login
        if: ${{ github.event_name != 'pull_request' }}
        uses: docker/login-action@v2.0.0
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and push
        uses: docker/build-push-action@v3.1.1
        with:
          push: ${{ github.event_name != 'pull_request' }}
          context: .
          file: Dockerfile.git
          platforms: linux/amd64,linux/386,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le
          build-args: BUILD_VERSION
          cache-from: type=gha, scope=${{ github.workflow }}
          cache-to: type=gha, scope=${{ github.workflow }}
          labels: ${{ steps.docker_meta.outputs.labels }}
          tags: |
            ghcr.io/${{ github.repository }}:${{ env.BUILD_VERSION }}
            ghcr.io/${{ github.repository }}:latest
