name: Build Linux Containers
run-name: ${{ gitea.actor }} is building the global containers 🚀
on: [push]

env:
  GITEA_DOMAIN: git.tesses.org
  GITEA_REGISTRY_USER: tesses50
  RESULT_MINGW_IMAGE_NAME: tesses50/global-containers-mingw

jobs:
  build-and-push-mingw-image:
    runs-on: fw13-ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Log in to registry
        uses: docker/login-action@v3
        with:
          registry: ${{ env.GITEA_DOMAIN }}
          username: ${{ env.GITEA_REGISTRY_USER }}
          password: ${{ secrets.PACKAGE_AND_BREW }}
      - name: Publish mingw image
        uses: docker/build-push-action@v6
        with:
          context: .
          file: ./Dockerfile.mingw
          push: true
          tags: ${{ env.GITEA_DOMAIN }}/${{ env.RESULT_MINGW_IMAGE_NAME }}:latest
  build-and-push-linux-image:
    # The 'container' tag replaces the runner OS; the job runs INSIDE this image
    strategy:
      fail-fast: true
      matrix:
        include:
          - imageName: linux-x64
          - imageName: linux-arm64
          - imageName: linux-riscv64
  
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3
      - name: Log in to registry
        uses: docker/login-action@v3
        with:
          registry: ${{ env.GITEA_DOMAIN }}
          username: ${{ env.GITEA_REGISTRY_USER }}
          password: ${{ secrets.PACKAGE_AND_BREW }}
      - name: Publish ${{ matrix.imageName }}
        uses: docker/build-push-action@v6
        with:
          context: ./containers/${{ matrix.imageName }}
          file: ./Dockerfile.linux
          push: true
          tags: ${{ env.GITEA_DOMAIN }}/tesses50/${{ matrix.imageName }}:latest
