-
Notifications
You must be signed in to change notification settings - Fork 707
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Move the serial tester to ci.tjhei.info.
- Loading branch information
Showing
1 changed file
with
139 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,139 @@ | ||
#!groovy | ||
|
||
/* | ||
This Jenkins job compiles and tests deal.II with MPI enabled | ||
See https://ci.tjhei.info/job/dealii-serial/ for details. | ||
*/ | ||
|
||
/* | ||
Settings to apply inside Jenkins: | ||
- discover pull requests (remove branches/master) | ||
- Strategy: merged PR | ||
- enable "Disable GitHub Multibranch Status Plugin" | ||
- trigger build on pull request comment: .* /rebuild.* (without space!) | ||
- Jenkinsfile: choose contrib/ci/Jenkinsfile.serial | ||
- scan: every 4 hours | ||
- discard: 5+ items | ||
*/ | ||
|
||
// load library https://github.com/tjhei/jenkins-stuff to provide | ||
// killold.killOldBuilds() function: | ||
@Library('tjhei') _ | ||
|
||
pipeline | ||
{ | ||
agent none | ||
|
||
stages | ||
{ | ||
stage("abort old") | ||
{ | ||
agent none | ||
steps | ||
{ | ||
githubNotify context: 'Jenkins: serial', description: 'initializing...', status: 'PENDING' | ||
// kill older builds in this PR: | ||
script { killold.killOldBuilds() } | ||
} | ||
} | ||
|
||
stage("main") | ||
{ | ||
agent | ||
{ | ||
docker | ||
{ | ||
image 'tjhei/candi:v9.4.1-r1-ubuntu20.04' | ||
} | ||
} | ||
|
||
post { cleanup { cleanWs() } } | ||
|
||
stages | ||
{ | ||
stage("check") | ||
{ | ||
when { | ||
not { | ||
anyOf { | ||
branch 'master' | ||
branch pattern: "dealii-*", comparator: "GLOB" | ||
} | ||
} | ||
} | ||
|
||
steps | ||
{ | ||
githubNotify context: 'Jenkins: serial', description: 'pending...', status: 'PENDING' | ||
sh ''' | ||
wget -q -O - https://api.github.com/repos/dealii/dealii/issues/${CHANGE_ID}/labels | grep 'ready to test' || \ | ||
{ echo "This commit will only be tested when it has the label 'ready to test'. Trigger a rebuild by adding a comment that contains '/rebuild'..."; exit 1; } | ||
''' | ||
} | ||
post | ||
{ | ||
failure | ||
{ | ||
githubNotify context: 'Jenkins: serial', description: 'need ready to test label and /rebuild', status: 'PENDING' | ||
script | ||
{ | ||
currentBuild.result='NOT_BUILT' | ||
} | ||
} | ||
} | ||
} | ||
|
||
stage('build') | ||
{ | ||
steps | ||
{ | ||
timeout(time: 2, unit: 'HOURS') | ||
{ | ||
sh "echo \"building on node ${env.NODE_NAME}\"" | ||
sh '''#!/bin/bash | ||
set -e | ||
set -x | ||
export TEST_TIME_LIMIT=1200 | ||
export NP=`grep -c ^processor /proc/cpuinfo` | ||
mkdir -p /home/dealii/build | ||
cd /home/dealii/build | ||
cmake -G "Ninja" \ | ||
-D DEAL_II_CXX_FLAGS='-Werror' \ | ||
-D DEAL_II_CXX_FLAGS_DEBUG='-Og' \ | ||
-D DEAL_II_EARLY_DEPRECATIONS=ON \ | ||
-D CMAKE_BUILD_TYPE=Debug \ | ||
-D DEAL_II_WITH_MPI=OFF \ | ||
-D DEAL_II_UNITY_BUILD=ON \ | ||
$WORKSPACE/ | ||
time ninja -j 10 # 12 gives OOM | ||
time ninja test # quicktests | ||
time ninja setup_tests | ||
time ctest --output-on-failure -j $NP --no-compress-output -T test | ||
''' | ||
githubNotify context: 'Jenkins: serial', description: 'OK', status: 'SUCCESS' | ||
} | ||
} | ||
|
||
post | ||
{ | ||
always | ||
{ | ||
sh "cp /home/dealii/build/Testing/*/*.xml $WORKSPACE/.xml || true" | ||
xunit tools: [CTest(pattern: '*.xml')] | ||
sh "cp /home/dealii/build/detailed.log $WORKSPACE/detailed-mpi.log || true" | ||
archiveArtifacts artifacts: 'detailed-mpi.log', fingerprint: true | ||
} | ||
|
||
failure | ||
{ | ||
githubNotify context: 'Jenkins: serial', description: 'build failed', status: 'FAILURE' | ||
} | ||
} | ||
} | ||
|
||
} | ||
} | ||
} | ||
} |