ea7b045988
This adds pruning for atomic workstation. We don't yet rsync atomic workstation out like we do for atomic host. I'm not sure why but didn't want to add that as part of this commit. Signed-off-by: Dusty Mabe <dusty@dustymabe.com>
176 lines
7.1 KiB
Bash
Executable File
176 lines
7.1 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)
|
|
ATOMICHOSTREPO="/mnt/koji/compose/atomic/$BRANCHED/"
|
|
ATOMICWSREPO="/mnt/koji/compose/ostree/$BRANCHED/"
|
|
ATOMICHOSTDEST="/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..
|
|
fedmsg_json_start=$(printf '{"log": "start", "branch": "%s", "arch": "%s"}' "$BRANCHED" "$ARCH")
|
|
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/
|
|
# 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" = "rawhide" ]; then
|
|
TREENAME="$BRANCHED"
|
|
else
|
|
TREENAME="F-$BRANCHED"
|
|
fi
|
|
/usr/share/mash/spam-o-matic --treename="$TREENAME" "$DESTDIR/compose/Everything/" >"$DESTDIR/logs/depcheck"
|
|
|
|
[ -z "$ARCH" ] && {
|
|
./releng/scripts/critpath.py --url file://$DESTDIR/compose/Everything/ -o $DESTDIR/logs/critpath.txt rawhide &> $DESTDIR/logs/critpath.log
|
|
}
|
|
|
|
# prune atomic host and atomic workstation repos
|
|
ostree prune --repo=$ATOMICHOSTREPO --keep-younger-than="14 days ago" --refs-only
|
|
ostree prune --repo=$ATOMICWSREPO --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 --arch=s390x \
|
|
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora-secondary/development/$DIST/ \
|
|
--link-dest=/pub/fedora/linux/development/$DIST/Everything/ --exclude=repodata
|
|
$RSYNCPREFIX compose-partial-copy --arch=aarch64 --arch=i386 --arch=ppc64 --arch=ppc64le --arch=s390x \
|
|
"$TARGET_DIR/$NEWCOMPOSE_ID" /pub/fedora-secondary/development/$DIST/ \
|
|
--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 $ATOMICHOSTREPO $ATOMICHOSTDEST
|
|
|
|
# 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 {} \;
|
|
|