pungi-fedora/nightly.sh
Adam Miller ae2f611637 Switch from docker to container namespace
Fedora Atomic WG has decided to move from the "docker" namespace to
the "container" namespace for the sake of making it more generic in
order to target all OCI Compliant container runtimes instead of
a specific implementation. This update changes what is necessary for
to the base image metadata as well as add a transitional second call
to handle both the docker and container namespace for block_retired.

Signed-off-by: Adam Miller <maxamillion@fedoraproject.org>
2017-04-26 17:16:16 -05:00

167 lines
6.6 KiB
Bash
Executable File

#!/bin/sh
export LC_ALL=C
CONFIG="fedora.conf"
TARGET_DIR="/mnt/koji/compose/rawhide"
#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")
DIST="rawhide"
BRANCHED="rawhide"
BRANCH="rawhide"
COMPSFILE="comps-rawhide.xml"
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/"
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-Rawhide/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 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..
send_fedmsg "${fedmsg_json_start}" ${DIST} start
pushd $TMPDIR
git clone https://pagure.io/fedora-comps.git && {
pushd fedora-comps
make "${COMPSFILE}"
cp "${COMPSFILE}" $DEST/
popd
}
popd
./releng/scripts/block_retired.py
./releng/scripts/block_retired.py --namespace=docker
./releng/scripts/block_retired.py --namespace=container
CMD="pungi-koji --notification-script=/usr/bin/pungi-fedmsg-notification --config=$CONFIG --old-composes=$TARGET_DIR $OLD_COMPOSES_DIR $NIGHTLY $SKIP_PHASES"
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-Fedora-Rawhide/COMPOSE_ID)
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||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")
# 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/
/usr/share/mash/spam-o-matic $DESTDIR/compose/Everything/ >$DESTDIR/logs/depcheck
[ -z "$ARCH" ] && {
./releng/scripts/critpath.py --url file://$DESTDIR/compose/Everything -o $DESTDIR/logs/critpath.txt branched &> $DESTDIR/logs/critpath.log
}
ostree prune --repo=$ATOMICREPO --keep-younger-than="14 days ago" --refs-only
# 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/development/$DIST ]; then
mkdir /pub/fedora/linux/development/$DIST
fi
$RSYNCPREFIX compose-partial-copy --arch=armhfp --arch=x86_64 --arch src \
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora/linux/development/$DIST/ \
--variant Everything --variant Atomic --variant CloudImages --variant Docker --variant Server --variant Spins --variant Workstation \
--link-dest=/pub/fedora/linux/development/$DIST/Everything --exclude=repodata
$RSYNCPREFIX compose-partial-copy --arch=armhfp --arch=x86_64 --arch src \
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora/linux/development/$DIST/ \
--variant Everything --variant Atomic --variant CloudImages --variant Docker --variant Server --variant Spins --variant Workstation \
--link-dest=/pub/fedora/linux/development/$DIST/Everything --delete-after
$RSYNCPREFIX rm /pub/fedora/linux/development/$DIST/.composeinfo
$RSYNCPREFIX ./releng/scripts/build_composeinfo /pub/fedora/linux/development/$DIST/ --name "$NEWCOMPOSE_ID"
# Sync the content to /pub/alt
if [ ! -d /pub/alt/development/$DIST ]; then
mkdir /pub/alt/development/$DIST
fi
$RSYNCPREFIX compose-partial-copy --arch=armhfp --arch=x86_64 \
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/alt/development/$DIST/ \
--variant Cloud --variant Labs \
--link-dest=/pub/fedora/linux/development/$DIST/Everything/ --exclude=repodata
$RSYNCPREFIX compose-partial-copy --arch=armhfp --arch=x86_64 \
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/alt/development/$DIST/ \
--variant Cloud --variant Labs \
--link-dest=/pub/fedora/linux/development/$DIST/Everything/ --delete-after
$RSYNCPREFIX rm /pub/alt/development/$DIST/.composeinfo
$RSYNCPREFIX ./releng/scripts/build_composeinfo /pub/alt/development/$DIST/ --name "$NEWCOMPOSE_ID"
# Sync the content to /pub/fedora-secondary
if [ ! -d /pub/fedora-secondary/development/$DIST ]; then
mkdir /pub/fedora-secondary/development/$DIST
fi
$RSYNCPREFIX compose-partial-copy --arch=aarch64 --arch=i386 --arch=ppc64 --arch=ppc64le \
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora-secondary/development/$DIST/ \
--exclude=s390x \
--link-dest=/pub/fedora/linux/development/$DIST/Everything/ --exclude=repodata
$RSYNCPREFIX compose-partial-copy --arch=aarch64 --arch=i386 --arch=ppc64 --arch=ppc64le \
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora-secondary/development/$DIST/ \
--exclude=s390x \
--link-dest=/pub/fedora/linux/development/$DIST/Everything/ --delete-after
$RSYNCPREFIX rm /pub/fedora-secondary/development/$DIST/.composeinfo
$RSYNCPREFIX ./releng/scripts/build_composeinfo /pub/fedora-secondary/development/$DIST/ --name "$NEWCOMPOSE_ID"
$RSYNCPREFIX rsync -avhH --delete-after $ATOMICREPO $ATOMICDEST
# Tell interested persons that the rsync is done.
send_fedmsg "${fedmsg_json_done}" ${DIST} rsync.complete
# Tell everyone by fedmsg about the compose
send_fedmsg "${fedmsg_json_done}" ${DIST} complete
# Tell everyone by email about the compose
SUBJECT='Fedora '$DIST' 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
for koji in arm ppc s390
do
if [ "$koji" = "arm" ]; then
arches=aarch64
elif [ "$koji" = "ppc" ]; then
arches=ppc64,ppc64le
elif [ "$koji" = "s390" ]; then
arches=s390x
fi
./releng/scripts/srpm-excluded-arch.py -a $arches --path $DESTDIR/compose/Everything/source/tree/Packages/ >$DESTDIR/logs/excludearch-$koji.log
done
find $TARGET_DIR -xdev -depth -maxdepth 2 -mtime +14 -exec rm -rf {} \;