71 lines
1.7 KiB
Groovy
71 lines
1.7 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 'make lint-lua'
|
|
}
|
|
}
|
|
stage('lint-sh') {
|
|
agent { label 'gluon-docker-v1' }
|
|
steps {
|
|
sh 'make lint-sh'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('docs') {
|
|
agent { label 'gluon-docker' }
|
|
steps {
|
|
sh 'make -C docs html'
|
|
}
|
|
}
|
|
stage('build') {
|
|
agent { label 'gluon-docker' }
|
|
steps {
|
|
sh 'make update'
|
|
sh 'test -d /dl_cache && ln -s /dl_cache openwrt/dl || true'
|
|
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-docker-v2' }
|
|
environment {
|
|
TMUX = "notmux"
|
|
}
|
|
steps {
|
|
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')) {
|
|
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
|
|
*/
|