diff --git a/ci_container/Dockerfile b/ci_container/Dockerfile new file mode 100644 index 0000000..5989691 --- /dev/null +++ b/ci_container/Dockerfile @@ -0,0 +1,29 @@ +FROM debian:latest + +RUN apt-get update; \ + DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get install --no-install-recommends -y \ + build-essential \ + exim4-daemon-heavy \ + exim4-dev \ + gcovr \ + git \ + libsodium-dev \ + openssl \ + pkg-config \ + python3-pip \ + libxml2-utils; \ + DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get install --no-install-recommends -y \ + debhelper \ + debsigs \ + devscripts \ + dh-make \ + git-buildpackage \ + gpgv1 \ + meson; \ + DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get install --no-install-recommends -y \ + vim; \ + DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get clean; \ + rm -rf /var/lib/apt/lists/*; + +RUN pip3 install --upgrade meson ninja; \ + rm -rf ~/.cache/pip/*; diff --git a/ci_container/build.sh b/ci_container/build.sh index 002285a..cd65a76 100755 --- a/ci_container/build.sh +++ b/ci_container/build.sh @@ -29,7 +29,15 @@ while getopts "r:u:p:b:t:" OPTION; do TAG="${OPTARG}" ;; *) - echo "Invalid argument" + echo "Usage: $0 [OPTIONS]" + echo + echo "Options:" + echo " -r (default: \"${REGISTRY}\")" + echo " -u (default: \"${USERNAME}\")" + echo " -p (default: \"${PASSWORD}\")" + echo " -b (default: \"${BASENAME}\")" + echo " -t (default: \"${TAG}\")" + echo exit 127 esac done @@ -47,39 +55,21 @@ for i in "${images[@]}"; do name=$(echo "${i}" | cut -d'|' -f2) IMAGENAME="${BASENAME}-${name}" + IIDFILE=".${IMAGENAME}.iid" + IMAGETAG="${BASENAME}-${name}:${TAG}" + TARGET="${REGISTRY}/${IMAGETAG}" echo "🔨 Assembling »${IMAGENAME}«" - ctr="$(buildah from "$basectr")" - buildah run "$ctr" /bin/sh -c 'apt-get update; \ - DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get install --no-install-recommends -y \ - build-essential \ - exim4-daemon-heavy \ - exim4-dev \ - gcovr \ - git \ - libsodium-dev \ - openssl \ - pkg-config \ - python3-pip \ - libxml2-utils; \ - DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get install --no-install-recommends -y \ - debhelper \ - debsigs \ - devscripts \ - dh-make \ - git-buildpackage \ - gpgv1 \ - meson; \ - DEBIAN_FRONTEND=noninteractive DEBIAN_PRIORITY=critical apt-get install --no-install-recommends -y \ - vim; \ - rm -rf /var/lib/apt/lists/*;' - buildah run "$ctr" /bin/sh -c \ - 'pip3 install --upgrade meson ninja; \ - rm -rf ~/.cache/pip/*;' - TARGET="${REGISTRY}/${BASENAME}-${name}:${TAG}" - IMAGEID=$(buildah commit --format docker "$ctr" "${IMAGENAME}") + buildah build-using-dockerfile \ + --from "${basectr}" \ + --format docker \ + --iidfile "${IIDFILE}" \ + --tag "${IMAGETAG}" + if [ "${REGISTRY}" != "none" ]; then - echo "🚀 Pushing »${TARGET}«" - buildah push "${IMAGEID}" "${TARGET}" + echo "🚀 Pushing »${IMAGETAG}« to »${TARGET}«" + buildah push "${IMAGETAG}" "${TARGET}" echo "✅ Finished »${BASENAME}«" fi + + rm -f "${IIDFILE}" done