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