1####
2# This is the share configuration of jobs for quartz
3.on_quartz:
4  tags:
5    - shell
6    - quartz
7  rules:
8    - if: '$CI_COMMIT_BRANCH =~ /_qnone/ || $ON_QUARTZ == "OFF"' #run except if ...
9      when: never
10    - if: '$CI_JOB_NAME =~ /release_resources/'
11      when: always
12    - when: on_success
13
14####
15# In pre-build phase, allocate a node for builds
16quartz_allocate:
17  variables:
18    GIT_STRATEGY: none
19  extends: [.on_quartz]
20  stage: allocate
21  script:
22    - salloc -p pdebug -N 1 -t 10 --no-shell --job-name=${PROJECT_ALLOC_NAME} --mpibind=off
23  needs: []
24
25####
26# In post-build phase, deallocate resources
27# Note : make sure this is run even on build phase failure
28quartz_release:
29  variables:
30    GIT_STRATEGY: none
31  extends: [.on_quartz]
32  stage: release
33  script:
34    - export JOBID=$(squeue -h --name=${PROJECT_ALLOC_NAME} --format=%A)
35    - if [[ -n "${JOBID}" ]]; then scancel ${JOBID}; fi
36
37####
38# Template
39.build_on_quartz:
40  stage: build
41  variables:
42    ALLOC_COMMAND: "srun -p pdebug -t 30 -N 1 ${ASSIGN_ID}"
43  extends: [.build_script, .on_quartz]
44
45####
46# Build jobs
47quartz-clang_4_0_0_libcxx:
48  variables:
49    HOST_CONFIG: "clang@4.0.0-libcxx.cmake"
50  extends: [.build_on_quartz]
51
52quartz-clang_6_0_0_static_analysis:
53  variables:
54    HOST_CONFIG: "clang@6.0.0-static-analysis.cmake"
55  extends: [.build_on_quartz]
56
57quartz-gcc_8_3_1:
58  variables:
59    HOST_CONFIG: "gcc@8.3.1.cmake"
60  extends: [.build_on_quartz]
61
62quartz-pgi_20_1:
63  variables:
64    HOST_CONFIG: "pgi@20.1.cmake"
65  extends: [.build_on_quartz]
66