name: Multiple container CLI build tests
on:
  push:
  workflow_dispatch:
  schedule:
    - cron: '0 0 * * *'  # every day at midnight

env:
  IMAGE_REGISTRY: quay.io
  IMAGE_NAMESPACE: redhat-github-actions
  IMAGE_NAME: ptr-test
  IMAGE_TAG: v1

jobs:
  build-only-podman:
    name: Build and push image built only on Podman
    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

      - name: Build image using Podman
        run: |
            podman build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -<<EOF
            FROM busybox
            RUN echo "hello world"
            EOF

      - name: Push image to ${{ env.IMAGE_REGISTRY }}
        id: push
        uses: ./
        with:
          image: ${{ env.IMAGE_NAME }}
          tags: ${{ env.IMAGE_TAG }}
          registry: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAMESPACE }}
          username: ${{ secrets.REGISTRY_USER }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

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

  build-only-docker:
    name: Build and push image built only on Docker
    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

      - name: Build image using Docker
        run: |
            docker build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -<<EOF
            FROM busybox
            RUN echo "hello world"
            EOF

      - name: Push image to ${{ env.IMAGE_REGISTRY }}
        id: push
        uses: ./
        with:
          image: ${{ env.IMAGE_NAME }}
          tags: ${{ env.IMAGE_TAG }}
          registry: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAMESPACE }}
          username: ${{ secrets.REGISTRY_USER }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

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

  build-podman-latest:
    name: Build and push image built latest on Podman
    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

      - name: Build image using Docker
        run: |
            docker build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -<<EOF
            FROM busybox
            RUN echo "hello world"
            EOF

      - name: Build image using Podman
        run: |
            podman build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -<<EOF
            FROM busybox
            RUN echo "hello world"
            EOF

      - name: Push image to ${{ env.IMAGE_REGISTRY }}
        id: push
        uses: ./
        with:
          image: ${{ env.IMAGE_NAME }}
          tags: ${{ env.IMAGE_TAG }}
          registry: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAMESPACE }}
          username: ${{ secrets.REGISTRY_USER }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

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

  build-docker-latest:
    name: Build and push image built latest on Docker
    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

      - name: Build image using Podman
        run: |
            podman build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -<<EOF
            FROM busybox
            RUN echo "hello world"
            EOF

      - name: Build image using Docker
        run: |
            docker build -t ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} -<<EOF
            FROM busybox
            RUN echo "hello world"
            EOF

      - name: Push image to ${{ env.IMAGE_REGISTRY }}
        id: push
        uses: ./
        with:
          image: ${{ env.IMAGE_NAME }}
          tags: ${{ env.IMAGE_TAG }}
          registry: ${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAMESPACE }}
          username: ${{ secrets.REGISTRY_USER }}
          password: ${{ secrets.REGISTRY_PASSWORD }}

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