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 }}