Some checks failed
Build and push / build_and_push (push) Failing after 2s
Signed-off-by: Uwe Hermann <uh@uleenucks.de>
81 lines
1.7 KiB
Bash
Executable File
81 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
set -o pipefail
|
|
|
|
SCRIPT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/$(basename "${BASH_SOURCE[0]}")"
|
|
REPO_URL="${REPO_URL:-uleenucks}"
|
|
DOCKERFILESPATH="${HOME}/closed/dockerfiles"
|
|
|
|
ERRORS="$(pwd)/errors"
|
|
|
|
build_and_push_kaniko(){
|
|
base=$1
|
|
suite=$2
|
|
build_dir=$3
|
|
|
|
echo "Building ${REPO_URL}/${base}:${suite} for context ${build_dir}"
|
|
|
|
/kaniko/executor \
|
|
--dockerfile="${build_dir}" \
|
|
--destination="${REPO_URL}/${base}:${suite}" \
|
|
--force \
|
|
--cleanup \
|
|
|| return 1
|
|
|
|
# on successful build, push the image
|
|
echo " --- "
|
|
echo "Successfully built and pushed ${base}:${suite} with context ${build_dir}"
|
|
echo " --- "
|
|
}
|
|
|
|
dofile() {
|
|
f=$1
|
|
image=${f%Dockerfile}
|
|
base=${image%%\/*}
|
|
build_dir=$(dirname "$f")
|
|
suite=${build_dir##*\/}
|
|
|
|
if [[ -z "$suite" ]] || [[ "$suite" == "$base" ]]; then
|
|
suite=latest
|
|
fi
|
|
|
|
{
|
|
$SCRIPT build_and_push_kaniko "${base}" "${suite}" "${build_dir}"
|
|
} || {
|
|
# add to errors
|
|
echo "${base}:${suite}" >> "$ERRORS"
|
|
}
|
|
echo
|
|
echo
|
|
}
|
|
|
|
main(){
|
|
# get the dockerfiles
|
|
IFS=$'\n'
|
|
files=( $(find . -iname '*Dockerfile' | sed 's|./||' | sort) )
|
|
unset IFS
|
|
|
|
# build all dockerfiles
|
|
"$SCRIPT" dofile "{1}" ::: "${files[@]}"
|
|
|
|
if [[ ! -f $ERRORS ]]; then
|
|
echo "No errors, hooray!"
|
|
else
|
|
echo "[ERROR] Some images did not build correctly, see below." >&2
|
|
echo "These images failed: $(cat "$ERRORS")" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
run(){
|
|
args=$@
|
|
f=$1
|
|
|
|
if [[ "$f" == "" ]]; then
|
|
main "$args"
|
|
else
|
|
$args
|
|
fi
|
|
}
|
|
|
|
run $@ |