diff options
-rw-r--r-- | README | 8 | ||||
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | bin/g-i-installation.sh | 64 | ||||
-rw-r--r-- | d-i-preseed-cfgs/debian-edu_wheezy_main-server_preseed.cfg (renamed from d-i-preseed-cfgs/debian-edu_wheezy-test_main-server_preseed.cfg) | 0 | ||||
-rw-r--r-- | d-i-preseed-cfgs/debian-edu_wheezy_minimal_preseed.cfg (renamed from d-i-preseed-cfgs/debian-edu_wheezy-test_minimal_preseed.cfg) | 0 | ||||
l--------- | d-i-preseed-cfgs/debian_jessie_daily_kfreebsd_preseed.cfg | 1 | ||||
l--------- | d-i-preseed-cfgs/debian_wheezy_daily_kfreebsd_preseed.cfg | 1 | ||||
-rw-r--r-- | job-cfg/g-i-installation.yaml | 38 |
8 files changed, 82 insertions, 33 deletions
@@ -138,10 +138,12 @@ jenkins@jenkins:~$ /srv/jenkins/bin/reproducible_blacklist.sh package1 === dvswitch jobs -* FIXME: describe dvswitch jobs +* There are three jobs currently: +** 'dvswitch_sid' and 'dvswitch_jessie' build the master branch of dvswitch against that environment. +** while 'dvswitch_against_libav_git' builds the master branch of dvswitch using libav also build from it's master branch. This is done in an sid environment. +** Except for 'dvswitch_jessie' which is triggered by a successful 'dvswitch_sid' run, the jobs are triggered by git commits. - -=== self jobs +=== jenkins.d.n jobs These are jobs for making sure jenkins.debian.net is running smoothly. @@ -30,6 +30,9 @@ See link:https://jenkins.debian.net/userContent/about.html["about jenkins.debian * put kgb-client.conf in git and sed passwords from filesystem into it... * turn udd-versionskew packages names into tracker.d.o links and provide version numbers in output too * unreproducible-with-buildinfo should really be a state in the DB +* replace amd64 in scripts with $HOSTARCH +* run debbindiff against .changes files in current directory, instead of $LONGPATHES (due to #764459) +* reproducible_scheduler should never fail loudly === jenkins-job-builder related diff --git a/bin/g-i-installation.sh b/bin/g-i-installation.sh index fb8630df..1f5c46da 100644 --- a/bin/g-i-installation.sh +++ b/bin/g-i-installation.sh @@ -30,7 +30,10 @@ DISKSIZE_IN_GB=$1 URL=$2 # $3 and $4 are used below for language setting RAMSIZE=1024 -if [ "$(basename $URL)" != "amd64" ] ; then +if [ "$(basename $URL)" = "netboot.tar.gz" ] ; then + # URL is for a PXE netboot installer, rather than a CD .iso + NETBOOT=$(pwd)/$(basename $URL) +elif [ "$(basename $URL)" != "amd64" ] ; then IMAGE=$(pwd)/$(basename $URL) IMAGE_MNT="/media/cd-$NAME.iso" else @@ -189,10 +192,39 @@ bootstrap_system() { *_hurd*) ;; *) QEMU_OPTS="$QEMU_OPTS -enable-kvm -cpu host" ;; esac - if [ -n "$IMAGE" ] ; then + QEMU_WEBSERVER=http://10.0.2.1/ + QEMU_NET_OPTS="-net nic,vlan=0 -net user,vlan=0,host=10.0.2.1,dhcpstart=10.0.2.2,dns=10.0.2.254" + # preseeding related variables + PRESEEDCFG="preseed.cfg" + PRESEED_PATH=d-i-preseed-cfgs + PRESEED_URL="url=$QEMU_WEBSERVER/$PRESEED_PATH/${NAME}_$PRESEEDCFG" + # + # boot configuration + # + if [ -n "$NETBOOT" ]; then + ARCH="$(ls debian-installer/)" + GRUB_CFG="debian-installer/$ARCH/grub.cfg" + case $NAME in + *_kfreebsd*) # boot the fourth menu option (Automated Install) after 3 seconds + sed -i 's#^set default=.*#set default=3#' $GRUB_CFG + sed -i 's#^set timeout=.*#set timeout=2#' $GRUB_CFG + # prepend additional options + OPTION="preseed/url" ; VALUE="$PRESEED_URL" + sed -i "s#kfreebsd .*#set kFreeBSD.$OPTION='$VALUE'\n \\0#" $GRUB_CFG + # redirect d-i syslog to virtual serial port + OPTION="preseed/early_command" ; VALUE="sed -ie s/ttyv3/cuau0/ /etc/inittab ; kill -HUP 1" + sed -i "s#kfreebsd .*#set kFreeBSD.$OPTION='$VALUE'\n \\0#" $GRUB_CFG + # enable kernel logging to virtual serial port + KERNEL_FLAGS="-D" + sed -i "s#kfreebsd .*#\0 $KERNEL_FLAGS#" $GRUB_CFG + ;; + *) ;; + esac + QEMU_NET_OPTS="$QEMU_NET_OPTS,bootfile=grub2pxe,tftp=." + elif [ -n "$IMAGE" ] ; then QEMU_OPTS="$QEMU_OPTS -cdrom $IMAGE -boot d" case $NAME in - *_kfreebsd) ;; + *_kfreebsd*) ;; *_hurd*) QEMU_OPTS="$QEMU_OPTS -vga std" gzip -cd $IMAGE_MNT/boot/kernel/gnumach.gz > $WORKSPACE/gnumach ;; @@ -203,12 +235,7 @@ bootstrap_system() { else QEMU_KERNEL="--kernel $KERNEL --initrd $INITRD" fi - QEMU_OPTS="$QEMU_OPTS -drive file=$LV,index=0,media=disk,cache=unsafe -m $RAMSIZE -net nic,vlan=0 -net user,vlan=0,host=10.0.2.1,dhcpstart=10.0.2.2,dns=10.0.2.254" - QEMU_WEBSERVER=http://10.0.2.1/ - # preseeding related variables - PRESEEDCFG="preseed.cfg" - PRESEED_PATH=d-i-preseed-cfgs - PRESEED_URL="url=$QEMU_WEBSERVER/$PRESEED_PATH/${NAME}_$PRESEEDCFG" + QEMU_OPTS="$QEMU_OPTS -drive file=$LV,index=0,media=disk,cache=unsafe -m $RAMSIZE $QEMU_NET_OPTS" INST_LOCALE="locale=$DI_LOCALE" INST_KEYMAP="keymap=us" # always us! INST_VIDEO="video=vesa:ywrap,mtrr vga=788" @@ -1072,6 +1099,10 @@ monitor_system() { if [ ! -z "$TRIGGER_MODE" ] && [ "$TRIGGER_MODE" = "$NR" ] ; then let TRIGGER_NR=NR fi + # find out why hurd hangs + if [ $NR -eq 5100 ] && [[ "$NAME" =~ ^debian.*_hurd.*$ ]] ; then + do_and_report key alt-f4 + fi let NR=NR+1 sleep 2 done @@ -1155,9 +1186,20 @@ save_logs() { trap cleanup_all INT TERM EXIT # -# if there is a CD image... +# install image preparation # -if [ ! -z "$IMAGE" ] ; then +if [ ! -z "$NETBOOT" ] ; then + # + # if there is a netboot installer tarball... + # + fetch_if_newer "$NETBOOT" "$URL" + # try to extract, otherwise abort + sha256sum "$NETBOOT" + tar -zxvf "$NETBOOT" || exit +elif [ ! -z "$IMAGE" ] ; then + # + # if there is a CD image... + # fetch_if_newer "$IMAGE" "$URL" # is this really an .iso? if [ $(file "$IMAGE" | grep -cE '(ISO 9660|DOS/MBR boot sector)') -eq 1 ] ; then diff --git a/d-i-preseed-cfgs/debian-edu_wheezy-test_main-server_preseed.cfg b/d-i-preseed-cfgs/debian-edu_wheezy_main-server_preseed.cfg index 1adffcf9..1adffcf9 100644 --- a/d-i-preseed-cfgs/debian-edu_wheezy-test_main-server_preseed.cfg +++ b/d-i-preseed-cfgs/debian-edu_wheezy_main-server_preseed.cfg diff --git a/d-i-preseed-cfgs/debian-edu_wheezy-test_minimal_preseed.cfg b/d-i-preseed-cfgs/debian-edu_wheezy_minimal_preseed.cfg index 7a6bf7d6..7a6bf7d6 100644 --- a/d-i-preseed-cfgs/debian-edu_wheezy-test_minimal_preseed.cfg +++ b/d-i-preseed-cfgs/debian-edu_wheezy_minimal_preseed.cfg diff --git a/d-i-preseed-cfgs/debian_jessie_daily_kfreebsd_preseed.cfg b/d-i-preseed-cfgs/debian_jessie_daily_kfreebsd_preseed.cfg new file mode 120000 index 00000000..f5c7678a --- /dev/null +++ b/d-i-preseed-cfgs/debian_jessie_daily_kfreebsd_preseed.cfg @@ -0,0 +1 @@ +debian_sid_daily_kfreebsd_preseed.cfg
\ No newline at end of file diff --git a/d-i-preseed-cfgs/debian_wheezy_daily_kfreebsd_preseed.cfg b/d-i-preseed-cfgs/debian_wheezy_daily_kfreebsd_preseed.cfg new file mode 120000 index 00000000..f5c7678a --- /dev/null +++ b/d-i-preseed-cfgs/debian_wheezy_daily_kfreebsd_preseed.cfg @@ -0,0 +1 @@ +debian_sid_daily_kfreebsd_preseed.cfg
\ No newline at end of file diff --git a/job-cfg/g-i-installation.yaml b/job-cfg/g-i-installation.yaml index f878731f..9fc0aa2b 100644 --- a/job-cfg/g-i-installation.yaml +++ b/job-cfg/g-i-installation.yaml @@ -95,7 +95,7 @@ - job-template: defaults: g-i-installation - name: '{name}_debian-edu_wheezy-test_minimal' + name: '{name}_debian-edu_wheezy_minimal' - job-template: defaults: g-i-installation @@ -115,11 +115,11 @@ - job-template: defaults: g-i-installation - name: '{name}_debian-edu_wheezy-test_main-server' + name: '{name}_debian-edu_wheezy_main-server' #- job-template: # defaults: g-i-installation -# name: '{name}_debian-edu_wheezy-test_sugar' +# name: '{name}_debian-edu_jessie_sugar' - job-template: defaults: g-i-installation @@ -290,11 +290,11 @@ do_not_edit: '<br><br>Job configuration source is <a href="http://anonscm.debian.org/cgit/qa/jenkins.debian.net.git/tree/job-cfg/g-i-installation.yaml">g-i-installation.yaml</a>.' jobs: - '{name}_maintainance' - - '{name}_debian-edu_wheezy-test_minimal': - my_title: 'Debian Edu (wheezy-test) minimal' - my_shell: '/srv/jenkins/bin/g-i-installation.sh 25 http://ftp.skolelinux.org/cd-wheezy-test-amd64-i386-netinst/debian-edu-amd64-i386-NETINST-1.iso' - my_description: 'Do a fully automated installation of a Debian Edu Wheezy minimal profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_wheezy-test_minimal_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' - my_timed: '23 20 * * 3,7' + - '{name}_debian-edu_wheezy_minimal': + my_title: 'Debian Edu (wheezy) minimal' + my_shell: '/srv/jenkins/bin/g-i-installation.sh 25 http://ftp.skolelinux.org/cd-wheezy-amd64-i386-netinst/debian-edu-amd64-i386-NETINST-1.iso' + my_description: 'Do a fully automated installation of a Debian Edu Wheezy minimal profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_wheezy_minimal_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' + my_timed: '23 20 15 * *' my_recipients: 'jenkins+debian-edu debian-edu-commits@lists.alioth.debian.org' - '{name}_debian-edu_wheezy_standalone': my_title: 'Debian Edu (wheezy) standalone' @@ -320,16 +320,16 @@ my_description: 'Do a fully automated installation of a Debian Edu Wheezy combi-server profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_wheezy-test_combi-server_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' my_timed: '42 0 16 * *' my_recipients: 'jenkins+debian-edu debian-edu-commits@lists.alioth.debian.org' - - '{name}_debian-edu_wheezy-test_main-server': - my_title: 'Debian Edu (wheezy-test) main-server' - my_shell: '/srv/jenkins/bin/g-i-installation.sh 30 http://ftp.skolelinux.org/cd-wheezy-test-amd64-i386-netinst/debian-edu-amd64-i386-NETINST-1.iso' - my_description: 'Do a fully automated installation of a Debian Edu Wheezy main-server profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_wheezy-test_main-server_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' + - '{name}_debian-edu_wheezy_main-server': + my_title: 'Debian Edu (wheezy) main-server' + my_shell: '/srv/jenkins/bin/g-i-installation.sh 30 http://ftp.skolelinux.org/cd-wheezy-amd64-i386-netinst/debian-edu-amd64-i386-NETINST-1.iso' + my_description: 'Do a fully automated installation of a Debian Edu Wheezy main-server profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_wheezy_main-server_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' my_timed: '42 2 16 * *' my_recipients: 'jenkins+debian-edu debian-edu-commits@lists.alioth.debian.org' -# - '{name}_debian-edu_wheezy-test_sugar': -# my_title: 'Debian Edu (wheezy-test) sugar' -# my_shell: '/srv/jenkins/bin/g-i-installation.sh 25 http://ftp.skolelinux.org/cd-wheezy-test-amd64-i386-netinst/debian-edu-amd64-i386-NETINST-1.iso' -# my_description: 'Do a fully automated installation of a Debian Edu Wheezy sugar profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_wheezy-test_sugar_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' +# - '{name}_debian-edu_jessie_sugar': +# my_title: 'Debian Edu (jessie) sugar' +# my_shell: '/srv/jenkins/bin/g-i-installation.sh 25 http://ftp.skolelinux.org/cd-jessie-amd64-i386-netinst/debian-edu-amd64-i386-NETINST-1.iso' +# my_description: 'Do a fully automated installation of a Debian Edu Jessie sugar profile - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian-edu_jessie_sugar_preseed.cfg">this preseed.cfg</a>) using the netinst CD image.' # my_timed: '42 2 * * 3,7' # my_recipients: 'jenkins+debian-edu debian-edu-commits@lists.alioth.debian.org' - '{name}_debian_wheezy_kde': @@ -348,7 +348,7 @@ my_title: 'Debian (wheezy) kfreebsd desktop install' my_shell: '/srv/jenkins/bin/g-i-installation.sh 10 http://ftp.de.debian.org/debian/dists/wheezy/main/installer-kfreebsd-amd64/current/images/netboot/mini.iso' my_description: 'Do a fully automated installation of Debian kfreebsd desktop - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_wheezy_kfreebsd_preseed.cfg">this preseed.cfg</a>) using netboot gtk.' - my_timed: '42 16 4 * *' + my_timed: '42 16 21 * *' my_recipients: 'holger@layer-acht.org' - '{name}_debian_wheezy_lxde': my_title: 'Debian (wheezy) LXDE desktop install' @@ -403,7 +403,7 @@ my_title: 'Debian (sid daily build CD) kfreebsd desktop install' my_shell: '/srv/jenkins/bin/g-i-installation.sh 10 http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/arch-latest/kfreebsd-amd64/iso-cd/debian-testing-kfreebsd-amd64-netinst.iso' my_description: 'Do a fully automated installation of Debian kfreebsd desktop - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_sid_daily_kfreebsd_preseed.cfg">this preseed.cfg</a>) using netboot gtk.' - my_timed: '42 8 9 * *' + my_timed: '42 8 */7 * *' #my_timed: '42 8 * * *' my_recipients: 'holger@layer-acht.org' - '{name}_debian_sid_daily_lxde': @@ -416,7 +416,7 @@ my_title: 'Debian (sid daily build CD) LXDE desktop install on Hurd' my_shell: '/srv/jenkins/bin/g-i-installation.sh 10 http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/daily/debian-sid-hurd-i386-NETINST-1.iso' my_description: 'Do a fully automated installation of Debian LXDE desktop on Hurd - via d-i preseeding (with <a href="https://jenkins.debian.net/d-i-preseed-cfgs/debian_sid_daily_hurd_lxde_preseed.cfg">this preseed.cfg</a>) using netboot gtk.' - my_timed: '42 10 * * 1' + my_timed: '42 10 * * 1' # every monday my_recipients: 'holger@layer-acht.org debian-hurd@lists.debian.org' - '{name}_debian_sid_daily_rescue': my_title: 'Debian (sid daily build CD) rescue mode' |