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