name: CD

on:
  push:
    branches: [ "master" ]
  workflow_dispatch: # run manually

jobs:

  build:
    runs-on: ubuntu-latest
    permissions:
      packages: write
      contents: read
    steps:
    - name: Checkout
      uses: actions/checkout@v4
      with:
        # we need tags for docker version tagging
        fetch-tags: true
        fetch-depth: 0
    - # Activate cache export feature to reduce build time of images
      name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v3
    - name: Login to GitHub Container Registry
      uses: docker/login-action@v3
      with:
        registry: ghcr.io
        username: ${{ github.actor }}
        password: ${{ secrets.GITHUB_TOKEN }}
    - name: Log in to Docker Hub
      uses: docker/login-action@v3
      with:
        username: ${{ secrets.DOCKERIO_USERNAME }}
        password: ${{ secrets.DOCKERIO_PASSWORD }}
    - name: Build the Docker image
      # build both tags at the same time
      run: make docker DOCKER_TAG="docker.io/ocrd/eynollah -t ghcr.io/qurator-spk/eynollah"
    - name: Test the Docker image
      run: docker run --rm ocrd/eynollah ocrd-eynollah-segment -h
    - name: Push to Dockerhub
      run: docker push docker.io/ocrd/eynollah
    - name: Push to Github Container Registry
      run: docker push ghcr.io/qurator-spk/eynollah
