name: Glean demo Docker image
on:
  # Manual trigger:
  #   https://docs.github.com/en/actions/reference/events-that-trigger-workflows#workflow_dispatch
  workflow_dispatch:

  # Scheduled trigger:
  #   https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events
  schedule:
    - cron: '0 1 * * mon' # every monday at 1am

# inspired by:
# https://github.community/t/associate-build-ghcr-push-action-to-release/164733
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: set env
        run: echo "IMAGE_TAG=$(date +'v%Y.%m.%d')" >> $GITHUB_ENV

      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        id:   buildx
        uses: docker/setup-buildx-action@v3

      - name: Login to GitHub Container Registry
        uses: docker/login-action@v3
        with:
              registry: ghcr.io
              username: ${{ github.repository_owner }}
              password: ${{ secrets.GITHUB_TOKEN }}

      - name: Build and Push Docker Image
        uses: docker/build-push-action@v5
        with:
              context: ./
              file: ./Dockerfile
              push: true # Will only build (not push) if this is not set
              tags: |
                  ghcr.io/facebookincubator/glean/demo:latest
                  ghcr.io/facebookincubator/glean/demo:${{ env.IMAGE_TAG }}