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