xref: /petsc/.gitlab-ci.yml (revision f2ed2dc71a2ab9ffda85eae8afa0cbea9ed570de)
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    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
404    TEST_ARCH: arch-ci-linux-viennacl
405
406linux-c-exodus-dbg:
407  extends:
408    - .stage-3
409    - .linux_test
410  tags:
411    - gpu:nvidia, os:linux
412  variables:
413    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
414    TEST_ARCH: arch-ci-linux-c-exodus-dbg
415
416linux-cuda-complex:
417  extends:
418    - .stage-3
419    - .linux_test
420  tags:
421    - gpu:nvidia, os:linux, name:p1
422  variables:
423    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump
424    TEST_ARCH: arch-ci-linux-cuda-complex
425
426linux-cuda-double-64idx:
427  extends:
428    - .stage-3
429    - .linux_test
430  tags:
431    - gpu:nvidia, os:linux, name:p1
432  variables:
433    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump
434    TEST_ARCH: arch-ci-linux-cuda-double-64idx
435
436linux-cuda-single-cxx:
437  extends:
438    - .stage-3
439    - .linux_test
440  tags:
441    - gpu:nvidia, os:linux, name:frog
442  variables:
443    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
444    TEST_ARCH: arch-ci-linux-cuda-single-cxx
445
446linux-cuda-uni-pkgs:
447  extends:
448    - .stage-3
449    - .linux_test
450  tags:
451    - gpu:nvidia, os:linux, name:frog
452  variables:
453    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump
454    TEST_ARCH: arch-ci-linux-cuda-uni-pkgs
455
456linux-without-fc:
457  extends:
458    - .stage-3
459    - .linux_test
460  tags:
461    - gce-nfs
462  variables:
463    TEST_ARCH: arch-ci-linux-without-fc
464
465linux-cmplx-single:
466  extends:
467    - .stage-3
468    - .linux_test
469  tags:
470    - name:si
471  variables:
472    TEST_ARCH: arch-ci-linux-cmplx-single
473
474linux-gcc-cxx-avx2:
475  extends:
476    - .stage-3
477    - .linux_test
478  tags:
479    - name:isdp001
480  variables:
481    TEST_ARCH: arch-ci-linux-gcc-cxx-avx2
482
483linux-clang-avx:
484  extends:
485    - .stage-3
486    - .linux_test
487  tags:
488    - name:isdp001
489  variables:
490    TEST_ARCH: arch-ci-linux-clang-avx
491
492linux-knl:
493  extends:
494    - .stage-3
495    - .linux_test
496  tags:
497    - name:isdp001
498  variables:
499    TEST_ARCH: arch-ci-linux-knl
500
501linux-intel-mkl-single:
502  extends:
503    - .stage-3
504    - .linux_test_noflags
505  tags:
506    - name:isdp001
507  variables:
508    TEST_ARCH: arch-ci-linux-intel-mkl-single
509
510linux-cxx-cmplx-pkgs-64idx:
511  extends:
512    - .stage-3
513    - .linux_test
514  tags:
515    - gce-nfs
516  variables:
517    TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx
518    LOAD_MODULES: llvm/9.0.0-7fyffox gcc/8.3.0-fjpc5ys cmake/3.14.2-rl3q676
519
520linux-pkgs-dbg-ftn-interfaces:
521  extends:
522    - .stage-3
523    - .linux_test
524  tags:
525    - gce-nfs
526  variables:
527    TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces
528
529linux-pkgs-cxx-mlib:
530  extends:
531    - .stage-3
532    - .linux_test
533  tags:
534    - gce-nfs
535  variables:
536    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
537    TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib
538
539linux-pkgs-valgrind:
540  extends:
541    - .stage-3
542    - .linux_test
543  tags:
544    - gce-nfs, linux-fast
545  variables:
546    TEST_ARCH: arch-ci-linux-pkgs-valgrind
547    TIMEOUT: 7200
548
549linux-pkgs-opt:
550  extends:
551    - .stage-3
552    - .linux_test
553  tags:
554    - gce-nfs, linux-fast
555  variables:
556    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
557    TEST_ARCH: arch-ci-linux-pkgs-opt
558    LOAD_MODULES: gcc/10.1.0-5hiqhdh
559
560linux-pkgs-gcov:
561  extends:
562    - .stage-3
563    - .linux_test
564  tags:
565    - gce-nfs, linux-gcov
566  variables:
567    TEST_ARCH: arch-ci-linux-pkgs-gcov
568    RUN_GCOV: 1
569
570linux-cmplx-gcov:
571  extends:
572    - .stage-3
573    - .linux_test
574  tags:
575    - gce-nfs, linux-gcov
576  variables:
577    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false
578    TEST_ARCH: arch-ci-linux-cmplx-gcov
579    LOAD_MODULES: gcc/8.3.0-fjpc5ys
580    RUN_GCOV: 1
581
582linux-matlab-ilp64-gcov:
583  extends:
584    - .stage-3
585    - .linux_test
586  tags:
587    - gce-nfs, linux-gcov
588  variables:
589    TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov
590    LOAD_MODULES: matlab/R2018a
591    RUN_GCOV: 1
592  allow_failure: true
593
594linux-gcov:
595  extends:
596    - .stage-3
597    - .linux_test
598  tags:
599    - gce-nfs, linux-gcov
600  variables:
601    TEST_ARCH: arch-ci-linux-gcov
602    RUN_GCOV: 1
603
604linux-pgi:
605  extends:
606    - .stage-3
607    - .linux_test_noflags
608  tags:
609    - gce-nfs, linux-mcpu
610  variables:
611    TEST_ARCH: arch-ci-linux-pgi
612
613linux-nagfor:
614  extends:
615    - .stage-3
616    - .linux_test_nofflags
617  tags:
618    - gce-nfs, linux-mcpu
619  variables:
620    PATH: /usr/lib/ccache:/home/svcpetsc/.local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/nfs/gce/projects/petsc/soft/nag/6.1/bin
621    NAG_KUSARI_FILE: licman1.mcs.anl.gov:7733
622    TEST_ARCH: arch-ci-linux-nagfor
623
624linux-intel-cmplx:
625  extends:
626    - .stage-3
627    - .linux_test_noflags
628  tags:
629    - gce-nfs
630  variables:
631    TEST_ARCH: arch-ci-linux-intel-cmplx
632    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
633
634linux-xsdk-dbg:
635  extends:
636    - .stage-3
637    - .linux_test
638  tags:
639    - gce-nfs
640  variables:
641    TEST_ARCH: arch-ci-linux-xsdk-dbg
642    LOAD_MODULES: gcc/8.3.0-fjpc5ys
643
644linux-analyzer:
645  extends:
646    - .stage-3
647    - .linux_test
648  tags:
649    - gce-nfs
650  variables:
651    TEST_ARCH: arch-ci-linux-analyzer
652
653linux-intel:
654  extends:
655    - .stage-3
656    - .linux_test_nofflags
657  tags:
658    - gce-nfs
659  variables:
660    TEST_ARCH: arch-ci-linux-intel
661    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
662
663linux-opt-misc:
664  extends:
665    - .stage-3
666    - .linux_test
667  tags:
668    - gce-nfs
669  variables:
670    TEST_ARCH: arch-ci-linux-opt-misc
671    LOAD_MODULES: gcc/6.5.0-57usejd
672
673linux-pkgs-64idx:
674  extends:
675    - .stage-3
676    - .linux_test
677  tags:
678    - gce-nfs
679  variables:
680    TEST_ARCH: arch-ci-linux-pkgs-64idx
681    LOAD_MODULES: cmake/3.15.5-fh74toq
682
683linux-64idx-i8:
684  extends:
685    - .stage-3
686    - .linux_test
687  tags:
688    - gce-nfs
689  variables:
690    TEST_ARCH: arch-ci-linux-64idx-i8
691
692linux-gcc-ifc-cmplx:
693  extends:
694    - .stage-3
695    - .linux_test_nofflags
696  tags:
697    - gce-nfs
698  variables:
699    TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx
700    LOAD_MODULES: intel/19.0-nompilib
701
702linux-opt-cxx-quad:
703  extends:
704    - .stage-3
705    - .linux_test
706  tags:
707    - gce-nfs
708  variables:
709    TEST_ARCH: arch-ci-linux-opt-cxx-quad
710
711linux-ILP64:
712  extends:
713    - .stage-3
714    - .linux_test
715  tags:
716    - gce-nfs
717  variables:
718    TEST_ARCH: arch-ci-linux-ILP64
719    LOAD_MODULES: gcc/6.5.0-57usejd
720
721linux-64idx-i8-uni:
722  extends:
723    - .stage-3
724    - .linux_test
725  tags:
726    - gce-nfs
727  variables:
728    TEST_ARCH: arch-ci-linux-64idx-i8-uni
729
730mswin-intel-cxx-cmplx:
731  extends:
732    - .stage-3
733    - .mswin_test
734  tags:
735    - name:ps5
736  variables:
737    TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx
738
739mswin-intel:
740  extends:
741    - .stage-3
742    - .mswin_test
743  tags:
744    - name:ps5
745  variables:
746    TEST_ARCH: arch-ci-mswin-intel
747
748mswin-opt-impi:
749  extends:
750    - .stage-3
751    - .mswin_test
752  tags:
753    - name:ps4
754  variables:
755    TEST_ARCH: arch-ci-mswin-opt-impi
756    DISABLE_TESTS: 1
757
758opensolaris-pkgs-opt:
759  extends:
760    - .stage-3
761    - .opensolaris_test
762  tags:
763    - name:n-gage
764  variables:
765    TEST_ARCH: arch-ci-opensolaris-pkgs-opt
766
767opensolaris-cmplx-pkgs-dbg:
768  extends:
769    - .stage-3
770    - .opensolaris_test
771  tags:
772    - name:n-gage
773  variables:
774    TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg
775
776opensolaris-misc:
777  extends:
778    - .stage-3
779    - .opensolaris_test
780  tags:
781    - name:n-gage
782  variables:
783    TEST_ARCH: arch-ci-opensolaris-misc
784
785osx-cxx-cmplx-pkgs-dbg:
786  extends:
787    - .stage-3
788    - .osx_test
789  tags:
790    - os:macos
791  variables:
792    TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg
793
794osx-cxx-pkgs-opt:
795  extends:
796    - .stage-3
797    - .osx_test
798  tags:
799    - os:macos, opt
800  variables:
801    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
802    TEST_ARCH: arch-ci-osx-cxx-pkgs-opt
803    MAKE_CXXFLAGS: -Werror -Wno-pass-failed
804
805osx-dbg:
806  extends:
807    - .stage-3
808    - .osx_test
809  tags:
810    - os:macos
811  variables:
812    TEST_ARCH: arch-ci-osx-dbg
813
814osx-xsdk-opt:
815  extends:
816    - .stage-3
817    - .osx_test
818  tags:
819    - os:macos, opt
820  variables:
821    TEST_ARCH: arch-ci-osx-xsdk-opt
822
823# job for analyzing the final coverage results
824analyze-pipeline:
825  extends: .test
826  stage: .post
827  image: jedbrown/mpich-ccache
828  tags:
829    - docker
830  dependencies:
831  variables:
832    PYTHON: python3
833    # Need a dummy TEST_ARCH that comes from artifacts
834    TEST_ARCH: arch-ci-linux-pkgs-gcov
835  allow_failure: true
836  before_script:
837    - date
838  script:
839  - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0
840#  - make mergegcov LOC=$PWD
841  - ${PYTHON} lib/petsc/bin/maint/gcov.py --merge_gcov --loc=${PWD} --petsc_arch ${TEST_ARCH}
842  - ls
843  - ls arch*/*
844  artifacts:
845    name: "$CI_JOB_NAME"
846    when: always
847    paths:
848    - i*.html
849    - arch-*-gcov/*
850    expire_in: 4 days
851#
852#
853# The following tests are experimental; more tests by users at other sites may be added below this.  Experimental test
854# that fail produce a warning, but do not block execution of a pipeline.
855#
856
857.test-experimental:
858  extends: .test
859  allow_failure: true
860
861