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