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