1
1
mirror of https://pagure.io/fedora-kickstarts.git synced 2024-11-30 18:53:07 +00:00
fedora-kickstarts/tools/nightly-composes

160 lines
5.3 KiB
Bash
Executable File

#!/bin/bash
TOPDIR=/var/tmp
STATEFILE=$TOPDIR/nightlylivecdstatefile
# WARNING: MirrorManager must always give this mirror to the host running this script
STATEPATH=http://infrastructure.fedoraproject.org/pub/fedora/linux/development/13/x86_64/os/repodata/repomd.xml
getdatehash() {
DUMP=$(wget --no-cache -S $1 -O /dev/null 2>&1)
echo "$DUMP" | grep -q "HTTP/1.1 200 OK"
if [ $? -eq 0 ]; then
DATE=$(echo "$DUMP"|grep '^ Last-Modified'|sha1sum |awk {'print $1'})
else
echo "ERROR: $STATEPATH failed."
exit 1
fi
}
getdatehash $STATEPATH
if [ -f $STATEFILE ]; then
OLDDATE=$(cat $STATEFILE)
if [ "$OLDDATE" == "$DATE" ]; then
# No change, exit
exit 0
fi
fi
# Save date hash
echo "$DATE" > $STATEFILE
echo "Saving date hash: $DATE"
# Check for running livecd-creator and abort if it is running
if ps -ef |grep -v grep |grep -q livecd-creator; then
echo "ERROR: Another livecd-creator is still running. Aborting."
exit 255
fi
if [ ! -d $TOPDIR/spin-kickstarts/ ]; then
cd $TOPDIR
git clone http://git.fedorahosted.org/git/spin-kickstarts.git
fi
# pull any git updates to kickstarts
cd $TOPDIR/spin-kickstarts/
git reset --hard
git pull
if [ ! -d $TOPDIR/nightly-composes ]; then
mkdir -p $TOPDIR/nightly-composes
fi
DATE=`date +%Y%m%d.%H`
# remove the previous days compose
find $TOPDIR/nightly-composes/ -name '*.iso' -exec rm -f '{}' \;
# loop though the valid spins
for i in `echo desktop design-suite xfce broffice.org kde electronic-lab games lxde soas security`
do
cd $TOPDIR/nightly-composes/
echo $i
if [ ! -d $TOPDIR/nightly-composes/$i ]; then
mkdir -p $TOPDIR/nightly-composes/$i
fi
if [ ! -d $TOPDIR/nightly-composes/$i/logs ]; then
mkdir -p $TOPDIR/nightly-composes/$i/logs
touch $TOPDIR/nightly-composes/$i/logs/SIZEHISTORY-i386
touch $TOPDIR/nightly-composes/$i/logs/SIZEHISTORY-x86_64
fi
cd $i
# compose f13 not rawhide for now.
sed -i 's/rawhide/fedora-13/g' $TOPDIR/spin-kickstarts/*.ks
# debrand
# Note this is not needed for 'official' test spins
#sed -i 's/^-fedora-logos/fedora-logos/' $TOPDIR/spin-kickstarts/fedora-livecd-$i.ks
#sed -i 's/^generic-logos//' $TOPDIR/spin-kickstarts/fedora-livecd-$i.ks
echo "INFO: $i i386 live image compose starting"
setarch i386 livecd-creator -c $TOPDIR/spin-kickstarts/fedora-live*-$i.ks -f $i-i386-$DATE > logs/$DATE-i386.log 2>&1
if [ $? -ne 0 ]; then
echo "ERROR: $i i386 live image failed to compose on $DATE"
mv logs/$DATE-i386.log logs/$DATE-FAILED-i386.log
else
du $TOPDIR/nightly-composes/$i/$i-i386-$DATE.iso >> logs/SIZEHISTORY-i386
tail -2 logs/SIZEHISTORY-i386
rm -f CHECKSUM-i386
sha256sum $i-i386-$DATE.iso > CHECKSUM-i386
cat CHECKSUM-i386
echo "INFO: $i i386 live image compose finished OK"
fi
echo "INFO: $i x86_64 live image compose starting"
# Need to shorten the electronic-lab label to the 32 char limit
if [ "$i" = "electronic-lab" ]; then
livecd-creator -c $TOPDIR/spin-kickstarts/fedora-live*-$i.ks -f e-lab-x86_64-$DATE > logs/$DATE-x86_64.log 2>&1
else
livecd-creator -c $TOPDIR/spin-kickstarts/fedora-live*-$i.ks -f $i-x86_64-$DATE > logs/$DATE-x86_64.log 2>&1
fi
if [ $? -ne 0 ]; then
echo "ERROR: $i x86_64 live image failed to compose on $DATE"
mv logs/$DATE-x86_64.log logs/$DATE-FAILED-x86_64.log
else
if [ "$i" = "electronic-lab" ]; then
du $TOPDIR/nightly-composes/$i/e-lab-x86_64-$DATE.iso >> logs/SIZEHISTORY-x86_64
tail -2 logs/SIZEHISTORY-x86_64
rm -f CHECKSUM-x86_64
sha256sum e-lab-x86_64-$DATE.iso > CHECKSUM-x86_64
cat CHECKSUM-x86_64
else
du $TOPDIR/nightly-composes/$i/$i-x86_64-$DATE.iso >> logs/SIZEHISTORY-x86_64
tail -2 logs/SIZEHISTORY-x86_64
rm -f CHECKSUM-x86_64
sha256sum $i-x86_64-$DATE.iso > CHECKSUM-x86_64
cat CHECKSUM-x86_64
fi
echo "INFO: $i x86_64 live image compose finished OK"
fi
# remove old resize image
#rm -f /tmp/resize-image-*
done
# do aos spin
echo "INFO: aos i386 live image compose starting"
cd $TOPDIR/nightly-composes/aos/
setarch i386 livecd-creator -c $TOPDIR/spin-kickstarts/fedora-aos.ks -f aos-i386-$DATE > logs/$DATE-i386.log 2>&1
if [ $? -ne 0 ]; then
echo "ERROR: aos i386 live image failed to compose on $DATE"
mv logs/$DATE-i386.log logs/$DATE-FAILED-i386.log
else
du $TOPDIR/nightly-composes/aos/aos-i386-$DATE.iso >> logs/SIZEHISTORY-i386
tail -2 logs/SIZEHISTORY-i386
rm -f CHECKSUM-i386
sha256sum aos-i386-$DATE.iso > CHECKSUM-i386
cat CHECKSUM-i386
echo "INFO: aos i386 live image compose finished OK"
fi
echo "INFO: aos x86_64 live image compose starting"
livecd-creator -c $TOPDIR/spin-kickstarts/fedora-aos.ks -f aos-x86_64-$DATE > logs/$DATE-x86_64.log 2>&1
if [ $? -ne 0 ]; then
echo "ERROR: aos x86_64 live image failed to compose on $DATE"
mv logs/$DATE-x86_64.log logs/$DATE-FAILED-x86_64.log
else
du $TOPDIR/nightly-composes/aos/aos-x86_64-$DATE.iso >> logs/SIZEHISTORY-x86_64
tail -2 logs/SIZEHISTORY-x86_64
rm -f CHECKSUM-x86_64
sha256sum aos-x86_64-$DATE.iso > CHECKSUM-x86_64
cat CHECKSUM-x86_64
echo "INFO: aos x86_64 live image compose finished OK"
fi