f5985aa83a
YUM & friends use a cache directory named /tmp/yum-$USER-xxx or similar, even when used concurrently e.g. when bulding unrelated source trees. This causes interference between CI pipelines. This patch sets TMPDIR=$MY_WORKSPACE/tmp when calling repoquery, etc. Change-Id: Ieeb4d6fd9447f1c2988380c3427975893be365a5 Closes-Bug: 1867817 Signed-off-by: Davlet Panech <davlet.panech@windriver.com>
109 lines
2.6 KiB
Bash
Executable File
109 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Copyright (c) 2018 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
#
|
|
# Build first src.rpms, then rpms, from source, or from a downloaded tarball
|
|
# or src.rpm plus our additional patches.
|
|
#
|
|
# This program is a wrapper around build-pkgs-parallel and build-pkgs-serial
|
|
#
|
|
|
|
BUILD_PKGS_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}" )" )"
|
|
|
|
usage () {
|
|
echo ""
|
|
echo "Usage: "
|
|
echo " Create source and binary rpms:"
|
|
echo " build-pkgs [--serial] [args]"
|
|
}
|
|
|
|
SERIAL_FLAG=0
|
|
RC=0
|
|
|
|
for arg in "$@"; do
|
|
case "$1" in
|
|
--serial) SERIAL_FLAG=1 ;;
|
|
esac
|
|
done
|
|
|
|
which mock_tmpfs_umount >> /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
SERIAL_FLAG=1
|
|
fi
|
|
|
|
export TMPDIR=$MY_WORKSPACE/tmp
|
|
mkdir -p $TMPDIR
|
|
|
|
# Make sure we have a dependency cache
|
|
DEP_CACHE="$MY_REPO/cgcs-tis-repo/dependancy-cache"
|
|
|
|
BUILD_TYPES=(" std rt installer containers")
|
|
DEP_RPM_TYPE=(" RPMS SRPMS ")
|
|
DEP_DELTAS="$DEP_CACHE/deltas-rpms-srpms"
|
|
|
|
make_cache_current_rpms () {
|
|
|
|
FILE=${1}
|
|
|
|
if [ -z "${FILE}" ]; then
|
|
echo "File not specified"
|
|
return;
|
|
fi
|
|
|
|
if [ -f ${FILE} ]; then
|
|
rm ${FILE}
|
|
fi
|
|
|
|
for build_type in $BUILD_TYPES; do
|
|
for rpm_type in $DEP_RPM_TYPE; do
|
|
|
|
if [ -d $MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/repodata ]; then
|
|
current=$MY_WORKSPACE/$build_type/rpmbuild/$rpm_type/
|
|
|
|
repoquery \
|
|
--repofrompath=$build_type-$rpm_type,$current \
|
|
--repoid=$build_type-$rpm_type --arch=noarch,src,x86_64 -a \
|
|
--qf "%-10{repoid} %-40{name} %-10{version} %-10{release}" \
|
|
>> ${FILE}
|
|
fi
|
|
done;
|
|
done;
|
|
}
|
|
|
|
if [ ! -d $DEP_CACHE ]; then
|
|
echo "Dependency cache is missing. Creating it now."
|
|
$BUILD_PKGS_DIR/create_dependancy_cache.py > $MY_WORKSPACE/create_dependancy_cache.log
|
|
make_cache_current_rpms $DEP_DELTAS
|
|
echo "Dependency cache created."
|
|
else
|
|
DEP_TMP=$(mktemp)
|
|
make_cache_current_rpms $DEP_TMP
|
|
if diff $DEP_DELTAS $DEP_TMP > /dev/null; then
|
|
echo "No changes for stx projects"
|
|
rm $DEP_TMP
|
|
else
|
|
echo "Changes detected for stx projects"
|
|
echo "Recreating dependecy cache now."
|
|
mv $DEP_TMP $DEP_DELTAS
|
|
$BUILD_PKGS_DIR/create_dependancy_cache.py > $MY_WORKSPACE/create_dependancy_cache.log
|
|
echo "Dependency cache recreated."
|
|
fi
|
|
fi
|
|
|
|
if [ $SERIAL_FLAG -eq 1 ]; then
|
|
echo "build-pkgs-serial $@"
|
|
build-pkgs-serial "$@"
|
|
RC=$?
|
|
else
|
|
echo "build-pkgs-parallel $@"
|
|
build-pkgs-parallel "$@"
|
|
RC=$?
|
|
fi
|
|
|
|
exit $RC
|