name: Publish Docker Image

on:
  push:
  workflow_dispatch:
    inputs:
      reason:
        description: 'Reason for manual trigger'
        required: true
        default: ''

jobs:
  ghcr_build_and_push:
    runs-on: ubuntu-latest
    if: github.event_name == 'push' || github.event.inputs.reason != ''
    strategy:
      matrix:
        image: ["app", "evaluation", "sandbox"]

    steps:
      - name: checkout
        uses: actions/checkout@v4

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

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

      - name: Log-in to ghcr.io
        run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin

      - name: Build and push ${{ matrix.image }}
        run: ./containers/build.sh ${{ matrix.image }} --push
