Skip to content
Snippets Groups Projects
Commit a14a751a authored by Tom Fischer's avatar Tom Fischer
Browse files

Merge pull request #958 from bilke/clang-workflow

Clang Jenkins workflow script with sanitizers
parents 194276ef e7715d60
No related branches found
No related tags found
No related merge requests found
# Workflow stages used for grouping
start /stage:/
# CMake
warning /CMake Warning/
error /CMake Error/
# CTest
error \[*][*][*]Failed\
# Clang
# Clang sanitizer
error /: runtime error:/
error /==ERROR:/
node('docker')
{
// Checks out into subdirectory ogs
stage 'Checkout'
dir('ogs') {
checkout scm
}
// Multiple configurations are build in parallel
parallel linux: {
docker.image('ogs6/clang-ogs-base:latest').inside
{
catchError {
build 'build', '-DOGS_ADDRESS_SANITIZER=ON -DOGS_UNDEFINED_BEHAVIOR_SANITIZER=ON', ''
stage 'Unit tests'
sh '''cd build
rm -rf tests/testrunner.xml
bin/testrunner --gtest_output=xml:./tests/testrunner.xml'''
stage 'End-to-end tests'
sh '''cd build
make ctest'''
}
}
step([$class: 'LogParserPublisher', failBuildOnError: true, unstableOnWarning: true,
projectRulePath: 'ogs/scripts/jenkins/clang-log-parser.rules', useProjectRule: true])
}
step([$class: 'JUnitResultArchiver',
testResults: 'build/tests/testrunner.xml,build_win/tests/testrunner.xml'])
archive 'build*/*.tar.gz,build_win*/*.zip'
} // end node
def build(buildDir, cmakeOptions, target) {
sh "rm -rf ${buildDir} && mkdir ${buildDir}"
stage 'Configure'
sh "cd ${buildDir} && cmake ../ogs ${cmakeOptions}"
stage 'Build'
sh "cd ${buildDir} && make -j 4 ${target}"
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment