For fedmsg_meta we have to provide a 'link'. At present we do this with a rather large and icky pile of conditionals which doesn't work properly. It's much simpler to figure out the URL in the compose script and emit it in the fedmsg, then meta can just...use it. For older fedmsgs we'll just point to the base kojipkgs location for the link. For synced composes, we use the synced URL on dl (this matches what the meta stuff tried to do before). For non-synced composes we just use the kojipkgs location. Signed-off-by: Adam Williamson <awilliam@redhat.com>
89 lines
3.6 KiB
Bash
Executable File
89 lines
3.6 KiB
Bash
Executable File
#!/bin/sh
|
|
export LC_ALL=C
|
|
LABEL=$1
|
|
# Remove the label from arguments. It gets special treatment. Other arguments
|
|
# to the script are passed to pungi-koji directly.
|
|
shift
|
|
CONFIG="fedora-atomic.conf"
|
|
TARGET_DIR="/mnt/koji/compose/twoweek"
|
|
#OLD_COMPOSES_DIR="--old-composes=/mnt/fedora_koji/compose/f23 --old-composes=$TARGET_DIR"
|
|
NIGHTLY=""
|
|
SKIP_PHASES="--skip-phase=productimg --skip-phase=extra_files"
|
|
DEST=$(pwd)
|
|
DATE=$(date "+%Y%m%d")
|
|
# the Pungi 'shortname', which we will include in fedmsgs for disambiguation
|
|
SHORT="Fedora-Atomic"
|
|
RELEASE="27"
|
|
RELEASE_TITLE="27"
|
|
COMPSFILE="comps-f27.xml"
|
|
TMPDIR=`mktemp -d /tmp/$RELEASE.$DATE.XXXX`
|
|
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
|
|
FROM="Fedora Branched Report <rawhide@fedoraproject.org>"
|
|
RSYNCPREFIX="sudo -u ftpsync"
|
|
RSYNCTARGET="/pub/alt/atomic/testing/$SHORTCOMPOSE_ID"
|
|
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-$SHORT-$RELEASE_TITLE/COMPOSE_ID)
|
|
# uncomment and edit for resuming a failed compose
|
|
#COMPOSE_ID="Fedora-23-20150530.n.0"
|
|
# assume a releng dir is a git checkout of teh 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_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "short": "%s"}' "$RELEASE" "$ARCH" "$SHORT")
|
|
FEDMSG_MODNAME="compose"
|
|
FEDMSG_CERTPREFIX="releng"
|
|
. ./releng/scripts/fedmsg-functions.sh
|
|
# Announce that we are starting...
|
|
send_fedmsg "${fedmsg_json_start}" ${RELEASE} start
|
|
pushd $TMPDIR
|
|
git clone https://pagure.io/fedora-comps.git && {
|
|
pushd fedora-comps
|
|
make "${COMPSFILE}"
|
|
cp "${COMPSFILE}" $DEST/
|
|
popd
|
|
}
|
|
popd
|
|
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES --label=$LABEL"
|
|
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 "$@"
|
|
if [ "$?" != "0" ]; then
|
|
exit 1
|
|
fi
|
|
|
|
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-$SHORT-$RELEASE_TITLE/COMPOSE_ID)
|
|
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||g')
|
|
|
|
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
|
|
# Public URL the synced compose will wind up at, we put it in fedmsgs
|
|
LOCATION="https://dl.fedoraproject.org/$RSYNCTARGET"
|
|
# Update fedmsg template
|
|
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s", "short": "%s", "compose_id": "%s", "location": "%s"}' "$RELEASE" "$ARCH" "$SHORT" "$NEWCOMPOSE_ID", "$LOCATION")
|
|
fedmsg_json_done=$(printf '{"log": "done", "branch": "%s", "arch": "%s", "short": "%s", "compose_id": "%s", "location": "%s"}' "$RELEASE" "$ARCH" "$SHORT" "$NEWCOMPOSE_ID" "$LOCATION")
|
|
|
|
$RSYNCPREFIX mkdir -p $DESTDIR
|
|
# Tell interested persons that the rsync is starting (zomg!)
|
|
send_fedmsg "${fedmsg_json_start}" ${RELEASE} rsync.start
|
|
for dir in Atomic CloudImages Docker metadata ;
|
|
do
|
|
$RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ "$RSYNCTARGET/$dir/" ;
|
|
$RSYNCPREFIX ./releng/scripts/build_composeinfo "$RSYNCTARGET/" --name $NEWCOMPOSE_ID
|
|
done
|
|
# Tell interested persons that the rsync is done.
|
|
send_fedmsg "${fedmsg_json_done}" ${RELEASE} rsync.complete
|
|
# Tell everyone by fedmsg about the compose
|
|
send_fedmsg "${fedmsg_json_done}" ${RELEASE} complete
|
|
SUBJECT='Fedora '$RELEASE' compose report: '$SHORTCOMPOSE_ID' changes'
|
|
#for tomail in $TOMAIL ; do
|
|
# cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose $DESTDIR/logs/depcheck | \
|
|
# mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
|
|
#done
|