#!/bin/bash

# Use manifest-tool to create the manifest, given the experimental
# "docker manifest" command isn't available yet on Docker Hub.
curl -Lo manifest-tool https://github.com/estesp/manifest-tool/releases/download/v0.9.0/manifest-tool-linux-amd64
chmod +x manifest-tool

# Generate the manifest file.
# Parameter 1 is the multi-arch image name, e.g. ckulka/baikal:0.5.1
# Parameter 2 is the base-image for the variants, e.g. ckulka/baikal:0.5.1-apache
function generate_manifest {
  cat > manifest-generated.yaml << EOF
image: $1
manifests:
  - image: $2-amd64
    platform:
      architecture: amd64
      os: linux
  - image: $2-arm32v7
    platform:
      architecture: arm
      os: linux
      variant: v7
  - image: $2-arm64v8
    platform:
      architecture: arm64
      os: linux
      variant: v8
EOF
}

echo "Pushing multi-arch manifest $IMAGE_NAME"
generate_manifest $IMAGE_NAME $IMAGE_NAME
./manifest-tool push from-spec manifest-generated.yaml