debian-cd-clone/contrib/cronjob.daily

166 lines
5.8 KiB
Bash
Executable File

#!/bin/bash
TOPDIR=$(dirname $0)
. $TOPDIR/settings.sh
export PUBDIRJIG=$PUBDIR/daily-builds
export PUBDIRISO=$PUBDIR/daily-builds
export DATE_BUILD="$DATE-$BUILDNUM"
# If we're doing a normal set of daily/weekly builds, leave the
# checksum filenames alone. Otherwise, make life easier for people
# combining things later and append a suitable name as we build.
if [ "$DEBVERSION"x != "testing"x ] ; then
export SUMS_EXTENSION=".small"
fi
finalise_arch_dir () {
ARCH=$1
INST_VER=$2
ARCH_ISO_DIR=$PUBDIRISO/${INST_VER}_d-i/$DATE_BUILD/$ARCH/iso-cd
ARCH_JIGDO_DIR=$PUBDIRISO/${INST_VER}_d-i/$DATE_BUILD/$ARCH/jigdo-cd
if [ -e $ARCH_ISO_DIR ] ; then
cd $ARCH_ISO_DIR
for file in *businesscard*iso *netinst*iso; do
zsyncmake -e -u $file $file > /dev/null
done
DATESTRING=`date -u`
sed "s/ARCH/$ARCH/g;s/DATE/$DATESTRING/g;s/BUILDNUM/$BUILDNUM/g;s/INST_VER/$INST_VER/g" $TOPDIR/daily.html > HEADER.html
$TOPDIR/debian-cd/tools/imagesums $ARCH_JIGDO_DIR $SUMS_EXTENSION
cp $ARCH_JIGDO_DIR/*SUMS* $ARCH_ISO_DIR
cd ..
~/build/mktorrent iso-cd/*iso
~/build/mklist iso-cd/*iso
cd $TOPDIR
else
echo "finalise_arch_dir: $ARCH_ISO_DIR does not exist!"
fi
}
export RSYNC_TARGET=/mnt/nfs-cdimage/daily-builds
if [ "$ARCHES"x = ""x ] ; then
ARCHES="amd64 armel hppa i386 ia64 mips mipsel powerpc sparc multi-arch"
fi
cd $TOPDIR &&
if lockfile -r0 .debian-cd.lock ; then
echo "svn update debian-cd:"
cd debian-cd && svn cleanup ; svn up ; cd ..
. images4testing_d-i
# Allow desktop selection in isolinux menu for i386 and amd64
# For other arches this is a harmless no-op
export DESKTOP=all
export KERNEL_PARAMS="desktop=all"
for arch in $ARCHES; do
echo "Building $arch:"
if [ "$arch" = "multi-arch" ] ; then
echo " i386/amd64/ppc sid netinst WITH FIRMWARE"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \
FORCE_FIRMWARE=1 CDNAME=firmware \
TASK=debian-installer+kernel LOGAPPEND="-1" \
MAXISOS=ALL MAXJIGDOS=ALL \
DI=sid DI_DIST="$DI_DIST" VARIANTS=xen \
DI_WWW_HOME=default ./testingcds "amd64 i386 powerpc"
rm -rf $PUBDIRISO/sid_d-i/$DATE_BUILD/multi-arch
mv -v $PUBDIRISO/sid_d-i/$DATE_BUILD/multi $PUBDIRISO/sid_d-i/$DATE_BUILD/multi-arch
echo " i386/amd64/ppc sid netinst"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \
TASK=debian-installer+kernel LOGAPPEND="-1" \
MAXISOS=ALL MAXJIGDOS=ALL \
DI=sid DI_DIST="$DI_DIST" VARIANTS=xen \
DI_WWW_HOME=default ./testingcds "amd64 i386 powerpc"
cp -av $PUBDIRISO/sid_d-i/$DATE_BUILD/multi/. $PUBDIRISO/sid_d-i/$DATE_BUILD/multi-arch
rm -rf $PUBDIRISO/sid_d-i/$DATE_BUILD/multi
finalise_arch_dir $arch sid
echo " i386/amd64/ppc squeeze netinst"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \
TASK=debian-installer+kernel LOGAPPEND="-1" \
MAXISOS=ALL MAXJIGDOS=ALL \
DI=squeeze DI_DIST="$DI_DIST" VARIANTS=xen \
./testingcds "amd64 i386 powerpc"
rm -rf $PUBDIRISO/squeeze_d-i/$DATE_BUILD/multi-arch
mv -v $PUBDIRISO/squeeze_d-i/$DATE_BUILD/multi $PUBDIRISO/squeeze_d-i/$DATE_BUILD/multi-arch
finalise_arch_dir $arch squeeze
else # end of m-a
case $arch in
i386|amd64|powerpc)
echo " $arch sid netinst WITH FIRMWARE"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
FORCE_FIRMWARE=1 CDNAME=firmware \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=C \
TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \
DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \
./testingcds "$arch"
;;
esac
echo " $arch sid bc"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=1 \
TASK=debian-installer MAXISOS=ALL MAXJIGDOS=ALL \
DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \
./testingcds "$arch"
echo " $arch sid netinst"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \
TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \
DI=sid DI_WWW_HOME=default DI_DIR="$ARCH_DI_DIR" \
./testingcds "$arch"
finalise_arch_dir $arch sid
echo " $arch squeeze bc"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=1 \
TASK=debian-installer MAXISOS=ALL MAXJIGDOS=ALL \
DI=squeeze DI_DIST="$DI_DIST" \
./testingcds "$arch"
echo " $arch squeeze netinst"
OMIT_RELEASE_NOTES=1 OMIT_MANUAL=1 NORECOMMENDS=1 \
NOSUGGESTS=1 COMPLETE=0 INSTALLER_CD=2 \
TASK=debian-installer+kernel MAXISOS=ALL MAXJIGDOS=ALL \
DI=squeeze DI_DIST="$DI_DIST" \
./testingcds "$arch"
finalise_arch_dir $arch squeeze
fi # end of normal arch build
done
if [ "$NOSYNC"x = ""x ] ; then
echo "Sync across to output dir: $RSYNC_TARGET"
rsync -rHltv $PUBDIRISO/ $RSYNC_TARGET/
echo "Remove extra dailies:"
~/bin/remove_extra_dailies
echo "Clean up old builds on build machine:"
for DIR in $PUBDIRISO/* ; do
cd $DIR
for THIS in 20* ; do
if [ $THIS != $DATE-$BUILDNUM ] ; then
echo " Deleting $DIR/$THIS"
rm -rf $DIR/$THIS
fi
done
done
echo "$DATE-$BUILDNUM" > $RSYNC_TARGET/daily-trace
fi
cd $TOPDIR
rm -f .debian-cd.lock
fi