23 lines
647 B
Bash
Executable file
23 lines
647 B
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Usage: ./push-all <registry> <image-prefix> <image-tag>
|
|
set -euo pipefail
|
|
|
|
registry=${1:-docker.io}
|
|
image_prefix=${2:-nixpkgs}
|
|
image_tag=${3:-latest}
|
|
system_name=${NIX_SYSTEM_NAME:-x86_64-linux}
|
|
|
|
releases_json=$(nix-instantiate --strict --argstr system "$system_name" --eval --json)
|
|
|
|
echo "=== Pushing images to $registry"
|
|
|
|
for attr in $(echo "$releases_json" | jq -r "keys[]") ; do
|
|
file=$(echo "$releases_json" | jq -r ".\"$attr\"")
|
|
src=docker-archive://$file
|
|
dst=docker://$registry/$image_prefix/$attr:$image_tag
|
|
echo "--- attr=$attr src=$src dst=$dst"
|
|
skopeo copy --insecure-policy "$src" "$dst"
|
|
done
|
|
|
|
echo OK
|