diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..4a79b6c --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,55 @@ +pipeline { + agent { + label 'ubuntu' + } + + stages { + stage("build && test") { + steps { + echo "Workspace: ${env.WORKSPACE}" + sh 'ls' + sh 'sudo pip3 install --upgrade conan==1.42.1' + sh 'conan profile new default --detect' + sh 'conan profile update settings.compiler.libcxx=libstdc++11 default' + sh 'mkdir -p build' + + dir("build") { + sh 'ls' + sh 'conan install .. --build=missing' + sh 'cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=ON' + sh 'ninja' + sh 'ctest . -T test --output-on-failure --no-compress-output' + } + } + } + } + + post { + always { + archiveArtifacts ( + artifacts: 'build/Testing/**/*.xml', + fingerprint: true + ) + + // Process the CTest xml output with the xUnit plugin + xunit ( + testTimeMargin: '3000', + thresholdMode: 1, + thresholds: [ + skipped(failureThreshold: '0'), + failed(failureThreshold: '0') + ], + tools: [CTest( + pattern: 'build/Testing/**/*.xml', + deleteOutputFiles: true, + failIfNotNew: false, + skipNoTestFiles: true, + stopProcessingIfError: true + )] + ) + + // Clear the source and build dirs before next run + deleteDir() + } + } +}