name: Publish Docker image

on:
  schedule:
    - cron: "0 1 * * 0" # every Sunday at 1 am
  workflow_dispatch: # on button click

permissions:
  contents: read

jobs:
  push_to_registry:
    name: Push Docker image to GitHub Docker registry
    runs-on: ubuntu-latest

    steps:
      - name: Check out the repo        
        uses: actions/checkout@v4

      - name: Log in to GitHub Docker registry
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      # -------
      # BARE Z3
      # -------
      - name: Extract metadata (tags, labels) for Bare Z3 Docker Image
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: ghcr.io/z3prover/z3
          flavor: |
            latest=auto
            prefix=ubuntu-20.04-bare-z3-
          tags: |
            type=schedule,pattern={{date 'YYYYMMDD'}}
            type=ref,event=tag
            type=edge
            type=sha,prefix=ubuntu-20.04-bare-z3-sha-
      - name: Build and push Bare Z3 Docker Image
        uses: docker/build-push-action@v6.9.0
        with:  
          context: .
          push: true
          target: bare-z3
          file: ./docker/ubuntu-20-04.Dockerfile
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}

      # ------------------------------
      # Repo description on GHCR
      # ------------------------------
#      - name: Update repo description
#        uses: peter-evans/dockerhub-description@v2
#        with:
#          registry: ghcr.io        
#          repository: z3prover/z3
#          username: ${{ secrets.DOCKER_USERNAME }}
#          password: ${{ secrets.DOCKER_PASSWORD }}
#          short-description: ${{ github.event.repository.description }}
#          readme-filepath: ./docker/README.md
