7fdffcaa1c
This allows us to make use of builders that can't run virtual machines. Drop the TMUX environemnt variable, it's not needed anymore.
83 lines
2.3 KiB
Groovy
83 lines
2.3 KiB
Groovy
pipeline {
|
|
agent none
|
|
environment {
|
|
GLUON_SITEDIR = "contrib/ci/minimal-site"
|
|
GLUON_TARGET = "x86-64"
|
|
BUILD_LOG = "1"
|
|
}
|
|
stages {
|
|
stage('lint') {
|
|
parallel {
|
|
stage('lint-lua') {
|
|
agent { label 'gluon-docker' }
|
|
steps {
|
|
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
|
|
sh 'make lint-lua'
|
|
}
|
|
}
|
|
stage('lint-sh') {
|
|
agent { label 'gluon-docker-v1' }
|
|
steps {
|
|
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
|
|
sh 'make lint-sh'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('docs') {
|
|
agent { label 'gluon-docker' }
|
|
steps {
|
|
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
|
|
sh 'make -C docs html'
|
|
}
|
|
}
|
|
stage('build') {
|
|
agent { label 'gluon-docker-v2' }
|
|
steps {
|
|
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
|
|
sh 'make update'
|
|
sh 'test -d /dl_cache && ln -s /dl_cache openwrt/dl || true'
|
|
timeout(time: 2, unit: "HOURS") {
|
|
sh 'make -j$(nproc) V=s'
|
|
}
|
|
stash includes: '**/output/images/factory/*-x86-64.img.gz', name: 'gluon-x86-64-factory'
|
|
}
|
|
}
|
|
stage('test') {
|
|
agent { label 'gluon-vmx' }
|
|
steps {
|
|
sh label: 'Identify runner', script: 'echo $SLAVE_NAME'
|
|
unstash 'gluon-x86-64-factory'
|
|
sh label: 'Unpack image', script: 'gunzip -cd ./output/images/factory/*x86-64*.img.gz > ./image.img'
|
|
sh label: 'Print python environment', script: 'python3 -m pip freeze'
|
|
script {
|
|
for (f in findFiles(glob: 'tests/*.py')) {
|
|
timeout(time: 10, unit: "MINUTES") {
|
|
sh label: "Test ${f.name}", script: "python3 tests/${f.name} --use-tmp-workdir"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
api-history:
|
|
|
|
Every time the build dependencies of gluon change, the version
|
|
every container has to be rebuilt. Therefore, we use Jenkins
|
|
labels which intoduce a version number which is documented here.
|
|
As soon, as you properly rebuilt your docker container, you
|
|
can notify lemoer, that you have updated your node.
|
|
|
|
- gluon-docker-v1:
|
|
- add shellcheck binary to the build environment
|
|
- gluon-docker-v2:
|
|
- add qemu-testlab testing, requires KVM virtualization support
|
|
- require rsync dependency to be able to build the next branch
|
|
- gluon-vmx
|
|
- splits the qemu testing from the gluon-docker-v2 label to accomodate
|
|
nodes without the vmx cpu flag
|
|
*/
|