xref: /petsc/.gitlab-ci.yml (revision f2cacb80554376ba60c1c183c00cd40ea8a0a80d)
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  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  after_script:
186    - date
187    - ccache --show-stats
188
189.linux_test_nofflags:
190  extends: .linux_test_noflags
191  variables:
192    MAKE_CFLAGS: -Werror
193    MAKE_CXXFLAGS: -Werror
194
195.linux_test:
196  extends: .linux_test_noflags
197  variables:
198    MAKE_CFLAGS: -Werror
199    MAKE_CXXFLAGS: -Werror
200    MAKE_FFLAGS: -Werror
201
202.freebsd_test:
203  variables:
204    MAKE_CFLAGS: -Werror
205    MAKE_CXXFLAGS: -Werror
206    MAKE_FFLAGS: -Werror
207  before_script:
208    - date
209    - hostname
210    - freebsd-version
211    - echo $(sysctl -n hw.ncpu)
212    - ccache --zero-stats
213  after_script:
214    - date
215    - ccache --show-stats
216
217.osx_test:
218  variables:
219    MAKE_CFLAGS: -Werror
220    MAKE_CXXFLAGS: -Werror
221    MAKE_FFLAGS: -Werror
222  before_script:
223    - date
224    - hostname
225    - sw_vers -productVersion
226    - echo $(sysctl -n hw.ncpu)
227    - ccache --zero-stats
228  after_script:
229    - date
230    - ccache --show-stats
231
232.opensolaris_test:
233  before_script:
234    - date
235    - hostname
236    - uname -a
237    - nproc
238    - isainfo -x
239  after_script:
240    - date
241
242.mswin_test:
243  before_script:
244    - date
245    - hostname
246    - uname -a
247    - nproc
248  after_script:
249    - date
250
251#
252# The following tests run as part of stage-2.
253#
254# The tags variable used in the tests below connects the particular test with the runners
255# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd.
256# For example the test linux-gcc-complex-opt  any runner that has the tag 'name:pj02'
257# (in a blue box beneath it)
258#
259
260freebsd-cxx-cmplx-64idx-dbg:
261  extends:
262    - .stage-2
263    - .freebsd_test
264  tags:
265    - os:fbsd
266  variables:
267    TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg
268
269freebsd-c-single-opt:
270  extends:
271    - .stage-2
272    - .freebsd_test
273  tags:
274    - os:fbsd
275  variables:
276    TEST_ARCH: arch-ci-freebsd-c-single-opt
277
278linux-cuda-double:
279  extends:
280    - .stage-2
281    - .linux_test
282  tags:
283    - gpu:nvidia, os:linux, name:p1
284  variables:
285    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0
286    TEST_ARCH: arch-ci-linux-cuda-double
287
288linux-gcc-quad-64idx-dbg:
289  extends:
290    - .stage-2
291    - .linux_test
292  tags:
293    - linux-stage2
294  variables:
295    TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg
296
297linux-gcc-pkgs-opt:
298  extends:
299    - .stage-2
300    - .linux_test
301  tags:
302    - linux-stage2
303  variables:
304    TEST_ARCH: arch-ci-linux-gcc-pkgs-opt
305
306linux-gcc-complex-opt:
307  extends:
308    - .stage-2
309    - .linux_test
310  tags:
311    - linux-stage2
312  variables:
313    TEST_ARCH: arch-ci-linux-gcc-complex-opt
314
315mswin-uni:
316  extends:
317    - .stage-2
318    - .mswin_test
319  tags:
320    - name:ps5-2
321  variables:
322    TEST_ARCH: arch-ci-mswin-uni
323
324mswin-gnu:
325  extends:
326    - .stage-2
327    - .mswin_test
328  tags:
329    - name:ps5-3
330  variables:
331    TEST_ARCH: arch-ci-mswin-gnu
332    MAKE_CFLAGS: -Werror
333    MAKE_CXXFLAGS: -Werror
334    MAKE_FFLAGS: -Werror
335    DISABLE_TESTS: 1
336  artifacts:
337    reports:
338    paths:
339    - arch-*/lib/petsc/conf/*.log
340    expire_in: 4 days
341
342#
343# The following tests run as part of stage-3.
344#
345
346freebsd-cxx-cmplx-pkgs-dbg:
347  extends:
348    - .stage-3
349    - .freebsd_test
350  tags:
351    - os:fbsd
352  variables:
353    TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg
354
355freebsd-cxx-pkgs-opt:
356  extends:
357    - .stage-3
358    - .freebsd_test
359  tags:
360    - os:fbsd
361  variables:
362    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
363    TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt
364
365freebsd-pkgs-opt:
366  extends:
367    - .stage-3
368    - .freebsd_test
369  tags:
370    - os:fbsd
371  variables:
372    TEST_ARCH: arch-ci-freebsd-pkgs-opt
373
374linux-viennacl:
375  extends:
376    - .stage-3
377    - .linux_test
378  tags:
379    - gpu:nvidia, os:linux, name:frog
380  variables:
381    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 -use_gpu_aware_mpi 0
382    TEST_ARCH: arch-ci-linux-viennacl
383
384linux-c-exodus-dbg:
385  extends:
386    - .stage-3
387    - .linux_test
388  tags:
389    - gpu:nvidia, os:linux
390  variables:
391    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 -use_gpu_aware_mpi 0
392    TEST_ARCH: arch-ci-linux-c-exodus-dbg
393
394linux-cuda-complex:
395  extends:
396    - .stage-3
397    - .linux_test
398  tags:
399    - gpu:nvidia, os:linux, name:p1
400  variables:
401    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0
402    TEST_ARCH: arch-ci-linux-cuda-complex
403
404linux-cuda-double-64idx:
405  extends:
406    - .stage-3
407    - .linux_test
408  tags:
409    - gpu:nvidia, os:linux, name:p1
410  variables:
411    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0
412    TEST_ARCH: arch-ci-linux-cuda-double-64idx
413
414linux-cuda-single-cxx:
415  extends:
416    - .stage-3
417    - .linux_test
418  tags:
419    - gpu:nvidia, os:linux, name:frog
420  variables:
421    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 -use_gpu_aware_mpi 0
422    TEST_ARCH: arch-ci-linux-cuda-single-cxx
423
424linux-cuda-uni-pkgs:
425  extends:
426    - .stage-3
427    - .linux_test
428  tags:
429    - gpu:nvidia, os:linux, name:frog
430  variables:
431    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0
432    TEST_ARCH: arch-ci-linux-cuda-uni-pkgs
433
434linux-without-fc:
435  extends:
436    - .stage-3
437    - .linux_test
438  tags:
439    - gce-nfs
440  variables:
441    TEST_ARCH: arch-ci-linux-without-fc
442
443linux-cmplx-single:
444  extends:
445    - .stage-3
446    - .linux_test
447  tags:
448    - name:si
449  variables:
450    TEST_ARCH: arch-ci-linux-cmplx-single
451
452linux-gcc-cxx-avx2:
453  extends:
454    - .stage-3
455    - .linux_test
456  tags:
457    - name:isdp001
458  variables:
459    TEST_ARCH: arch-ci-linux-gcc-cxx-avx2
460
461linux-clang-avx:
462  extends:
463    - .stage-3
464    - .linux_test
465  tags:
466    - name:isdp001
467  variables:
468    TEST_ARCH: arch-ci-linux-clang-avx
469
470linux-knl:
471  extends:
472    - .stage-3
473    - .linux_test
474  tags:
475    - name:isdp001
476  variables:
477    TEST_ARCH: arch-ci-linux-knl
478
479linux-intel-mkl-single:
480  extends:
481    - .stage-3
482    - .linux_test_noflags
483  tags:
484    - name:isdp001
485  variables:
486    TEST_ARCH: arch-ci-linux-intel-mkl-single
487
488linux-cxx-cmplx-pkgs-64idx:
489  extends:
490    - .stage-3
491    - .linux_test
492  tags:
493    - gce-nfs
494  variables:
495    TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx
496    LOAD_MODULES: llvm/9.0.0-7fyffox gcc/8.3.0-fjpc5ys cmake/3.14.2-rl3q676
497
498linux-pkgs-dbg-ftn-interfaces:
499  extends:
500    - .stage-3
501    - .linux_test
502  tags:
503    - gce-nfs
504  variables:
505    TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces
506
507linux-pkgs-cxx-mlib:
508  extends:
509    - .stage-3
510    - .linux_test
511  tags:
512    - gce-nfs
513  variables:
514    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
515    TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib
516
517linux-pkgs-valgrind:
518  extends:
519    - .stage-3
520    - .linux_test
521  tags:
522    - gce-nfs, linux-fast
523  variables:
524    TEST_ARCH: arch-ci-linux-pkgs-valgrind
525    TIMEOUT: 7200
526
527linux-pkgs-opt:
528  extends:
529    - .stage-3
530    - .linux_test
531  tags:
532    - gce-nfs, linux-fast
533  variables:
534    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
535    TEST_ARCH: arch-ci-linux-pkgs-opt
536    LOAD_MODULES: gcc/10.1.0-5hiqhdh
537
538linux-pkgs-gcov:
539  extends:
540    - .stage-3
541    - .linux_test
542  tags:
543    - gce-nfs, linux-gcov
544  variables:
545    TEST_ARCH: arch-ci-linux-pkgs-gcov
546    RUN_GCOV: 1
547
548linux-cmplx-gcov:
549  extends:
550    - .stage-3
551    - .linux_test
552  tags:
553    - gce-nfs, linux-gcov
554  variables:
555    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false
556    TEST_ARCH: arch-ci-linux-cmplx-gcov
557    LOAD_MODULES: gcc/8.3.0-fjpc5ys
558    RUN_GCOV: 1
559
560linux-matlab-ilp64-gcov:
561  extends:
562    - .stage-3
563    - .linux_test
564  tags:
565    - gce-nfs, linux-gcov
566  variables:
567    TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov
568    LOAD_MODULES: matlab/R2018a
569    RUN_GCOV: 1
570  allow_failure: true
571
572linux-gcov:
573  extends:
574    - .stage-3
575    - .linux_test
576  tags:
577    - gce-nfs, linux-gcov
578  variables:
579    TEST_ARCH: arch-ci-linux-gcov
580    RUN_GCOV: 1
581
582linux-pgi:
583  extends:
584    - .stage-3
585    - .linux_test_noflags
586  tags:
587    - gce-nfs, linux-mcpu
588  variables:
589    TEST_ARCH: arch-ci-linux-pgi
590
591linux-nagfor:
592  extends:
593    - .stage-3
594    - .linux_test_nofflags
595  tags:
596    - gce-nfs, linux-mcpu
597  variables:
598    PATH: /usr/lib/ccache:/home/svcpetsc/.local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/nfs/gce/projects/petsc/soft/nag/6.1/bin
599    NAG_KUSARI_FILE: licman1.mcs.anl.gov:7733
600    TEST_ARCH: arch-ci-linux-nagfor
601
602linux-intel-cmplx:
603  extends:
604    - .stage-3
605    - .linux_test_noflags
606  tags:
607    - gce-nfs
608  variables:
609    TEST_ARCH: arch-ci-linux-intel-cmplx
610    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
611
612linux-xsdk-dbg:
613  extends:
614    - .stage-3
615    - .linux_test
616  tags:
617    - gce-nfs
618  variables:
619    TEST_ARCH: arch-ci-linux-xsdk-dbg
620    LOAD_MODULES: gcc/8.3.0-fjpc5ys
621
622linux-analyzer:
623  extends:
624    - .stage-3
625    - .linux_test
626  tags:
627    - gce-nfs
628  variables:
629    TEST_ARCH: arch-ci-linux-analyzer
630
631linux-intel:
632  extends:
633    - .stage-3
634    - .linux_test_nofflags
635  tags:
636    - gce-nfs
637  variables:
638    TEST_ARCH: arch-ci-linux-intel
639    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
640
641linux-opt-misc:
642  extends:
643    - .stage-3
644    - .linux_test
645  tags:
646    - gce-nfs
647  variables:
648    TEST_ARCH: arch-ci-linux-opt-misc
649    LOAD_MODULES: gcc/6.5.0-57usejd
650
651linux-pkgs-64idx:
652  extends:
653    - .stage-3
654    - .linux_test
655  tags:
656    - gce-nfs
657  variables:
658    TEST_ARCH: arch-ci-linux-pkgs-64idx
659    LOAD_MODULES: cmake/3.15.5-fh74toq
660
661linux-64idx-i8:
662  extends:
663    - .stage-3
664    - .linux_test
665  tags:
666    - gce-nfs
667  variables:
668    TEST_ARCH: arch-ci-linux-64idx-i8
669
670linux-gcc-ifc-cmplx:
671  extends:
672    - .stage-3
673    - .linux_test_nofflags
674  tags:
675    - gce-nfs
676  variables:
677    TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx
678    LOAD_MODULES: intel/19.0-nompilib
679
680linux-opt-cxx-quad:
681  extends:
682    - .stage-3
683    - .linux_test
684  tags:
685    - gce-nfs
686  variables:
687    TEST_ARCH: arch-ci-linux-opt-cxx-quad
688
689linux-ILP64:
690  extends:
691    - .stage-3
692    - .linux_test
693  tags:
694    - gce-nfs
695  variables:
696    TEST_ARCH: arch-ci-linux-ILP64
697    LOAD_MODULES: gcc/6.5.0-57usejd
698
699linux-64idx-i8-uni:
700  extends:
701    - .stage-3
702    - .linux_test
703  tags:
704    - gce-nfs
705  variables:
706    TEST_ARCH: arch-ci-linux-64idx-i8-uni
707
708mswin-intel-cxx-cmplx:
709  extends:
710    - .stage-3
711    - .mswin_test
712  tags:
713    - name:ps5
714  variables:
715    TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx
716
717mswin-intel:
718  extends:
719    - .stage-3
720    - .mswin_test
721  tags:
722    - name:ps5
723  variables:
724    TEST_ARCH: arch-ci-mswin-intel
725
726mswin-opt-impi:
727  extends:
728    - .stage-3
729    - .mswin_test
730  tags:
731    - name:ps4
732  variables:
733    TEST_ARCH: arch-ci-mswin-opt-impi
734  allow_failure: true
735
736opensolaris-pkgs-opt:
737  extends:
738    - .stage-3
739    - .opensolaris_test
740  tags:
741    - name:n-gage
742  variables:
743    TEST_ARCH: arch-ci-opensolaris-pkgs-opt
744
745opensolaris-cmplx-pkgs-dbg:
746  extends:
747    - .stage-3
748    - .opensolaris_test
749  tags:
750    - name:n-gage
751  variables:
752    TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg
753
754opensolaris-misc:
755  extends:
756    - .stage-3
757    - .opensolaris_test
758  tags:
759    - name:n-gage
760  variables:
761    TEST_ARCH: arch-ci-opensolaris-misc
762
763osx-cxx-cmplx-pkgs-dbg:
764  extends:
765    - .stage-3
766    - .osx_test
767  tags:
768    - os:macos
769  variables:
770    TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg
771
772osx-cxx-pkgs-opt:
773  extends:
774    - .stage-3
775    - .osx_test
776  tags:
777    - os:macos, opt
778  variables:
779    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
780    TEST_ARCH: arch-ci-osx-cxx-pkgs-opt
781    MAKE_CXXFLAGS: -Werror -Wno-pass-failed
782
783osx-dbg:
784  extends:
785    - .stage-3
786    - .osx_test
787  tags:
788    - os:macos
789  variables:
790    TEST_ARCH: arch-ci-osx-dbg
791
792osx-xsdk-opt:
793  extends:
794    - .stage-3
795    - .osx_test
796  tags:
797    - os:macos, opt
798  variables:
799    TEST_ARCH: arch-ci-osx-xsdk-opt
800
801# job for analyzing the final coverage results
802analyze-pipeline:
803  extends: .test
804  stage: .post
805  image: jedbrown/mpich-ccache
806  tags:
807    - docker
808  dependencies:
809  variables:
810    PYTHON: python3
811    # Need a dummy TEST_ARCH that comes from artifacts
812    TEST_ARCH: arch-ci-linux-pkgs-gcov
813  allow_failure: true
814  before_script:
815    - date
816  script:
817  - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0
818#  - make mergegcov LOC=$PWD
819  - ${PYTHON} lib/petsc/bin/maint/gcov.py --merge_gcov --loc=${PWD} --petsc_arch ${TEST_ARCH}
820  - ls
821  - ls arch*/*
822  artifacts:
823    name: "$CI_JOB_NAME"
824    when: always
825    paths:
826    - i*.html
827    - arch-*-gcov/*
828    expire_in: 4 days
829#
830#
831# The following tests are experimental; more tests by users at other sites may be added below this.  Experimental test
832# that fail produce a warning, but do not block execution of a pipeline.
833#
834
835.test-experimental:
836  extends: .test
837  allow_failure: true
838
839