93 lines
2.1 KiB
Bash
Executable File
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
|