Files
qt6-migration-pipeline/specs/external/avs_conf/build_rpm_git.sh
T

93 lines
2.1 KiB
Bash
Executable File

#! /bin/bash
#
# Dieses Skript soll sowohl lokal in einer Working Copy als auch über Jenkins ausführbar sein.
# Unter Jenkins soll nur dieser Ordner ausgecheckt werden.
# Die gebauten RPMs werden von rpmbuild unter ~/rpmbuild/RPMS abgelegt.
# Wenn sie für Jenkins zugreifbar sein sollen (für die Artefacts), müssen sie jedoch
# irgendwo im Workspace liegen. Daher ist für die Verwendung über Jenkins ein optionaler
# Kopier- bzw. Move-Schritt am Ende notwendig.
#
copy_rpms()
{
if [[ ! -d $outdir ]]; then
mkdir -p "$outdir"
fi
rpms=($(find $rpm_builddir/RPMS -name "${project}_avs_conf-*-${version}-${revision}.*.rpm"))
mv "${rpms[@]}" "$outdir"
}
usage()
{
echo "usage: $0 [-p <project>] [-v <version>] [-o <outdir>]"
}
LANG=en_US
project=guez
version=1.0
outdir=
while getopts p:v:o:h opt_name
do
case $opt_name in
p) project="$OPTARG";;
v) version="$OPTARG";;
o) outdir="$OPTARG";;
h) usage; exit 0;;
?) usage; exit 1;;
esac
done
if [[ ! -d "$project" ]]; then
echo "Missing folder for project $project!"
exit 1
fi
revision="$BUILD_NUMBER"
spec_file=avs_conf.spec
spec_file_legacy=avs_conf-legacy-ws.spec
spec_file_if=avs_conf-if.spec
echo "Project: ${project}, Version: ${version}.${revision}"
rpm_builddir=$HOME/rpmbuild
src_dir=$rpm_builddir/SOURCES
[ ! -d "$src_dir" ] && mkdir -p "$src_dir"
# We use the same project tarball for both packages
tar czf "$src_dir/avs_conf.tgz" $project
cp "$src_dir/avs_conf.tgz" "$src_dir/avs_conf-if.tgz"
# Some projects don't need/have an AVS interface workstation and thus don't need avs_conf-if.
spec_files_to_build=("$spec_file")
if [[ $project != qatar ]]; then
spec_files_to_build+=("$spec_file_if")
fi
if [[ $project == ahtc ]]; then
spec_files_to_build+=("$spec_file_legacy")
fi
for f in "${spec_files_to_build[@]}"; do
sed -e s,@PROJECT@,${project},g \
-e s,@VERSION@,${version},g \
-e s,@RELEASE@,${revision},g \
${f}.in > $f
rpmbuild -bb $f
if [ $? -ne 0 ]; then
exit $?;
fi
done
if [[ -n $outdir ]]; then
copy_rpms
fi
for f in "${spec_files_to_build[@]}"; do
rm $f;
done