2017-04-06 10:48:35 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
#set -x
|
|
|
|
|
|
|
|
export LC_ALL=C
|
|
|
|
|
|
|
|
CONFIG="fedora-modular.conf"
|
|
|
|
TARGET_DIR="/mnt/koji/compose/"
|
|
|
|
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
|
|
|
|
NIGHTLY="--nightly"
|
|
|
|
SKIP_PHASES="--skip-phase=productimg"
|
|
|
|
DEST=$(pwd)
|
|
|
|
DATE=$(date "+%Y%m%d")
|
2017-10-04 16:30:45 +00:00
|
|
|
DIST="bikeshed"
|
|
|
|
BRANCHED="Modular-Bikeshed"
|
2017-04-06 10:48:35 +00:00
|
|
|
BRANCH="rawhide"
|
|
|
|
GIT_BRANCH="master"
|
|
|
|
TMPDIR=`mktemp -d /tmp/$DIST.$DATE.XXXX`
|
|
|
|
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
|
|
|
|
FROM="Fedora Rawhide Report <rawhide@fedoraproject.org>"
|
|
|
|
RSYNCPREFIX="sudo -u ftpsync"
|
|
|
|
ATOMIC=$(mktemp -d /tmp/atomic.${DIST}.$DATE.XXXX)
|
|
|
|
ATOMICREPO="/mnt/koji/compose/atomic/$BRANCHED/"
|
|
|
|
ATOMICDEST="/mnt/koji/atomic/$BRANCHED/"
|
2017-10-04 16:30:45 +00:00
|
|
|
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-Modular-Bikeshed/COMPOSE_ID)
|
2017-04-06 10:48:35 +00:00
|
|
|
|
|
|
|
# assume a releng dir is a git checkout of the releng repo
|
|
|
|
# if it does not exist clone it
|
|
|
|
if [ -d releng ]; then
|
|
|
|
pushd releng
|
|
|
|
git pull --rebase
|
|
|
|
popd
|
|
|
|
else
|
|
|
|
git clone https://pagure.io/releng.git
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Set up our fedmsg function, using the releng repo definition
|
|
|
|
FEDMSG_MODNAME="compose"
|
|
|
|
FEDMSG_CERTPREFIX="releng"
|
|
|
|
. ./releng/scripts/fedmsg-functions.sh
|
|
|
|
|
|
|
|
# Announce that we are starting, even though we don't know the compose_id yet..
|
2017-08-08 06:54:27 +00:00
|
|
|
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
|
2017-04-06 10:48:35 +00:00
|
|
|
send_fedmsg "${fedmsg_json_start}" ${DIST} start
|
|
|
|
|
2017-08-09 16:04:54 +00:00
|
|
|
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES"
|
2017-04-06 10:48:35 +00:00
|
|
|
|
|
|
|
if [ -z "$COMPOSE_ID" ]; then
|
|
|
|
CMD="$CMD --target-dir=$TARGET_DIR"
|
|
|
|
else
|
|
|
|
CMD="$CMD --debug-mode --compose-dir=$TARGET_DIR/$COMPOSE_ID"
|
|
|
|
fi
|
|
|
|
|
|
|
|
time $CMD "$@"
|
Bail after failed compose in nightly-modular.sh
When nightly-modular.sh was added, it wasn't set to check the
exit code from pungi-koji, as nightly.sh does. This was I guess
because it didn't do much after the compose finished at that
time, and the author thought it was OK for the few things it
*did* do to happen on both successful and failed composes.
However, it now does more stuff after compose completion, like
nightly.sh, including trying to generate changelog files and
send out a compose report email. But because the pungi-koji
exit code check is missing, it tries to do these things even
for failed composes. Changelog generation will fail when the
compose failed, and the email that gets sent out will have a
missing compose ID (because NEWCOMPOSE_ID and SHORTCOMPOSE_ID
can't be set properly and will be blank), and will be empty
because the changelog file that's supposed to be read in as the
content of the email isn't there. This is why we are getting
an empty mail with subject "Fedora Modular bikeshed compose
report: changes" every time a compose fails.
So, let's put that check in just like nightly.sh does.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
2017-12-04 22:08:15 +00:00
|
|
|
if [ "$?" != "0" ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
2017-04-06 10:48:35 +00:00
|
|
|
|
2017-10-04 16:30:45 +00:00
|
|
|
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-Modular-Bikeshed/COMPOSE_ID)
|
2017-04-06 10:48:35 +00:00
|
|
|
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-Modular.*-||g')
|
|
|
|
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "compose_id": "%s"}' "$BRANCHED" "$ARCH" "$NEWCOMPOSE_ID")
|
|
|
|
fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s", "compose_id": "%s"}' "$BRANCHED" "$ARCH" "$NEWCOMPOSE_ID")
|
|
|
|
|
2017-10-04 17:01:22 +00:00
|
|
|
# Set this to use later for a few items include depcheck
|
|
|
|
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
|
|
|
|
|
|
|
|
compose-changelog -p $TARGET_DIR/$NEWCOMPOSE_ID/logs/ $TARGET_DIR/$OLDCOMPOSE_ID/ $TARGET_DIR/$NEWCOMPOSE_ID/
|
|
|
|
# Figure out a version for broken deps e-mail that goes to package maintainers.
|
|
|
|
# In Rawhide it's just rawhide, for branched versions we prepend F- to the number.
|
|
|
|
if [ "$BRANCHED" = "Modular-Bikeshed" ]; then
|
|
|
|
TREENAME="$BRANCHED"
|
|
|
|
else
|
|
|
|
TREENAME="F-$BRANCHED"
|
|
|
|
fi
|
|
|
|
/usr/share/mash/spam-o-matic --nomail --treename="$TREENAME" "$DESTDIR/compose/Server/" >"$DESTDIR/logs/depcheck"
|
|
|
|
|
|
|
|
# Tell interested persons that the rsync is starting (zomg!)
|
|
|
|
send_fedmsg "${fedmsg_json_start}" ${DIST} rsync.start
|
|
|
|
|
|
|
|
# Sync the content to /pub/fedora
|
|
|
|
if [ ! -d /pub/fedora/linux/modular/development/$DIST ]; then
|
|
|
|
mkdir /pub/fedora/linux/modular/development/$DIST
|
|
|
|
fi
|
|
|
|
$RSYNCPREFIX compose-partial-copy --arch=armhfp --arch=x86_64 --arch=aarch64 --arch=ppc64 --arch=ppc64le --arch=s390x --arch src \
|
|
|
|
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora/linux/modular/development/$DIST/ \
|
|
|
|
--variant Server \
|
|
|
|
--exclude=repodata
|
|
|
|
$RSYNCPREFIX compose-partial-copy --arch=armhfp --arch=x86_64 --arch=aarch64 --arch=ppc64 --arch=ppc64le --arch=s390x --arch src \
|
|
|
|
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora/linux/modular/development/$DIST/ \
|
|
|
|
--variant Server \
|
|
|
|
--delete-after
|
|
|
|
$RSYNCPREFIX rm /pub/fedora/linux/modular/development/$DIST/.composeinfo
|
|
|
|
$RSYNCPREFIX ./releng/scripts/build_composeinfo /pub/fedora/linux/modular/development/$DIST/ --name "$NEWCOMPOSE_ID"
|
|
|
|
|
|
|
|
# Tell interested persons that the rsync is done.
|
|
|
|
send_fedmsg "${fedmsg_json_done}" ${DIST} rsync.complete
|
|
|
|
|
2017-04-06 10:48:35 +00:00
|
|
|
# Tell everyone by fedmsg about the compose
|
|
|
|
send_fedmsg "${fedmsg_json_done}" ${DIST} complete
|
|
|
|
|
2017-10-11 16:53:20 +00:00
|
|
|
# Tell everyone by email about the compose
|
|
|
|
SUBJECT='Fedora Modular '$DIST' compose report: '$SHORTCOMPOSE_ID' changes'
|
|
|
|
for tomail in $TOMAIL ; do
|
|
|
|
cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose | \
|
|
|
|
mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
|
|
|
|
done
|
|
|
|
|
2017-04-06 10:48:35 +00:00
|
|
|
# Remove old composes older than 14 days
|
2017-10-04 16:30:45 +00:00
|
|
|
find $TARGET_DIR/Fedora-Modular-Bikeshed* -xdev -depth -maxdepth 2 -mtime +14 -exec rm -rf {} \;
|