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