vyos-build/Jenkinsfile
Christian Poessinger fdf47c4226 Jenkins: cleanup
2019-01-26 10:04:13 +01:00

83 lines
2.3 KiB
Groovy

#!/usr/bin/env groovy
@NonCPS
def setDescription() {
def item = Jenkins.instance.getItemByFullName(env.JOB_NAME)
item.setDescription("VyOS image build using a\nPipeline build inside Docker container.")
item.save()
}
setDescription()
/* Only keep the 10 most recent builds. */
def projectProperties = [
[$class: 'BuildDiscarderProperty',strategy: [$class: 'LogRotator', numToKeepStr: '5']],
]
properties(projectProperties)
pipeline {
agent {
dockerfile {
filename 'Dockerfile'
label 'jessie-amd64'
dir 'docker'
args '--privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0 -e GOSU_UID=1006 -e GOSU_GID=1006'
}
}
stages {
stage('Submodule Init') {
steps {
sh '''
git submodule update --init --recursive --remote
'''
}
}
stage('Build Packages') {
steps {
sh '''
#!/bin/sh
scripts/build-submodules --verbose
'''
}
}
stage('Build ISO') {
steps {
sh '''
#!/bin/sh
# we do not want to fetch VyOS packages from the mirror,
# we rather prefer all build by ourself!
sed -i '/vyos_repo_entry/d' scripts/live-build-config
# Configure the ISO
./configure --build-by="autobuild@vyos.net" --debian-mirror="http://ftp.us.debian.org/debian/"
# Debug to see which Debian packages we have so far
ls -al packages/*.deb
# Finally build our ISO
sudo make iso
'''
}
}
}
post {
cleanup {
echo 'One way or another, I have finished'
// the 'build' directory got elevated permissions during the build
// cdjust permissions so it can be cleaned up by the regular user
sh '''
#!/bin/bash
if [ -d build ]; then
sudo chmod -R 777 build/
fi
'''
deleteDir() /* cleanup our workspace */
}
}
}