name: Build Containers

on:
  workflow_call:
    inputs:
      tag:
        required: true
        type: string
    secrets:
      DOCKERHUB_USERNAME:
        required: true
      DOCKERHUB_TOKEN:
        required: true

jobs:
  build-frontend:
    runs-on: ubuntu-latest
    name: Build Frontend
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Set up QEMU
        id: qemu
        uses: docker/setup-qemu-action@v1
        with:
          image: tonistiigi/binfmt:latest
          platforms: all

      - name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@v1
        with:
          install: true

      - name: Login to Docker Hub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Build Frontend Image
        working-directory: "frontend"
        run: |
          docker build --push --no-cache \
            --tag hkotel/mealie:frontend-${{ inputs.tag }} \
            --platform linux/amd64,linux/arm64 .

  build-backend:
    runs-on: ubuntu-latest
    name: Build Backend
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Set up QEMU
        id: qemu
        uses: docker/setup-qemu-action@v1
        with:
          image: tonistiigi/binfmt:latest
          platforms: all

      - name: Set up Docker Buildx
        id: buildx
        uses: docker/setup-buildx-action@v1
        with:
          install: true

      - name: Login to Docker Hub
        uses: docker/login-action@v1
        with:
          username: ${{ secrets.DOCKERHUB_USERNAME }}
          password: ${{ secrets.DOCKERHUB_TOKEN }}

      - name: Build Backend Image
        run: |
          docker build --push --no-cache \
            --tag hkotel/mealie:api-${{ inputs.tag }}  \
            --build-arg COMMIT=$(git rev-parse HEAD) \
            --platform linux/amd64,linux/arm64 .
