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