forked from C2SM/spack-c2sm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJenkinsfile
More file actions
80 lines (80 loc) · 3.26 KB
/
Jenkinsfile
File metadata and controls
80 lines (80 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
pipeline {
agent none
stages {
stage('Tests') {
matrix {
agent { label "${NODENAME}" }
axes {
axis {
name 'NODENAME'
values 'tsa', 'daint', 'balfrin'
}
}
post {
always {
archiveArtifacts artifacts: 'log/**/*.log', allowEmptyArchive: true
withCredentials([string(credentialsId: 'd976fe24-cabf-479e-854f-587c152644bc', variable: 'GITHUB_AUTH_TOKEN')]) {
sh """
source env/bin/activate
python3 src/report_tests.py --auth_token ${GITHUB_AUTH_TOKEN} --build_id ${BUILD_ID} --issue_id ${ghprbPullId}
"""
}
deleteDir()
}
}
stages {
stage('Create environment') {
steps {
sh """
python3 -m venv env
source env/bin/activate
pip install -r requirements.txt
"""
}
}
stage('Unit Tests') {
steps {
sh """
mkdir -p log/${NODENAME}/unit_test
source env/bin/activate
python3 test/unit_test.py ${NODENAME} > log/${NODENAME}/unit_test/summary.log 2>&1
"""
}
}
stage('Bootstrap spack') {
steps {
sh """
source env/bin/activate
. ./setup-env.sh
spack spec spack
"""
}
}
stage('Integration Tests') {
steps {
sh """
source env/bin/activate
pytest -v -n auto --scope \"""" + env.ghprbCommentBody + " parallel\" test/integration_test.py"
}
}
stage('System Tests Parallel') {
steps {
sh """
source env/bin/activate
pytest -v -n auto --maxprocesses=12 --scope \"""" + env.ghprbCommentBody + " parallel\" test/system_test.py"
}
}
stage('System Tests Serial') {
steps {
sh """
mkdir -p log/${NODENAME}/system_test
touch log/${NODENAME}/system_test/serial_test_run
source env/bin/activate
pytest -v -n auto --maxprocesses=12 --scope \"""" + env.ghprbCommentBody + " serial\" test/system_test.py"
}
}
}
}
}
}
}