forked from samcom12/buildtest-cori
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
144 lines (130 loc) · 4.67 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
.setup-buildtest: &setup-buildtest
- module load python
- conda create -p $CI_PROJECT_DIR/.conda python=3.8 -y
- source activate $CI_PROJECT_DIR/.conda
- git clone -b devel https://github.com/buildtesters/buildtest
- cd buildtest
- . setup.sh
- git log --oneline -1
- 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: [c_e4s_cori01]
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: [c_e4s_cori01]
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 --testdir $CFS/m3503/buildtest/runs/$CI_JOB_NAME/$(date +%F)
- 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 -c $CI_PROJECT_DIR/config.yml cdash upload daily_check -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
apps:
stage: test
tags: [c_e4s_cori01]
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 --testdir $CFS/m3503/buildtest/runs/$CI_JOB_NAME/$(date +%F)
- 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 -c $CI_PROJECT_DIR/config.yml cdash upload apps -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
benchmark:
stage: test
tags: [c_e4s_cori01]
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 --testdir $CFS/m3503/buildtest/runs/$CI_JOB_NAME/$(date +%F)
- 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 -c $CI_PROJECT_DIR/config.yml cdash upload benchmark -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts
e4s_tests:
stage: test
tags: [c_e4s_cori01]
only:
refs:
- schedules
variables:
- $E4S == "True"
before_script:
- *setup-buildtest
script:
- env
- 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 --max-pend-time 600 --testdir $CFS/m3503/buildtest/runs/$CI_JOB_NAME/$(date +%F)
- buildtest report -r $BUILDTEST_ROOT/report.json --format name,id,state,runtime
- 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 -c $CI_PROJECT_DIR/config.yml cdash upload e4s -r $BUILDTEST_ROOT/report.json
- source deactivate
after_script:
- *cleanup-buildtest
artifacts:
paths:
- $CI_PROJECT_DIR/.artifacts