diff options
author | Arjen Hiemstra <ahiemstra@heimr.nl> | 2017-03-14 18:59:09 +0300 |
---|---|---|
committer | Arjen Hiemstra <ahiemstra@heimr.nl> | 2017-03-14 19:00:22 +0300 |
commit | 6a28368bebb028df178f2ac2b734c2a3d918d13d (patch) | |
tree | fb2f910633d17782380341b792c65a17add2f2e0 /Jenkinsfile | |
parent | 056c9dd3624d753839d7d45564885113ab5ffdc9 (diff) |
Add a Jenkinsfile so Cura will be tested on CI
Diffstat (limited to 'Jenkinsfile')
-rw-r--r-- | Jenkinsfile | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..a324a79471 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,39 @@ +parallel_nodes(['linux && cura', 'windows && cura']) { + // Prepare building + stage('Prepare') { + // Ensure we start with a clean build directory. + step([$class: 'WsCleanup']) + + // Checkout whatever sources are linked to this pipeline. + checkout scm + } + + // If any error occurs during building, we want to catch it and continue with the "finale" stage. + catchError { + // Building and testing should happen in a subdirectory. + dir('build') { + // Perform the "build". Since Uranium is Python code, this basically only ensures CMake is setup. + stage('Build') { + // Ensure CMake is setup. Note that since this is Python code we do not really "build" it. + cmake("..", "-DCMAKE_PREFIX_PATH=${env.CURA_ENVIRONMENT_PATH} -DCMAKE_BUILD_TYPE=Release -DURANIUM_SCRIPTS_DIR=") + } + + // Try and run the unit tests. If this stage fails, we consider the build to be "unstable". + stage('Unit Test') { + try { + make('test') + } catch(e) { + currentBuild.result = "UNSTABLE" + } + } + } + } + + // Perform any post-build actions like notification and publishing of unit tests. + stage('Finalize') { + // Publish the test results to Jenkins. + junit 'build/junit*.xml' + + notify_build_result(env.CURA_EMAIL_RECIPIENTS, '#cura-dev', ['master', '2.']) + } +} |