packages/scripts/long-built/build-container.sh

80 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -e -x
echo "::group::Generating source archive..."
ROOT_DIR=$(pwd)
SCRIPT_DIR="$(realpath "$(dirname "$0")"/..)"
source "${SCRIPT_DIR}/lib/parse-conf.sh"
sudo chown build -R .
PACKAGE="$(cat ${ROOT_DIR}/built_packages.txt)"
pkgdir="${ROOT_DIR}/long-built/$PACKAGE"
clone_aur() {
eval "$(parse-conf ${pkgdir})"
rm -rf "${pkgdir}"
git clone "https://aur.archlinux.org/${AUR_NAME}.git" "${pkgdir}"
EXIT_CODE="${?}"
if (( ${EXIT_CODE} ))
then
echo "exit code: ${code}"
exit ${code}
fi
}
if [ ! -f "${pkgdir}/PKGBUILD" ]
then
clone_aur
fi
cd "${pkgdir}"
sudo chown build -R .
# Generate archive with all required sources for the build
# This either includes local or downloads files using an url
su -c "makepkg --allsource --skippgpcheck" build
mv ./*.src.tar.gz "${ROOT_DIR}"
cd "${ROOT_DIR}"
echo "::endgroup::"
VERSION="$(date +%s)"
NAME="packages"
ID="$(echo "$REGISTRY"/$NAME | tr '[A-Z]' '[a-z]')"
REF="$(echo "$GH_REF" | sed -e 's,.*/\(.*\),\1,')"
[[ "${GH_REF}" == "refs/tags/"* ]] && REF=$(echo ${REF} | sed -e 's/^v//')
[ "${REF}" == "master" ] && REF=latest
VERSION_TAG="${ID}:${PACKAGE}-${VERSION}-$(date +%s)"
echo "VERSION=${VERSION}"
echo "REGISTRY=${REGISTRY}"
echo "NAME=${NAME}"
echo "ID=${ID}"
echo "REF=${REF}"
echo "VERSION_TAG=${VERSION_TAG}"
echo "::group::Building container image..."
# Build container from source files
docker build . \
--file scripts/long-built/Dockerfile \
--build-arg PACKAGE="${PACKAGE}" \
--tag "${VERSION_TAG}" \
# Reduce worker space used
rm -rf ./*
echo "::endgroup::"
echo "::set-output name=version-tag::${VERSION_TAG}"