Files
exim-encrypt-dlfunc/ci_container/build.sh
2022-04-25 23:06:03 +02:00

77 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
# shellcheck disable=SC1004
set -e
images=('debian:buster|buster' 'debian:bullseye|bullseye' 'ubuntu:focal|focal')
BASENAME='exim-encrypt-dlfunc-build'
TAG='latest'
REGISTRY='localhost:5000'
USERNAME='nobody'
PASSWORD='password'
while getopts "r:u:p:b:t:" OPTION; do
case $OPTION in
r)
REGISTRY="${OPTARG}"
;;
u)
USERNAME="${OPTARG}"
;;
p)
PASSWORD="${OPTARG}"
;;
b)
BASENAME="${OPTARG}"
;;
t)
TAG="${OPTARG}"
;;
*)
echo "Usage: $0 [OPTIONS]"
echo
echo "Options:"
echo " -r <registry> (default: \"${REGISTRY}\")"
echo " -u <username> (default: \"${USERNAME}\")"
echo " -p <password> (default: \"${PASSWORD}\")"
echo " -b <basename> (default: \"${BASENAME}\")"
echo " -t <tag> (default: \"${TAG}\")"
echo
exit 127
esac
done
REGHOST="$(echo "${REGISTRY}" | cut -d/ -f1)"
if [ "${REGISTRY}" != "none" ]; then
echo "🔑 Logging into »${REGHOST}«"
if ! buildah login --get-login "${REGHOST}" > /dev/null 2> /dev/null; then
buildah login --password "${PASSWORD}" --username "${USERNAME}" "${REGHOST}"
fi
fi
for i in "${images[@]}"; do
basectr=$(echo "${i}" | cut -d'|' -f1)
name=$(echo "${i}" | cut -d'|' -f2)
IMAGENAME="${BASENAME}-${name}"
IIDFILE=".${IMAGENAME}.iid"
IMAGETAG="${BASENAME}-${name}:${TAG}"
TARGET="${REGISTRY}/${IMAGETAG}"
echo "🔨 Assembling »${IMAGENAME}«"
buildah build-using-dockerfile \
--from "${basectr}" \
--format docker \
--iidfile "${IIDFILE}" \
--tag "${IMAGETAG}" \
--build-arg BUILDTIMESTAMP="`date --iso-8601=seconds`"
if [ "${REGISTRY}" != "none" ]; then
echo "🚀 Pushing »${IMAGETAG}« to »${TARGET}«"
buildah push "${IMAGETAG}" "${TARGET}"
echo "✅ Finished »${BASENAME}«"
fi
rm -f "${IIDFILE}"
done