# This workflow will perform a test whenever there
# is some change in code done to ensure that the changes
# are not buggy and we are getting the desired output.
name: Push to Quay.io
on:
  push:
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *'  # every day at midnight

env:
  IMAGE_NAME: ptr-test
  IMAGE_TAGS: v1 ${{ github.sha }}
  IMAGE_REGISTRY: quay.io
  IMAGE_NAMESPACE: redhat-github-actions

jobs:
  push-quay:
    name: Build and push image
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: false
      matrix:
        install_latest: [ true, false ]

    steps:
      # Checkout push-to-registry action github repository
      - name: Checkout Push to Registry action
        uses: actions/checkout@v2

      - name: Install latest podman
        if: matrix.install_latest
        run: |
          bash .github/install_latest_podman.sh

      # Build image using Buildah action
      - name: Build Image
        id: build_image
        uses: redhat-actions/buildah-build@v2
        with:
          image: ${{ env.IMAGE_NAME }}
          tags: ${{ env.IMAGE_TAGS }}
          base-image: busybox:latest
          entrypoint: |
            bash
            -c
            echo 'hello world'
          oci: true

      # Push the image to Quay.io (Image Registry)
      - name: Push To Quay
        uses: ./
        id: push
        with:
          image: ${{ steps.build_image.outputs.image }}
          tags: ${{ steps.build_image.outputs.tags }}
          registry: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAMESPACE }}
          username: ${{ secrets.REGISTRY_USER }}
          password: ${{ secrets.REGISTRY_PASSWORD }}
          extra-args: |
            --disable-content-trust

      - name: Echo outputs
        run: |
          echo "${{ toJSON(steps.push.outputs) }}"