diff --git a/.github/workflows/main-multi.yml b/.github/workflows/main-multi.yml index bf6468a..b4c903f 100644 --- a/.github/workflows/main-multi.yml +++ b/.github/workflows/main-multi.yml @@ -44,9 +44,37 @@ jobs: IMAGE_NAME: ghcr.io/manimatter/decluttarr IMAGE_TAG: maintest run: | - docker buildx create --use --name $IMAGE_TAG node-amd64 - docker buildx create --append --name $IMAGE_TAG node-arm64 - docker buildx build --platform linux/amd64,linux/arm64 + # Create a builder instance for amd64 architecture + docker buildx create --use --name amd64-builder + + # Build the amd64 image + docker buildx build --platform linux/amd64 \ + -t $IMAGE_NAME:$IMAGE_TAG-amd64 \ + --label com.decluttarr.version=$IMAGE_TAG \ + --label com.decluttarr.commit=$SHORT_COMMIT_ID \ + --build-arg IMAGE_TAG=$IMAGE_TAG \ + --build-arg SHORT_COMMIT_ID=$SHORT_COMMIT_ID \ + -f docker/Dockerfile \ + --push + + # Create a builder instance for arm64 architecture + docker buildx create --use --name arm64-builder + + # Build the arm64 image + docker buildx build --platform linux/arm64 \ + -t $IMAGE_NAME:$IMAGE_TAG-arm64 \ + --label com.decluttarr.version=$IMAGE_TAG \ + --label com.decluttarr.commit=$SHORT_COMMIT_ID \ + --build-arg IMAGE_TAG=$IMAGE_TAG \ + --build-arg SHORT_COMMIT_ID=$SHORT_COMMIT_ID \ + -f docker/Dockerfile \ + --push + + # Create and push the manifest list + docker manifest create $IMAGE_NAME:$IMAGE_TAG $IMAGE_NAME:$IMAGE_TAG-amd64 $IMAGE_NAME:$IMAGE_TAG-arm64 + docker manifest annotate $IMAGE_NAME:$IMAGE_TAG $IMAGE_NAME:$IMAGE_TAG-arm64 --os linux --arch arm64 + docker manifest annotate $IMAGE_NAME:$IMAGE_TAG $IMAGE_NAME:$IMAGE_TAG-amd64 --os linux --arch amd64 + docker manifest push $IMAGE_NAME:$IMAGE_TAG