xref: /petsc/.gitlab-ci.yml (revision efa12513287cff49a2b9648ae83199dcbfaad71a)
1#
2# stage-1 take only a few minutes; they do not run the full test suite or external packages.
3#
4# stage-2 runs on MCS systems and may take 10 to 15 minutes. They run the full test suite but with limited mixture of external packages
5#
6# stage-3 runs on MCS systems and may take an hour or more. They run the full test suite and heavily test external packages, utilize valgrind etc
7#
8# The stage-(n) tests are only started if all of the stage-(n-1) tests run without error
9#   You can limit the testing by using the variable STAGE with value 1 or 2
10#
11
12stages:
13  - stage-1
14  - stage-2
15  - stage-3
16variables:
17  GIT_STRATEGY: fetch
18  GIT_CLEAN_FLAGS: -ffdxq
19  PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump
20  TIMEOUT: 450
21
22#
23# The most basic template that most tests will expand upon. In particular merge requests and branch pushes DO NOT trigger testing
24#
25
26.test:
27  only:
28    refs:
29#     Set with CI/CD Shedules - New Schedule
30      - schedules
31      - api
32#     Set with CI/CD Pipelines - Run Pipeline
33      - web
34      - merge_requests
35  dependencies: []
36
37check-ci-settings:
38  extends: .test
39  stage: .pre
40  tags:
41    - check-ci-settings
42  script:
43    - lib/petsc/bin/maint/check-ci-settings.sh
44#
45#  This provides the basic order of operations and options template for cloud based stage 1 tests.
46#  Not all test-short need to follow this template but most will.
47#
48
49.stage-1:
50  extends: .test
51  stage: stage-1
52  tags:
53    - stage1
54  before_script:
55    - date
56    - hostname
57    - grep PRETTY_NAME /etc/os-release
58    - nproc
59    - lscpu
60    - ccache --zero-stats
61    - echo ${CONFIG_OPTS}
62  script:
63    - printf "PATH:$PATH\n"
64    - printf "PYTHONPATH:$PYTHONPATH\n"
65    - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n"
66    - if [ ! -z ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME+x} ]; then printf "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n" ;fi
67    - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS}
68    - make CFLAGS=-Werror CXXFLAGS="-Werror -Wzero-as-null-pointer-constant" FFLAGS=-Werror
69    - make CFLAGS=-Werror CXXFLAGS=-Werror FFLAGS=-Werror allgtests-tap search="${TEST_SEARCH}" TIMEOUT=${TIMEOUT}
70  after_script:
71    - date
72    - ccache --show-stats
73  artifacts:
74    reports:
75      junit: arch-*/tests/testresults.xml
76    name: "$CI_JOB_NAME"
77    when: always
78    paths:
79    - arch-*/lib/petsc/conf/*.log
80    - arch-*/lib/pkgconfig/PETSc.pc
81    - arch-*/tests/testresults.xml
82    - arch-*/tests/test_*_tap.log
83    - arch-*/tests/test_*_err.log
84    expire_in: 4 days
85
86#
87# The following tests run on the cloud as part of stage-1.
88#
89
90mpich-cxx-py3:
91  extends: .stage-1
92  tags:
93  - stage1, fedora
94  variables:
95    PYTHON: python3
96    CONFIG_OPTS: --with-mpi-dir=/home/glci/soft/mpich-3.3.2 --with-clanguage=cxx --with-fc=0
97    TEST_SEARCH: snes_tutorials-ex48%
98
99uni-complex-float-int64:
100  extends: .stage-1
101  variables:
102    PYTHON: python3
103    CONFIG_OPTS: --with-mpi=0 --with-scalar-type=complex --with-precision=single --with-64-bit-indices
104    TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_%
105
106c99-mlib-static-py2:
107  extends: .stage-1
108  variables:
109    PYTHON: python2
110    CONFIG_OPTS: --with-mpi-dir=/home/glci/soft/mpich-3.3.2 --with-single-library=0 --with-shared-libraries=0 CFLAGS=-std=c99
111    TEST_SEARCH: snes_tutorials-ex19%
112
113checksource:
114  extends: .test
115  stage: .pre
116  tags:
117    - stage1
118  script:
119    - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0
120    - make checkbadSource SHELL=bash
121    - make -f gmakefile check_output SHELL=bash
122
123pause-for-approval:
124  extends: .test
125  stage: .pre
126  tags:
127    - stage1
128  only:
129    refs:
130      - merge_requests
131    variables:
132      - $CI_MERGE_REQUEST_EVENT_TYPE == "merged_result"
133      - $CI_MERGE_REQUEST_EVENT_TYPE == "detached"
134  script:
135    - echo "pause-for-approval has no script to run"
136  variables:
137    GIT_STRATEGY: none
138  when: manual
139  allow_failure: false
140
141check-py-vermin:
142  extends: .test
143  stage: .pre
144  tags:
145    - stage1
146  script:
147    - vermin -vv  -t=2.6- -t=3.4- config
148#
149# This provides the basic order of operations and options template for stage-2,3 tests.
150# Not all stage-2,3 need to follow this template, but most will.
151#
152.stage-23:
153  extends: .test
154  script:
155    - printf "PATH:$PATH\n"
156    - printf "PYTHONPATH:$PYTHONPATH\n"
157    - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n"
158    - if [ ! -z ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME+x} ]; then printf "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n" ;fi
159    - printf "./config/examples/${TEST_ARCH}.py\n"
160    - cat ./config/examples/${TEST_ARCH}.py
161    - ./config/examples/${TEST_ARCH}.py
162    - make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}"
163    - make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" check
164    - make updatedatafiles
165    - if [ -z ${DISABLE_PETSC4PY_TESTS+x} ]; then if [ -z ${ENABLE_PETSC4PY_LDPRELOAD+x} ]; then echo "NOT using LD_PRELOAD"; make petsc4pytest; else echo "using LD_PRELOAD"; LD_PRELOAD=${PWD}/${TEST_ARCH}/lib/libpetsc.so make petsc4pytest; fi; fi
166    - if [ -z ${DISABLE_TESTS+x} ]; then make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" cleantest allgtests-tap TIMEOUT=${TIMEOUT}  ${TEST_OPTS}; fi
167    - if [ ! -z ${RUN_GCOV+x} ]; then make gcov && bash <(curl -s https://codecov.io/bash) -c > /dev/null 2>&1; fi
168  artifacts:
169    reports:
170      junit: ${TEST_ARCH}/tests/testresults.xml
171    name: "$CI_JOB_NAME"
172    when: always
173    paths:
174    - ${TEST_ARCH}/lib/petsc/conf/*.log
175    - ${TEST_ARCH}/lib/pkgconfig/PETSc.pc
176    - ${TEST_ARCH}/tests/testresults.xml
177    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
178    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
179    - ${TEST_ARCH}/gcov.tar.gz
180    expire_in: 4 days
181  variables:
182    OPENBLAS_NUM_THREADS: 1
183
184.stage-2:
185  extends: .stage-23
186  stage: stage-2
187
188.stage-3:
189  extends: .stage-23
190  stage: stage-3
191
192#
193# The following provide templates for various OSes for pre/post info
194#
195
196.linux_test_noflags:
197  before_script:
198    - date
199    - hostname
200    - grep PRETTY_NAME /etc/os-release
201    - nproc
202    - lscpu
203    - ccache --zero-stats
204    - if [ ! -z ${LOAD_MODULES+x} ]; then module --trace load ${LOAD_MODULES}; module list; fi
205    - if [ ! -z ${INIT_SCRIPT+x} ]; then echo "sourcing ${INIT_SCRIPT}"; source ${INIT_SCRIPT}; fi
206  after_script:
207    - date
208    - ccache --show-stats
209
210.linux_test_nofflags:
211  extends: .linux_test_noflags
212  variables:
213    MAKE_CFLAGS: -Werror
214    MAKE_CXXFLAGS: -Werror
215
216.linux_test:
217  extends: .linux_test_noflags
218  variables:
219    MAKE_CFLAGS: -Werror
220    MAKE_CXXFLAGS: -Werror
221    MAKE_FFLAGS: -Werror
222
223.freebsd_test:
224  variables:
225    MAKE_CFLAGS: -Werror
226    MAKE_CXXFLAGS: -Werror
227    MAKE_FFLAGS: -Werror
228  before_script:
229    - date
230    - hostname
231    - freebsd-version
232    - echo $(sysctl -n hw.ncpu)
233    - ccache --zero-stats
234  after_script:
235    - date
236    - ccache --show-stats
237
238.osx_test:
239  variables:
240    MAKE_CFLAGS: -Werror
241    MAKE_CXXFLAGS: -Werror
242    MAKE_FFLAGS: -Werror
243  before_script:
244    - date
245    - hostname
246    - sw_vers -productVersion
247    - echo $(sysctl -n hw.ncpu)
248    - ccache --zero-stats
249  after_script:
250    - date
251    - ccache --show-stats
252
253.opensolaris_test:
254  before_script:
255    - date
256    - hostname
257    - uname -a
258    - nproc
259    - isainfo -x
260  after_script:
261    - date
262
263.mswin_test:
264  before_script:
265    - date
266    - hostname
267    - uname -a
268    - nproc
269  after_script:
270    - date
271
272#
273# The following tests run as part of stage-2.
274#
275# The tags variable used in the tests below connects the particular test with the runners
276# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd.
277# For example the test linux-gcc-complex-opt  any runner that has the tag 'name:pj02'
278# (in a blue box beneath it)
279#
280
281freebsd-cxx-cmplx-64idx-dbg:
282  extends:
283    - .stage-2
284    - .freebsd_test
285  tags:
286    - os:fbsd
287  variables:
288    TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg
289
290freebsd-c-single-opt:
291  extends:
292    - .stage-2
293    - .freebsd_test
294  tags:
295    - os:fbsd
296  variables:
297    TEST_ARCH: arch-ci-freebsd-c-single-opt
298
299linux-cuda-double:
300  extends:
301    - .stage-2
302    - .linux_test
303  tags:
304    - gpu:nvidia, os:linux, name:p1
305  variables:
306    TEST_ARCH: arch-ci-linux-cuda-double
307
308linux-gcc-quad-64idx-dbg:
309  extends:
310    - .stage-2
311    - .linux_test
312  tags:
313    - linux-stage2
314  variables:
315    TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg
316
317linux-gcc-pkgs-opt:
318  extends:
319    - .stage-2
320    - .linux_test
321  tags:
322    - linux-stage2
323  variables:
324    TEST_ARCH: arch-ci-linux-gcc-pkgs-opt
325
326linux-gcc-complex-opt:
327  extends:
328    - .stage-2
329    - .linux_test
330  tags:
331    - linux-stage2
332  variables:
333    TEST_ARCH: arch-ci-linux-gcc-complex-opt
334
335mswin-uni:
336  extends:
337    - .stage-2
338    - .mswin_test
339  tags:
340    - win-stage2
341  variables:
342    TEST_ARCH: arch-ci-mswin-uni
343
344mswin-gnu:
345  extends:
346    - .stage-2
347    - .mswin_test
348  tags:
349    - win-stage2
350  variables:
351    TEST_ARCH: arch-ci-mswin-gnu
352    MAKE_CFLAGS: -Werror
353    MAKE_CXXFLAGS: -Werror
354    MAKE_FFLAGS: -Werror
355    DISABLE_TESTS: 1
356  artifacts:
357    reports:
358    paths:
359    - arch-*/lib/petsc/conf/*.log
360    expire_in: 4 days
361
362#
363# The following tests run as part of stage-3.
364#
365
366freebsd-cxx-cmplx-pkgs-dbg:
367  extends:
368    - .stage-3
369    - .freebsd_test
370  tags:
371    - os:fbsd
372  variables:
373    TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg
374
375freebsd-cxx-pkgs-opt:
376  extends:
377    - .stage-3
378    - .freebsd_test
379  tags:
380    - os:fbsd
381  variables:
382    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false
383    TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt
384
385freebsd-pkgs-opt:
386  extends:
387    - .stage-3
388    - .freebsd_test
389  tags:
390    - os:fbsd
391  variables:
392    TEST_ARCH: arch-ci-freebsd-pkgs-opt
393
394linux-hip-double:
395  extends:
396    - .stage-3
397    - .linux_test
398  tags:
399    - gpu:amd, os:linux, name:hip-txcorp
400  variables:
401    PATH: /opt/rh/devtoolset-7/root/usr/bin:/opt/rocm/bin:/opt/rocm/llvm/bin:/usr/sbin:/usr/bin:/sbin:/bin
402    TEST_ARCH: arch-ci-linux-hip-double
403
404linux-sycl-double:
405  extends:
406    - .stage-3
407    - .linux_test_nofflags
408  tags:
409    - os:linux, name:pj01
410  variables:
411    TEST_ARCH: arch-ci-linux-sycl-double
412    INIT_SCRIPT: /home/glci/bin/ci-inteloneapi.sh
413    DISABLE_TESTS: 1
414
415linux-c-exodus-dbg:
416  extends:
417    - .stage-3
418    - .linux_test
419  tags:
420    - gpu:nvidia, os:linux, name:frog
421  variables:
422    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
423    TEST_ARCH: arch-ci-linux-c-exodus-dbg
424    RUN_GCOV: 1
425    TEST_OPTS: -j1 query=requires queryval=cuda
426
427linux-cuda11-double:
428  extends:
429    - .stage-3
430    - .linux_test
431  tags:
432    - gpu:nvidia, os:linux, name:frog
433  variables:
434    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
435    TEST_ARCH: arch-ci-linux-cuda11-double
436    TEST_OPTS: -j1 query=requires queryval=cuda
437
438linux-cuda11-complex:
439  extends:
440    - .stage-3
441    - .linux_test
442  tags:
443    - gpu:nvidia, os:linux, name:frog
444  variables:
445    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
446    TEST_ARCH: arch-ci-linux-cuda11-complex
447    TEST_OPTS: -j1 query=requires queryval=cuda
448
449linux-cuda-double-64idx:
450  extends:
451    - .stage-3
452    - .linux_test
453  tags:
454    - gpu:nvidia, os:linux, name:p1
455  variables:
456    TEST_ARCH: arch-ci-linux-cuda-double-64idx
457    TEST_OPTS: -j1 query=requires queryval=cuda
458
459linux-cuda-single-cxx:
460  extends:
461    - .stage-3
462    - .linux_test
463  tags:
464    - gpu:nvidia, os:linux
465  variables:
466    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
467    TEST_ARCH: arch-ci-linux-cuda-single-cxx
468    TEST_OPTS: -j1 query=requires queryval=cuda
469
470linux-cuda-uni-pkgs:
471  extends:
472    - .stage-3
473    - .linux_test
474  tags:
475    - gpu:nvidia, os:linux
476  variables:
477    TEST_ARCH: arch-ci-linux-cuda-uni-pkgs
478    TEST_OPTS: -j4 query=requires queryval=cuda
479
480linux-viennacl:
481  extends:
482    - .stage-3
483    - .linux_test
484  tags:
485    - gpu:nvidia, os:linux
486  variables:
487    TEST_ARCH: arch-ci-linux-viennacl
488    MAKE_CXXFLAGS: -Werror -Wno-ignored-attributes
489    TEST_OPTS: -j1 query=requires queryval=viennacl
490
491linux-without-fc:
492  extends:
493    - .stage-3
494    - .linux_test
495  tags:
496    - gce-nfs
497  variables:
498    TEST_ARCH: arch-ci-linux-without-fc
499
500linux-cmplx-single:
501  extends:
502    - .stage-3
503    - .linux_test
504  tags:
505    - name:si
506  variables:
507    TEST_ARCH: arch-ci-linux-cmplx-single
508
509linux-gcc-cxx-avx2:
510  extends:
511    - .stage-3
512    - .linux_test
513  tags:
514    - name:isdp001
515  variables:
516    TEST_ARCH: arch-ci-linux-gcc-cxx-avx2
517
518linux-clang-avx:
519  extends:
520    - .stage-3
521    - .linux_test
522  tags:
523    - name:isdp001
524  variables:
525    TEST_ARCH: arch-ci-linux-clang-avx
526
527linux-knl:
528  extends:
529    - .stage-3
530    - .linux_test
531  tags:
532    - name:isdp001
533  variables:
534    TEST_ARCH: arch-ci-linux-knl
535
536linux-intel-mkl-single:
537  extends:
538    - .stage-3
539    - .linux_test_nofflags
540  tags:
541    - name:isdp001
542  variables:
543    TEST_ARCH: arch-ci-linux-intel-mkl-single
544
545linux-cxx-cmplx-pkgs-64idx:
546  extends:
547    - .stage-3
548    - .linux_test
549  tags:
550    - gce-nfs
551  variables:
552    TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx
553    LOAD_MODULES: llvm/9.0.0-7fyffox gcc/8.3.0-fjpc5ys cmake/3.14.2-rl3q676
554
555linux-pkgs-dbg-ftn-interfaces:
556  extends:
557    - .stage-3
558    - .linux_test
559  tags:
560    - gce-nfs
561  variables:
562    TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces
563
564linux-pkgs-cxx-mlib:
565  extends:
566    - .stage-3
567    - .linux_test
568  tags:
569    - gce-nfs
570  variables:
571    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
572    TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib
573
574linux-pkgs-valgrind:
575  extends:
576    - .stage-3
577    - .linux_test
578  tags:
579    - gce-nfs, linux-fast
580  variables:
581    TEST_ARCH: arch-ci-linux-pkgs-valgrind
582    TIMEOUT: 7200
583
584linux-pkgs-opt:
585  extends:
586    - .stage-3
587    - .linux_test
588  tags:
589    - gce-nfs, linux-fast
590  variables:
591    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
592    TEST_ARCH: arch-ci-linux-pkgs-opt
593    LOAD_MODULES: gcc/10.1.0-5hiqhdh
594
595linux-pkgs-gcov:
596  extends:
597    - .stage-3
598    - .linux_test
599  tags:
600    - gce-nfs, linux-gcov
601  variables:
602    TEST_ARCH: arch-ci-linux-pkgs-gcov
603    RUN_GCOV: 1
604
605linux-cmplx-gcov:
606  extends:
607    - .stage-3
608    - .linux_test
609  tags:
610    - gce-nfs, linux-gcov
611  variables:
612    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false
613    TEST_ARCH: arch-ci-linux-cmplx-gcov
614    LOAD_MODULES: gcc/8.3.0-fjpc5ys
615    RUN_GCOV: 1
616
617linux-matlab-ilp64-gcov:
618  extends:
619    - .stage-3
620    - .linux_test
621  tags:
622    - gce-nfs, linux-gcov
623  variables:
624    TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov
625    LOAD_MODULES: matlab/R2018a
626    RUN_GCOV: 1
627  allow_failure: true
628
629linux-gcov:
630  extends:
631    - .stage-3
632    - .linux_test
633  tags:
634    - gce-nfs, linux-gcov
635  variables:
636    TEST_ARCH: arch-ci-linux-gcov
637    RUN_GCOV: 1
638
639linux-pgi:
640  extends:
641    - .stage-3
642    - .linux_test_noflags
643  tags:
644    - gce-nfs, linux-mcpu
645  variables:
646    TEST_ARCH: arch-ci-linux-pgi
647    LOAD_MODULES: hpc_sdk/20.9
648
649linux-nagfor:
650  extends:
651    - .stage-3
652    - .linux_test_nofflags
653  tags:
654    - gce-nfs, linux-mcpu
655  variables:
656    PATH: /usr/lib/ccache:/home/svcpetsc/.local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/nfs/gce/projects/petsc/soft/nag/6.1/bin
657    NAG_KUSARI_FILE: licman1.mcs.anl.gov:7733
658    TEST_ARCH: arch-ci-linux-nagfor
659
660linux-intel-cmplx:
661  extends:
662    - .stage-3
663    - .linux_test_nofflags
664  tags:
665    - gce-nfs
666  variables:
667    TEST_ARCH: arch-ci-linux-intel-cmplx
668    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
669    ENABLE_PETSC4PY_LDPRELOAD: 1
670
671linux-xsdk-dbg:
672  extends:
673    - .stage-3
674    - .linux_test
675  tags:
676    - gce-nfs
677  variables:
678    TEST_ARCH: arch-ci-linux-xsdk-dbg
679    LOAD_MODULES: gcc/8.3.0-fjpc5ys
680
681linux-analyzer:
682  extends:
683    - .stage-3
684    - .linux_test
685  tags:
686    - gce-nfs
687  variables:
688    TEST_ARCH: arch-ci-linux-analyzer
689
690linux-intel:
691  extends:
692    - .stage-3
693    - .linux_test_nofflags
694  tags:
695    - gce-nfs
696  variables:
697    TEST_ARCH: arch-ci-linux-intel
698    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
699
700linux-opt-misc:
701  extends:
702    - .stage-3
703    - .linux_test
704  tags:
705    - gce-nfs
706  variables:
707    TEST_ARCH: arch-ci-linux-opt-misc
708    LOAD_MODULES: gcc/6.5.0-57usejd
709
710linux-pkgs-64idx:
711  extends:
712    - .stage-3
713    - .linux_test
714  tags:
715    - gce-nfs
716  variables:
717    TEST_ARCH: arch-ci-linux-pkgs-64idx
718    LOAD_MODULES: cmake/3.15.5-fh74toq
719
720linux-64idx-i8:
721  extends:
722    - .stage-3
723    - .linux_test
724  tags:
725    - gce-nfs
726  variables:
727    TEST_ARCH: arch-ci-linux-64idx-i8
728
729linux-gcc-ifc-cmplx:
730  extends:
731    - .stage-3
732    - .linux_test_nofflags
733  tags:
734    - gce-nfs
735  variables:
736    TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx
737    LOAD_MODULES: intel/19.0-nompilib
738
739linux-opt-cxx-quad:
740  extends:
741    - .stage-3
742    - .linux_test
743  tags:
744    - gce-nfs
745  variables:
746    TEST_ARCH: arch-ci-linux-opt-cxx-quad
747
748linux-ILP64:
749  extends:
750    - .stage-3
751    - .linux_test
752  tags:
753    - gce-nfs
754  variables:
755    TEST_ARCH: arch-ci-linux-ILP64
756    LOAD_MODULES: gcc/6.5.0-57usejd
757
758linux-64idx-i8-uni:
759  extends:
760    - .stage-3
761    - .linux_test
762  tags:
763    - gce-nfs
764  variables:
765    TEST_ARCH: arch-ci-linux-64idx-i8-uni
766
767mswin-intel-cxx-cmplx:
768  extends:
769    - .stage-3
770    - .mswin_test
771  tags:
772    - os:win
773  variables:
774    TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx
775
776mswin-intel:
777  extends:
778    - .stage-3
779    - .mswin_test
780  tags:
781    - os:win
782  variables:
783    TEST_ARCH: arch-ci-mswin-intel
784
785mswin-opt-impi:
786  extends:
787    - .stage-3
788    - .mswin_test
789  tags:
790    - os:win
791  variables:
792    TEST_ARCH: arch-ci-mswin-opt-impi
793    DISABLE_TESTS: 1
794
795opensolaris-pkgs-opt:
796  extends:
797    - .stage-3
798    - .opensolaris_test
799  tags:
800    - name:n-gage
801  variables:
802    TEST_ARCH: arch-ci-opensolaris-pkgs-opt
803
804opensolaris-cmplx-pkgs-dbg:
805  extends:
806    - .stage-3
807    - .opensolaris_test
808  tags:
809    - name:n-gage
810  variables:
811    TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg
812
813opensolaris-misc:
814  extends:
815    - .stage-3
816    - .opensolaris_test
817  tags:
818    - name:n-gage
819  variables:
820    TEST_ARCH: arch-ci-opensolaris-misc
821
822osx-cxx-cmplx-pkgs-dbg:
823  extends:
824    - .stage-3
825    - .osx_test
826  tags:
827    - os:macos
828  variables:
829    TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg
830
831osx-cxx-pkgs-opt:
832  extends:
833    - .stage-3
834    - .osx_test
835  tags:
836    - os:macos, opt
837  variables:
838    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false
839    TEST_ARCH: arch-ci-osx-cxx-pkgs-opt
840    MAKE_CXXFLAGS: -Werror -Wno-pass-failed
841
842osx-dbg:
843  extends:
844    - .stage-3
845    - .osx_test
846  tags:
847    - os:macos
848  variables:
849    TEST_ARCH: arch-ci-osx-dbg
850
851osx-xsdk-opt:
852  extends:
853    - .stage-3
854    - .osx_test
855  tags:
856    - os:macos, opt
857  variables:
858    TEST_ARCH: arch-ci-osx-xsdk-opt
859
860# job for analyzing the final coverage results
861analyze-pipeline:
862  extends: .test
863  stage: .post
864  tags:
865    - gce-nfs
866  dependencies:
867    - linux-c-exodus-dbg
868    - linux-pkgs-gcov
869    - linux-cmplx-gcov
870    - linux-matlab-ilp64-gcov
871    - linux-gcov
872  variables:
873    PETSC_ARCH: arch-ci-analyze-pipeline
874  before_script:
875    - date
876    - hostname
877  script:
878  - ./configure --with-mpi=0 --with-cxx=0 --with-c2html
879  - make srchtml
880  - make mergegcov
881  artifacts:
882    name: "$CI_JOB_NAME"
883    when: always
884    paths:
885    - arch-ci-analyze-pipeline/*
886    expire_in: 4 days
887#
888#
889# The following tests are experimental; more tests by users at other sites may be added below this.  Experimental test
890# that fail produce a warning, but do not block execution of a pipeline.
891#
892
893.test-experimental:
894  extends: .test
895  allow_failure: true
896
897