Skip to content
Snippets Groups Projects
Commit 2a24099d authored by Lars Bilke's avatar Lars Bilke
Browse files

Added Jenkinsfile.

parent 5695c19c
No related branches found
No related tags found
No related merge requests found
node('master') {
checkout scm
load 'scripts/jenkins/gcc.groovy'
}
defaultCMakeOptions = '-DOGS_LIB_BOOST=System -DOGS_LIB_VTK=System'
node('docker') node('docker')
{ {
// Checks out into subdirectory ogs
stage 'Checkout' stage 'Checkout'
checkout([$class: 'GitSCM', dir('ogs') {
branches: [[name: '*/master']], checkout scm
doGenerateSubmoduleConfigurations: false, }
extensions:
[[$class: 'RelativeTargetDirectory', relativeTargetDir: 'ogs']],
submoduleCfg: [],
userRemoteConfigs:
[[url: 'https://github.com/ufz/ogs']]])
// Multiple configurations are build in parallel
parallel linux: {
docker.image('ogs6/gcc-ogs-cli:latest').inside
{
build 'build', '', 'package'
stage 'Test' stage 'Build'
sh '''cd build docker.image('ogs6/gcc-ogs-base:latest').inside {
make tests''' build 'build', '', 'package tests ctest'
}
},
linux_gui: {
docker.image('ogs6/gcc-ogs-gui:latest').inside {
build 'build_gui', '-DOGS_BUILD_GUI=ON -DOGS_BUILD_TESTS=OFF -DOGS_BUILD_CLI=OFF', 'package'
}
} }
// windows: { publishTestReports 'build/Testing/**/*.xml', 'build/Tests/testrunner.xml'
// docker.image('ogs6/mingw-ogs-gui:latest').inside
// {
// build 'build_win', '-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE', 'package'
//
// stage 'Test'
// sh '''cd build_win
// rm -rf tests/testrunner.xml
// wine bin/testrunner.exe --gtest_output=xml:./tests/testrunner.xml'''
// }
// },
//
// windows_gui: {
// docker.image('ogs6/mingw-ogs-gui:latest').inside
// {
// build 'build_win_gui',
// '-DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE -DOGS_BUILD_GUI=ON -DOGS_BUILD_TESTS=OFF -DOGS_BUILD_CLI=OFF',
// 'package'
// }
// }
// end parallel // archive 'build*/*.tar.gz'
}
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) { def build(buildDir, cmakeOptions, target) {
sh "rm -rf ${buildDir} && mkdir ${buildDir}" sh "rm -rf ${buildDir} && mkdir ${buildDir}"
stage 'Configure' stage 'Configure'
sh "cd ${buildDir} && cmake ../ogs ${cmakeOptions}" sh "cd ${buildDir} && cmake ../ogs ${defaultCMakeOptions} ${cmakeOptions}"
stage 'Build' stage 'Build'
sh "cd ${buildDir} && make -j 2 ${target}" sh "cd ${buildDir} && make -j 4 ${target}"
}
def publishTestReports(ctestPattern, gtestPattern) {
step([$class: 'XUnitPublisher', testTimeMargin: '3000', thresholdMode: 1,
thresholds: [
[$class: 'FailedThreshold', failureNewThreshold: '', failureThreshold: '', unstableNewThreshold: '', unstableThreshold: ''],
[$class: 'SkippedThreshold', failureNewThreshold: '', failureThreshold: '', unstableNewThreshold: '', unstableThreshold: '']],
tools: [
[$class: 'CTestType', deleteOutputFiles: true, failIfNotNew: true, pattern: "${ctestPattern}", skipNoTestFiles: false, stopProcessingIfError: true],
[$class: 'GoogleTestType', deleteOutputFiles: true, failIfNotNew: true, pattern: "${gtestPattern}", skipNoTestFiles: false, stopProcessingIfError: true]]
])
} }
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