pipeline { agent any stages { //////////////////////////////////////////////////// stage('Linux gcc') { agent { label 'linux && gcc && c++20' } steps { echo 'Cleaning workspace ...' sh 'git clean -d -x -f' echo 'Building (gcc) ...' sh 'CXX=g++ ./bootstrap.sh' echo 'Testing (gcc) ...' sh './ctor check' echo 'Testing suite (gcc) ...' sh '(cd test/suite; CTORDIR=../../build CXX=g++ ./test.sh)' } post { always { xunit(thresholds: [ skipped(failureThreshold: '0'), failed(failureThreshold: '0') ], tools: [ CppUnit(pattern: 'build/test/*.xml') ]) } } } //////////////////////////////////////////////////// stage('Linux clang') { agent { label 'linux && clang && c++20' } steps { echo 'Cleaning workspace ...' sh 'git clean -d -x -f' echo 'Building (clang) ...' sh 'CXX=clang++ ./bootstrap.sh' echo 'Testing (clang) ...' sh './ctor check' echo 'Testing suite (clang) ...' sh '(cd test/suite; CTORDIR=../../build CXX=clang++ ./test.sh)' } post { always { xunit(thresholds: [ skipped(failureThreshold: '0'), failed(failureThreshold: '0') ], tools: [ CppUnit(pattern: 'build/test/*.xml') ]) } } } //////////////////////////////////////////////////// } }