Commit 782ef33d authored by David Johnson's avatar David Johnson

Add a gitlab-ci configuration that builds bios/native/efi grub2pxe our way.

parent 3430fe52
Pipeline #2953 failed with stages
in 4 minutes and 10 seconds
stages:
- build
- deploy
emulab-grub2-x86:
stage: build
image: gitlab.flux.utah.edu:4567/emulab/emulab-grub2/u16-grub2-builder:latest
script:
- mkdir -p $CI_JOB_NAME-$CI_COMMIT_REF_NAME/tftpboot
- ./autogen.sh
- ./configure && make && make install
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2.0
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-bios-vga
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-bios-sio1
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-bios-sio2
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-native-vga
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-native-sio1
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-native-sio2
- make clean
- ./configure --with-platform=efi --target=x86_64 && make && make install
- grub-mknetdir --net-directory=/tftpboot -d /usr/local/lib/grub/x86_64-efi --subdir=grub2.0
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-efi-vga
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-efi-sio1
- grub-mknetdir --net-directory=/tftpboot --subdir=grub2pxe-efi-sio2
- for tdir in /tftpboot/grub2pxe-{bios,native}-* ; do cp -p $tdir/i386-pc/core.0 $tdir/grub2pxe ; rm -rf $tdir/{i386-pc,fonts,locale} ; cd $tdir && ln -s ../grub2.0/locale . && ln -s ../grub2.0/i386-pc . && ln -s ../grub2.0/fonts . ; done
- for tdir in /tftpboot/grub2pxe-efi-* ; do cp -p $tdir/x86_64-efi/core.0 $tdir/grub2pxe ; rm -rf $tdir/{x86_64-efi,fonts,locale} ; cd $tdir && ln -s ../grub2.0/locale . && ln -s ../grub2.0/x86_64-efi . && ln -s ../grub2.0/fonts . ; done
- for tdir in /tftpboot/grub2pxe* ; do cp -p emulab/grub.cfg $tdir ; btype=`basename $tdir | cut -d- -f2` ; ctype=`basename $tdir | cut -d- -f3` ; ntype=pxe ; if [ $ctype = "efi" ]; then ntype=efi ; fi ; echo $btype $ctype $ntype ; sed -ie "s/^set console=.*$/set console=$ctype/" $tdir/grub.cfg ; sed -ie "s/^set diskdrivers=.*$/set diskdrivers=$btype/" $tdir/grub.cfg ; sed -ie "s/^set netdrivers=.*$/set netdrivers=$ntype/" $tdir/grub.cfg ; done
- rsync -a /tftpboot/ $CI_JOB_NAME-$CI_COMMIT_REF_NAME/tftpboot/
artifacts:
paths:
- $CI_JOB_NAME-$CI_COMMIT_REF_NAME
only:
- master
.deploy_template:
stage: deploy
image: gitlab.flux.utah.edu:4567/emulab/emulab-grub2/u16-grub2-builder:latest
variables:
GIT_STRATEGY: none
dependencies:
- emulab-grub2-x86
before_script:
- eval $(ssh-agent -s)
- echo "$GRUB_UPLOAD_PRIVKEY" | tr -d '\r' | ssh-add - >/dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
only:
- master
deploy_testing:
extends: .deploy_template
script:
- echo 'put ./emulab-grub2-x86-master' | sftp -o StrictHostKeyChecking=no -r $MFS_UPLOAD_USER@$MFS_UPLOAD_HOST:$GRUB_TESTING_DIR
environment:
name: testing
deploy_production:
extends: .deploy_template
script:
- echo 'put ./emulab-grub2-x86-master' | sftp -o StrictHostKeyChecking=no -r $MFS_UPLOAD_USER@$MFS_UPLOAD_HOST:$GRUB_PROD_DIR
environment:
name: production
when: manual
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment