[scripts] iso_build.sh: make it more concurrency friendly
This commit is contained in:
parent
0176231d03
commit
fbcacb5319
@ -21,6 +21,7 @@ CUR_DATE=$(date -u +%Y%m%d)
|
|||||||
LOG_FILE="/var/log/molecule/autobuild-${CUR_DATE}-${$}.log"
|
LOG_FILE="/var/log/molecule/autobuild-${CUR_DATE}-${$}.log"
|
||||||
BUILDING_DAILY=1
|
BUILDING_DAILY=1
|
||||||
MAKE_TORRENTS="${MAKE_TORRENTS:-0}"
|
MAKE_TORRENTS="${MAKE_TORRENTS:-0}"
|
||||||
|
DAILY_TMPDIR=
|
||||||
|
|
||||||
# to make ISO remaster spec files working (pre_iso_script)
|
# to make ISO remaster spec files working (pre_iso_script)
|
||||||
export CUR_DATE
|
export CUR_DATE
|
||||||
@ -127,10 +128,16 @@ elif [ "${ACTION}" = "daily" ]; then
|
|||||||
REMASTER_TAR_SPECS_TAR=()
|
REMASTER_TAR_SPECS_TAR=()
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ -d "/sabayon/molecules/daily" ]] || mkdir -p /sabayon/molecules/daily
|
|
||||||
[[ -d "/sabayon/molecules/daily/remaster" ]] || mkdir -p /sabayon/molecules/daily/remaster
|
|
||||||
[[ -d "/var/log/molecule" ]] || mkdir -p /var/log/molecule
|
[[ -d "/var/log/molecule" ]] || mkdir -p /var/log/molecule
|
||||||
|
|
||||||
|
cleanup_on_exit() {
|
||||||
|
if [ -n "${DAILY_TMPDIR}" ] && [ -d "${DAILY_TMPDIR}" ]; then
|
||||||
|
rm -rf "${DAILY_TMPDIR}"
|
||||||
|
# don't care about races
|
||||||
|
DAILY_TMPDIR=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
trap "cleanup_on_exit" EXIT INT TERM
|
||||||
|
|
||||||
move_to_pkg_sabayon_org() {
|
move_to_pkg_sabayon_org() {
|
||||||
if [ -n "${DO_PUSH}" ] || [ -f /sabayon/DO_PUSH ]; then
|
if [ -n "${DO_PUSH}" ] || [ -f /sabayon/DO_PUSH ]; then
|
||||||
@ -157,14 +164,17 @@ move_to_pkg_sabayon_org() {
|
|||||||
|
|
||||||
build_sabayon() {
|
build_sabayon() {
|
||||||
if [ -z "${DRY_RUN}" ]; then
|
if [ -z "${DRY_RUN}" ]; then
|
||||||
rm -rf /sabayon/molecules/daily/*.spec
|
|
||||||
rm -rf /sabayon/molecules/daily/remaster/*.spec
|
DAILY_TMPDIR=$(mktemp -d --suffix=.iso_build.sh --tmpdir=/tmp)
|
||||||
|
[[ -z "${DAILY_TMPDIR}" ]] && return 1
|
||||||
|
DAILY_TMPDIR_REMASTER="${DAILY_TMPDIR}/remaster"
|
||||||
|
mkdir "${DAILY_TMPDIR_REMASTER}" || return 1
|
||||||
|
|
||||||
local source_specs=""
|
local source_specs=""
|
||||||
for i in ${!SOURCE_SPECS[@]}
|
for i in ${!SOURCE_SPECS[@]}
|
||||||
do
|
do
|
||||||
src="/sabayon/molecules/${SOURCE_SPECS[i]}"
|
src="/sabayon/molecules/${SOURCE_SPECS[i]}"
|
||||||
dst="/sabayon/molecules/daily/${SOURCE_SPECS[i]}"
|
dst="${DAILY_TMPDIR}/${SOURCE_SPECS[i]}"
|
||||||
cp "${src}" "${dst}" -p || return 1
|
cp "${src}" "${dst}" -p || return 1
|
||||||
echo >> "${dst}"
|
echo >> "${dst}"
|
||||||
echo "inner_source_chroot_script: /sabayon/scripts/inner_source_chroot_update.sh" >> "${dst}"
|
echo "inner_source_chroot_script: /sabayon/scripts/inner_source_chroot_update.sh" >> "${dst}"
|
||||||
@ -181,7 +191,7 @@ build_sabayon() {
|
|||||||
for i in ${!ARM_SOURCE_SPECS[@]}
|
for i in ${!ARM_SOURCE_SPECS[@]}
|
||||||
do
|
do
|
||||||
src="/sabayon/molecules/${ARM_SOURCE_SPECS[i]}"
|
src="/sabayon/molecules/${ARM_SOURCE_SPECS[i]}"
|
||||||
dst="/sabayon/molecules/daily/${ARM_SOURCE_SPECS[i]}"
|
dst="${DAILY_TMPDIR}/${ARM_SOURCE_SPECS[i]}"
|
||||||
cp "${src}" "${dst}" -p || return 1
|
cp "${src}" "${dst}" -p || return 1
|
||||||
echo >> "${dst}"
|
echo >> "${dst}"
|
||||||
echo "inner_source_chroot_script: /sabayon/scripts/inner_source_chroot_update.sh" >> "${dst}"
|
echo "inner_source_chroot_script: /sabayon/scripts/inner_source_chroot_update.sh" >> "${dst}"
|
||||||
@ -198,7 +208,7 @@ build_sabayon() {
|
|||||||
for i in ${!REMASTER_SPECS[@]}
|
for i in ${!REMASTER_SPECS[@]}
|
||||||
do
|
do
|
||||||
src="/sabayon/molecules/${REMASTER_SPECS[i]}"
|
src="/sabayon/molecules/${REMASTER_SPECS[i]}"
|
||||||
dst="/sabayon/molecules/daily/remaster/${REMASTER_SPECS[i]}"
|
dst="${DAILY_TMPDIR_REMASTER}/${REMASTER_SPECS[i]}"
|
||||||
cp "${src}" "${dst}" -p || return 1
|
cp "${src}" "${dst}" -p || return 1
|
||||||
# tweak iso image name
|
# tweak iso image name
|
||||||
sed -i "s/^#.*destination_iso_image_name/destination_iso_image_name:/" "${dst}" || return 1
|
sed -i "s/^#.*destination_iso_image_name/destination_iso_image_name:/" "${dst}" || return 1
|
||||||
@ -212,7 +222,7 @@ build_sabayon() {
|
|||||||
for i in ${!REMASTER_TAR_SPECS[@]}
|
for i in ${!REMASTER_TAR_SPECS[@]}
|
||||||
do
|
do
|
||||||
src="/sabayon/molecules/${REMASTER_TAR_SPECS[i]}"
|
src="/sabayon/molecules/${REMASTER_TAR_SPECS[i]}"
|
||||||
dst="/sabayon/molecules/daily/remaster/${REMASTER_TAR_SPECS[i]}"
|
dst="${DAILY_TMPDIR_REMASTER}/${REMASTER_TAR_SPECS[i]}"
|
||||||
cp "${src}" "${dst}" -p || return 1
|
cp "${src}" "${dst}" -p || return 1
|
||||||
# tweak tar name
|
# tweak tar name
|
||||||
sed -i "s/^#.*tar_name/tar_name:/" "${dst}" || return 1
|
sed -i "s/^#.*tar_name/tar_name:/" "${dst}" || return 1
|
||||||
@ -275,8 +285,4 @@ else
|
|||||||
fi
|
fi
|
||||||
echo "EXIT_STATUS: ${out}"
|
echo "EXIT_STATUS: ${out}"
|
||||||
|
|
||||||
CUR_DAY=$(date -u +%d)
|
|
||||||
if [ "${CUR_DAY}" = "01" ]; then
|
|
||||||
rm -rf /sabayon/pkgcache/*
|
|
||||||
fi
|
|
||||||
exit ${out}
|
exit ${out}
|
||||||
|
Loading…
Reference in New Issue
Block a user