forked from NERSC/buildtest-nersc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
147 lines (131 loc) · 4.25 KB
/
.gitlab-ci.yml
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
variables:
SCHEDULER_PARAMETERS: "-N 1 -M escori -t 06:00:00 -q compile"
.setup-buildtest: &setup-buildtest
- module load python
- conda create -p $CI_PROJECT_DIR/.conda python=3.8 -y
- source activate buildtest
- git clone -b devel https://github.com/buildtesters/buildtest
- cd buildtest
- . setup.sh
- buildtest --help
- rm -rf $HOME/.buildtest
- mkdir -p $HOME/.buildtest
- buildtest -c $CI_PROJECT_DIR/config.yml config validate
.cleanup-buildtest: &cleanup-buildtest
- conda env remove -p $CI_PROJECT_DIR/.conda -y
stages:
- build
- test
validate_tests:
stage: build
tags: [cori]
before_script:
- *setup-buildtest
rules:
- if: '$CI_PIPELINE_SOURCE == "web" || $CI_PIPELINE_SOURCE == "push"'
when: manual
script:
- buildtest -c $CI_PROJECT_DIR/config.yml buildspec find --rebuild --root $CI_PROJECT_DIR/buildspecs
- mkdir -p $CI_PROJECT_DIR/.artifacts
- cp $HOME/.buildtest/buildspecs/{cache.json,error.txt} $CI_PROJECT_DIR/.artifacts
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
expire_in: 2 week
scheduled_system_check:
stage: test
only:
refs:
- schedules
variables:
- $DAILYCHECK == "True"
tags: [cori]
before_script:
- *setup-buildtest
script:
- buildtest -c $CI_PROJECT_DIR/config.yml buildspec find --rebuild --root $CI_PROJECT_DIR/buildspecs
- buildtest -c $CI_PROJECT_DIR/config.yml build --tags daily -ft daily -r $BUILDTEST_ROOT/report.json
- buildtest report --filter state=FAIL -r $BUILDTEST_ROOT/report.json
- mkdir -p $CI_PROJECT_DIR/.artifacts
- cp $BUILDTEST_ROOT/{buildtest.log,report.json} $CI_PROJECT_DIR/.artifacts
- buildtest cdash upload daily_check -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
expire_in: 2 week
apps:
stage: test
tags: [cori]
only:
refs:
- schedules
variables:
- $APP == "True"
before_script:
- *setup-buildtest
script:
- buildtest -c $CI_PROJECT_DIR/config.yml buildspec find --rebuild --root $CI_PROJECT_DIR/buildspecs
- buildtest -c $CI_PROJECT_DIR/config.yml build --tags compile --filter-tags compile -r $BUILDTEST_ROOT/report.json
- buildtest report --filter state=FAIL -r $BUILDTEST_ROOT/report.json
- mkdir -p $CI_PROJECT_DIR/.artifacts
- cp $BUILDTEST_ROOT/{buildtest.log,report.json} $CI_PROJECT_DIR/.artifacts
- buildtest cdash upload apps -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
benchmark:
stage: test
tags: [cori]
only:
refs:
- schedules
variables:
- $BENCHMARK == "True"
before_script:
- *setup-buildtest
script:
- buildtest -c $CI_PROJECT_DIR/config.yml buildspec find --rebuild --root $CI_PROJECT_DIR/buildspecs
- buildtest -c $CI_PROJECT_DIR/config.yml build --tags benchmark --filter-tags benchmark -r $BUILDTEST_ROOT/report.json
- buildtest report --filter state=FAIL -r $BUILDTEST_ROOT/report.json
- mkdir -p $CI_PROJECT_DIR/.artifacts
- cp $BUILDTEST_ROOT/{buildtest.log,report.json} $CI_PROJECT_DIR/.artifacts
- buildtest cdash upload benchmark -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
e4s_tests:
stage: test
only:
refs:
- schedules
variables:
- $E4S == "True"
tags: [cori]
before_script:
- *setup-buildtest
script:
- buildtest -c $CI_PROJECT_DIR/config.yml buildspec find --rebuild --root $CI_PROJECT_DIR/buildspecs
- buildtest -c $CI_PROJECT_DIR/config.yml build --tags e4s -r $BUILDTEST_ROOT/report.json
- buildtest report --filter state=FAIL -r $BUILDTEST_ROOT/report.json
- mkdir -p $CI_PROJECT_DIR/.artifacts
- cp $BUILDTEST_ROOT/{buildtest.log,report.json} $CI_PROJECT_DIR/.artifacts
- buildtest cdash upload e4s -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
expire_in: 2 week