pungi-fedora/nightly.sh

106 lines
5.6 KiB
Bash
Raw Normal View History

#!/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`
MOCK="/usr/bin/mock"
TOMAIL="devel@lists.fedoraproject.org test@lists.fedoraproject.org"
TOMAIL="dennis@ausil.us"
SUBJECT='rawhide report: '$DATE' changes'
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="/pub/fedora/linux/atomic/$BRANCHED/"
OLDCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-/COMPOSE_ID)
# uncomment and edit for resuming a failed compose
#COMPOSE_ID="Fedora-23-20150530.n.0"
pushd $TMPDIR
git clone https://git.fedorahosted.org/git/comps.git && {
pushd 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"
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 "$@"
NEWCOMPOSE_ID=$(cat $TARGET_DIR/latest-Fedora-/COMPOSE_ID)
SHORTCOMPOSE_ID=$(echo $NEWCOMPOSE_ID|sed -e 's|Fedora-.*-||g')
DESTDIR=$TARGET_DIR/$NEWCOMPOSE_ID
MOCKCONFIG="fedora-${DIST}-compose-x86_64"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --init
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --install lorax rpm-ostree git
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "mkdir -p ${DESTDIR}/compose/Atomic/x86_64/iso"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell ""
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "if [ ! -d $ATOMICREPO ]; then ostree init --repo=$ATOMICREPO --mode=archive-z2;fi"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "git clone https://git.fedorahosted.org/git/fedora-atomic.git $ATOMIC && pushd $ATOMIC && git log -n 1 --pretty='%h: %ci - %s' && git checkout ${GIT_BRANCH}"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "cd $ATOMIC && sed -i -e 's|mirrorlist=.*$|baseurl=http://kojipkgs.fedoraproject.org/compose/$BRANCH/$NEWCOMPOSE_ID/compose/Everything/x86_64/os/|g' fedora*repo"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "rpm-ostree compose tree --repo=$ATOMICREPO $ATOMIC/fedora-atomic-docker-host.json >$logdir/atomic"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "lorax --nomacboot -p Fedora -v ${VERSION} -r ${SHORTCOMPOSE_ID} \
-s http://kojipkgs.fedoraproject.org/compose/$BRANCH/$NEWCOMPOSE_ID/compose/Everything/x86_64/os/ \
-i fedora-productimg-atomic \
-t Atomic \
--tmp /tmp/ \
--logfile=${DESTDIR}/logs/x86_64/atomic \
--add-template /spin-kickstarts/atomic-installer/lorax-configure-repo.tmpl \
--add-template-var=ostree_osname=fedora-atomic \
--add-arch-template-var=ostree_repo=https://kojipkgs.fedoraproject.org/compose/atomic/$VERSION/ \
--add-template-var=ostree_ref=fedora-atomic/${VERSION}/x86_64/docker-host \
--add-arch-template /spin-kickstarts/atomic-installer/lorax-embed-repo.tmpl \
--add-arch-template-var=ostree_osname=fedora-atomic \
--add-arch-template-var=ostree_ref=fedora-atomic/${VERSION}/x86_64/docker-host \
${DESTDIR}/compose/Atomic/x86_64/os/ "
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "cp -l ${DESTDIR}/compose/Atomic/x86_64/os/images/boot.iso ${DESTDIR}/compose/Atomic/x86_64/iso/Fedora-Atomic-x86_64-${VERSION}-${DATE}.iso"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --shell "pushd ${DESTDIR}/compose/Atomic/x86_64/iso/ ;sha256sum -b --tag *iso >Fedora-Atomic-${VERSION}-x86_64-CHECKSUM; popd"
$MOCK -r $MOCKCONFIG --uniqueext=$DATE --clean
compose-changelog -p $TARGET_DIR/$NEWCOMPOSE_ID/logs/ $TARGET_DIR/$OLDCOMPOSE_ID/ $TARGET_DIR/$NEWCOMPOSE_ID/
for dir in Everything Atomic CloudImages Docker Server Spins Workstation ;
do
$RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/fedora/linux/development/$DIST/$dir/ --link-dest=/pub/fedora/linux/development/$DIST/Everything/ --exclude=repodata ;
$RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/fedora/linux/development/$DIST/$dir/ --link-dest=/pub/fedora/linux/development/$DIST/Everything/ --delete-after ;
done
for dir in Cloud Labs ;
do
$RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/alt/development/$DIST/$dir/ --link-dest=/pub/fedora/linux/development/$DIST/Everything/ --exclude=repodata ;
$RSYNCPREFIX rsync -avhH $TARGET_DIR/$NEWCOMPOSE_ID/compose/$dir/ /pub/alt/development/$DIST/$dir/ --link-dest=/pub/fedora/linux/development/$DIST/Everything/ --delete-after ;
done
if [ "$mail" = "0" ]; then
for tomail in "$(echo $TOMAIL)" ; do
cat $TARGET_DIR/$NEWCOMPOSE_ID/logs/*verbose | \
mutt -e "set from=\"$FROM\"" -e 'set envelope_from=yes' -s "$SUBJECT" $tomail
done
fi