set -euxo pipefail mkdir images for file in result-*dockerImage*; do if [ ! -f "$file" ]; then continue fi info=$(echo "$file" | sd '^result-([a-z0-9_-]+)\.([a-zA-Z]+)(?:-cross-([a-z0-9_-]+))?$' '$1\x1F$2\x1F$3') IFS=$'\x1F' read -r hostArch name crossArch <<< "$info" arch=${crossArch:-$hostArch} containerArch=$(arch=$arch nix eval --raw --impure -I nixpkgs=flake:nixpkgs --expr '(import { system = builtins.getEnv "arch";}).go.GOARCH') echo "Processed image for $containerArch" cp $file images/image-$containerArch.tar.gz done manifest_id=$(podman manifest create git.dirksys.ovh/dirk/bankserver:latest) sleep 1 for file in $(ls images); do echo "Loading images/$file" podman image load < images/$file image_id=$(podman image ls --format '{{.ID}}' | head -n 2 | tail -1) architecture=$(podman image inspect $image_id | jq -r ".[0].Architecture") tag=$(podman image ls --format "{{.Tag}}" | head -n 2 | tail -1) tag="git.dirksys.ovh/dirk/bankserver:$tag-$architecture" podman image untag $image_id echo "Adding $architecture image to manifest" podman manifest add $manifest_id $image_id done echo "Pushing manifest" podman --log-level=debug manifest push git.dirksys.ovh/dirk/bankserver:latest > out.txt