name: ci

# 👇 add this block
permissions:
  contents: read        # allow checkout & metadata-action to read repo
  id-token: write       # needed by docker/metadata-action v4

on:
  push:
    branches:
      - 'main'
      - 'staging'

jobs:
  docker:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - image: opensign/opensign
            dockerfile: apps/OpenSign/Dockerhubfile
          - image: opensign/opensignserver
            dockerfile: apps/OpenSignServer/Dockerhubfile

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      # 👇 Enable emulation so we can build for arm64 on amd64 runners
      - name: Set up QEMU
        uses: docker/setup-qemu-action@v2
        with:
          platforms: linux/amd64,linux/arm64

      # 👇 Enable Buildx for multi-arch builds
      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v2

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

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v4
        with:
          images: ${{ matrix.image }}

      - name: Debug - List files opensign
        run: ls -R apps/OpenSign/  # Adjust the path as needed

      - name: Debug - List files opensignserver
        run: ls -R apps/OpenSignServer/  # Adjust the path as needed  

      - name: Build and push (multi-arch)
        uses: docker/build-push-action@v4
        with:
          context: .
          file: ${{ matrix.dockerfile }}
          push: true
          # 👇 Build for both AMD64 & ARM64
          platforms: linux/amd64,linux/arm64
          tags: ${{ steps.meta.outputs.tags }}
          labels: ${{ steps.meta.outputs.labels }}
