mirror of https://github.com/oxen-io/lokinet
45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -o errexit
|
|
|
|
trap 'echo -e "\n\n\n\e[31;1mAn error occurred!\e[1m\n\n"' ERR
|
|
|
|
registry=registry.oxen.rocks
|
|
|
|
if [[ $# -eq 0 ]]; then
|
|
files=(*.dockerfile i386/*.dockerfile arm64v8/*.dockerfile arm32v7/*.dockerfile)
|
|
else
|
|
files=("$@")
|
|
fi
|
|
|
|
declare -A manifests
|
|
|
|
for file in "${files[@]}"; do
|
|
if [[ "$file" == */* ]]; then
|
|
arch="${file%%/*}"
|
|
name="${file#*/}"
|
|
else
|
|
arch="amd64"
|
|
name="$file"
|
|
fi
|
|
|
|
name="${name#[0-9][0-9]-}" # s/^\d\d-//
|
|
name="${name%.dockerfile}" # s/\.dockerfile$//
|
|
namearch=$registry/lokinet-ci-$name/$arch
|
|
latest=$registry/lokinet-ci-$name:latest
|
|
echo -e "\e[32;1mrebuilding \e[35;1m$namearch\e[0m"
|
|
docker build --pull -f $file -t $namearch --build-arg ARCH=$arch .
|
|
docker push $namearch
|
|
|
|
manifests[$latest]="${manifests[$latest]} $namearch"
|
|
done
|
|
|
|
for latest in "${!manifests[@]}"; do
|
|
echo -e "\e[32;1mpushing new manifest for \e[33;1m$latest[\e[35;1m${manifests[$latest]} \e[33;1m]\e[0m"
|
|
docker manifest rm $latest 2>/dev/null || true
|
|
docker manifest create $latest ${manifests[$latest]}
|
|
docker manifest push $latest
|
|
done
|
|
|
|
echo -e "\n\n\n\e[32;1mAll done!\e[1m\n\n"
|