59 lines
1021 B
Groovy
59 lines
1021 B
Groovy
pipeline {
|
|
agent {
|
|
dockerfile {
|
|
filename 'Dockerfile.ci'
|
|
reuseNode true
|
|
}
|
|
}
|
|
|
|
options {
|
|
skipDefaultCheckout()
|
|
timestamps()
|
|
disableConcurrentBuilds()
|
|
}
|
|
|
|
environment {
|
|
BUILD_DIR = "build"
|
|
CHANGE_TARGET = "${env.CHANGE_TARGET ?: 'origin/main'}"
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout') {
|
|
steps {
|
|
checkout scm
|
|
sh 'git fetch --all --prune'
|
|
sh 'git submodule update --init --recursive || true'
|
|
}
|
|
}
|
|
|
|
stage('Policy Checks') {
|
|
steps {
|
|
sh 'python3 ci/check_pr_policies.py'
|
|
}
|
|
}
|
|
|
|
stage('Configure') {
|
|
steps {
|
|
sh 'cmake -S . -B ${BUILD_DIR} -G Ninja -DCMAKE_BUILD_TYPE=Debug'
|
|
}
|
|
}
|
|
|
|
stage('Build') {
|
|
steps {
|
|
sh 'cmake --build ${BUILD_DIR} --parallel'
|
|
}
|
|
}
|
|
|
|
stage('Test') {
|
|
steps {
|
|
sh 'ctest --test-dir ${BUILD_DIR} --output-on-failure'
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
always {
|
|
cleanWs deleteDirs: true, disableDeferredWipeout: true
|
|
}
|
|
}
|
|
} |