build: Run worker and master build in parallel

Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
Rob Bradford 2020-02-07 16:56:08 +00:00
parent bfbca596ea
commit 9bf100c91c

102
Jenkinsfile vendored
View File

@ -1,7 +1,7 @@
pipeline{ pipeline{
agent none agent none
stages { stages {
stage ('Master build') { stage ('Early checks') {
agent { node { label 'master' } } agent { node { label 'master' } }
stages { stages {
stage ('Check for RFC/WIP builds') { stage ('Check for RFC/WIP builds') {
@ -18,54 +18,64 @@ pipeline{
cancelPreviousBuilds() cancelPreviousBuilds()
} }
} }
stage ('Checkout') {
steps {
checkout scm
}
}
stage ('Run Cargo tests') {
steps {
sh "scripts/dev_cli.sh tests --cargo"
}
}
stage ('Run unit tests') {
steps {
sh "scripts/dev_cli.sh tests --unit"
}
}
stage ('Run OpenAPI tests') {
steps {
sh "scripts/run_openapi_tests.sh"
}
}
} }
} }
stage ('Worker build') { stage ('Build') {
agent { node { label 'bionic' } } failFast true
options { parallel {
timeout(time: 1, unit: 'HOURS') stage ('Master build') {
} agent { node { label 'master' } }
stages { stages {
stage ('Checkout') { stage ('Checkout') {
steps { steps {
checkout scm checkout scm
}
}
stage ('Run Cargo tests') {
steps {
sh "scripts/dev_cli.sh tests --cargo"
}
}
stage ('Run unit tests') {
steps {
sh "scripts/dev_cli.sh tests --unit"
}
}
stage ('Run OpenAPI tests') {
steps {
sh "scripts/run_openapi_tests.sh"
}
}
} }
} }
stage ('Install system packages') { stage ('Worker build') {
steps { agent { node { label 'bionic' } }
sh "sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq build-essential mtools libssl-dev pkg-config" options {
sh "sudo apt-get install -yq flex bison libelf-dev qemu-utils qemu-system libglib2.0-dev libpixman-1-dev libseccomp-dev libcap-ng-dev socat" timeout(time: 1, unit: 'HOURS')
} }
} stages {
stage ('Install Rust') { stage ('Checkout') {
steps { steps {
sh "nohup curl https://sh.rustup.rs -sSf | sh -s -- -y" checkout scm
} }
} }
stage ('Run integration tests') { stage ('Install system packages') {
steps { steps {
sh "sudo mount -t tmpfs tmpfs /tmp" sh "sudo DEBIAN_FRONTEND=noninteractive apt-get install -yq build-essential mtools libssl-dev pkg-config"
sh "scripts/run_integration_tests.sh" sh "sudo apt-get install -yq flex bison libelf-dev qemu-utils qemu-system libglib2.0-dev libpixman-1-dev libseccomp-dev libcap-ng-dev socat"
}
}
stage ('Install Rust') {
steps {
sh "nohup curl https://sh.rustup.rs -sSf | sh -s -- -y"
}
}
stage ('Run integration tests') {
steps {
sh "sudo mount -t tmpfs tmpfs /tmp"
sh "scripts/run_integration_tests.sh"
}
}
} }
} }
} }
@ -86,4 +96,4 @@ def cancelPreviousBuilds() {
build.doStop() build.doStop()
} }
} }
} }