xref: /petsc/.gitlab-ci.yml (revision 117ef88edefbfc12e7c19efe87a19a2e1b0acd4f)
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-double-64idx:
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-double-64idx
405
406linux-cuda-single-cxx:
407  extends:
408    - .stage-3
409    - .linux_test
410  tags:
411    - gpu:nvidia, os:linux
412  variables:
413    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 -use_gpu_aware_mpi 0
414    TEST_ARCH: arch-ci-linux-cuda-single-cxx
415
416linux-without-fc:
417  extends:
418    - .stage-3
419    - .linux_test
420  tags:
421    - name:si
422  variables:
423    TEST_ARCH: arch-ci-linux-without-fc
424
425linux-cmplx-single:
426  extends:
427    - .stage-3
428    - .linux_test
429  tags:
430    - name:si
431  variables:
432    TEST_ARCH: arch-ci-linux-cmplx-single
433
434linux-gcc-cxx-avx2:
435  extends:
436    - .stage-3
437    - .linux_test
438  tags:
439    - name:isdp001
440  variables:
441    TEST_ARCH: arch-ci-linux-gcc-cxx-avx2
442
443linux-clang-avx:
444  extends:
445    - .stage-3
446    - .linux_test
447  tags:
448    - name:isdp001
449  variables:
450    TEST_ARCH: arch-ci-linux-clang-avx
451
452linux-knl:
453  extends:
454    - .stage-3
455    - .linux_test
456  tags:
457    - name:isdp001
458  variables:
459    TEST_ARCH: arch-ci-linux-knl
460
461linux-intel-mkl-single:
462  extends:
463    - .stage-3
464    - .linux_test_noflags
465  tags:
466    - name:isdp001
467  variables:
468    TEST_ARCH: arch-ci-linux-intel-mkl-single
469
470linux-cxx-cmplx-pkgs-64idx:
471  extends:
472    - .stage-3
473    - .linux_test
474  tags:
475    - name:pj01
476  variables:
477    TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx
478
479linux-pkgs-dbg-ftn-interfaces:
480  extends:
481    - .stage-3
482    - .linux_test
483  tags:
484    - name:pj02
485  variables:
486    TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces
487
488linux-pkgs-cxx-mlib:
489  extends:
490    - .stage-3
491    - .linux_test
492  tags:
493    - name:pj02
494  variables:
495    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
496    TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib
497
498linux-pkgs-valgrind:
499  extends:
500    - .stage-3
501    - .linux_test
502  tags:
503    - gce-nfs, linux-fast
504  variables:
505    TEST_ARCH: arch-ci-linux-pkgs-valgrind
506    TIMEOUT: 7200
507
508linux-pkgs-opt:
509  extends:
510    - .stage-3
511    - .linux_test
512  tags:
513    - gce-nfs, linux-fast
514  variables:
515    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
516    TEST_ARCH: arch-ci-linux-pkgs-opt
517
518linux-pkgs-gcov:
519  extends:
520    - .stage-3
521    - .linux_test
522  tags:
523    - gce-nfs, linux-gcov
524  variables:
525    TEST_ARCH: arch-ci-linux-pkgs-gcov
526  after_script:
527    - make gcov
528  artifacts:
529    when: always
530    paths:
531    - ${TEST_ARCH}/lib/petsc/conf/*.log
532    - ${TEST_ARCH}/tests/testresults.xml
533    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
534    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
535    - ${TEST_ARCH}/gcov.tar.gz
536    expire_in: 4 days
537
538linux-cmplx-gcov:
539  extends:
540    - .stage-3
541    - .linux_test
542  tags:
543    - gce-nfs, linux-gcov
544  variables:
545    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false
546    TEST_ARCH: arch-ci-linux-cmplx-gcov
547    LOAD_MODULES: gcc/8.3.0-fjpc5ys
548  after_script:
549    - make gcov
550  artifacts:
551    when: always
552    paths:
553    - ${TEST_ARCH}/lib/petsc/conf/*.log
554    - ${TEST_ARCH}/tests/testresults.xml
555    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
556    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
557    - ${TEST_ARCH}/gcov.tar.gz
558    expire_in: 4 days
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  after_script:
570    - make gcov
571  artifacts:
572    when: always
573    paths:
574    - ${TEST_ARCH}/lib/petsc/conf/*.log
575    - ${TEST_ARCH}/tests/testresults.xml
576    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
577    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
578    - ${TEST_ARCH}/gcov.tar.gz
579    expire_in: 4 days
580  allow_failure: true
581
582linux-gcov:
583  extends:
584    - .stage-3
585    - .linux_test
586  tags:
587    - gce-nfs, linux-gcov
588  variables:
589    TEST_ARCH: arch-ci-linux-gcov
590  after_script:
591    - make gcov
592  artifacts:
593    when: always
594    paths:
595    - ${TEST_ARCH}/lib/petsc/conf/*.log
596    - ${TEST_ARCH}/tests/testresults.xml
597    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
598    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
599    - ${TEST_ARCH}/gcov.tar.gz
600    expire_in: 4 days
601
602linux-pgi:
603  extends:
604    - .stage-3
605    - .linux_test_noflags
606  tags:
607    - gce-nfs, linux-mcpu
608  variables:
609    TEST_ARCH: arch-ci-linux-pgi
610
611linux-intel-cmplx:
612  extends:
613    - .stage-3
614    - .linux_test_noflags
615  tags:
616    - gce-nfs
617  variables:
618    TEST_ARCH: arch-ci-linux-intel-cmplx
619    LOAD_MODULES: intel-mkl/19.5 intel/19.0
620
621linux-xsdk-dbg:
622  extends:
623    - .stage-3
624    - .linux_test
625  tags:
626    - gce-nfs
627  variables:
628    TEST_ARCH: arch-ci-linux-xsdk-dbg
629    LOAD_MODULES: gcc/8.3.0-fjpc5ys
630
631linux-analyzer:
632  extends:
633    - .stage-3
634    - .linux_test
635  tags:
636    - gce-nfs
637  variables:
638    TEST_ARCH: arch-ci-linux-analyzer
639
640linux-intel:
641  extends:
642    - .stage-3
643    - .linux_test_nofflags
644  tags:
645    - gce-nfs
646  variables:
647    TEST_ARCH: arch-ci-linux-intel
648    LOAD_MODULES: intel-mkl/19.5 intel/19.0
649
650linux-opt-misc:
651  extends:
652    - .stage-3
653    - .linux_test
654  tags:
655    - gce-nfs
656  variables:
657    TEST_ARCH: arch-ci-linux-opt-misc
658    LOAD_MODULES: gcc/6.5.0-57usejd
659
660linux-pkgs-64idx:
661  extends:
662    - .stage-3
663    - .linux_test
664  tags:
665    - gce-nfs
666  variables:
667    TEST_ARCH: arch-ci-linux-pkgs-64idx
668    LOAD_MODULES: cmake/3.15.5-fh74toq
669
670linux-64idx-i8:
671  extends:
672    - .stage-3
673    - .linux_test
674  tags:
675    - gce-nfs
676  variables:
677    TEST_ARCH: arch-ci-linux-64idx-i8
678
679linux-gcc-ifc-cmplx:
680  extends:
681    - .stage-3
682    - .linux_test_nofflags
683  tags:
684    - gce-nfs
685  variables:
686    TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx
687    LOAD_MODULES: intel/19.0
688
689linux-nagfor:
690  extends:
691    - .stage-3
692    - .linux_test_nofflags
693  tags:
694    - mcs-nfs
695  variables:
696    TEST_ARCH: arch-ci-linux-nagfor
697
698linux-opt-cxx-quad:
699  extends:
700    - .stage-3
701    - .linux_test
702  tags:
703    - gce-nfs
704  variables:
705    TEST_ARCH: arch-ci-linux-opt-cxx-quad
706
707linux-ILP64:
708  extends:
709    - .stage-3
710    - .linux_test
711  tags:
712    - gce-nfs
713  variables:
714    TEST_ARCH: arch-ci-linux-ILP64
715    LOAD_MODULES: gcc/6.5.0-57usejd
716
717linux-uni-pkgs:
718  extends:
719    - .stage-3
720    - .linux_test
721  tags:
722    - gce-nfs
723  variables:
724    TEST_ARCH: arch-ci-linux-uni-pkgs
725    LOAD_MODULES: llvm/9.0.0-7fyffox cmake/3.14.2-rl3q676
726
727linux-64idx-i8-uni:
728  extends:
729    - .stage-3
730    - .linux_test
731  tags:
732    - gce-nfs
733  variables:
734    TEST_ARCH: arch-ci-linux-64idx-i8-uni
735
736mswin-intel-cxx-cmplx:
737  extends:
738    - .stage-3
739    - .mswin_test
740  tags:
741    - name:ps5
742  variables:
743    TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx
744
745mswin-intel:
746  extends:
747    - .stage-3
748    - .mswin_test
749  tags:
750    - name:ps5
751  variables:
752    TEST_ARCH: arch-ci-mswin-intel
753
754mswin-opt-impi:
755  extends:
756    - .stage-3
757    - .mswin_test
758  tags:
759    - name:ps4
760  variables:
761    TEST_ARCH: arch-ci-mswin-opt-impi
762  allow_failure: true
763
764opensolaris-pkgs-opt:
765  extends:
766    - .stage-3
767    - .opensolaris_test
768  tags:
769    - name:n-gage
770  variables:
771    TEST_ARCH: arch-ci-opensolaris-pkgs-opt
772
773opensolaris-cmplx-pkgs-dbg:
774  extends:
775    - .stage-3
776    - .opensolaris_test
777  tags:
778    - name:n-gage
779  variables:
780    TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg
781
782opensolaris-misc:
783  extends:
784    - .stage-3
785    - .opensolaris_test
786  tags:
787    - name:n-gage
788  variables:
789    TEST_ARCH: arch-ci-opensolaris-misc
790
791osx-cxx-cmplx-pkgs-dbg:
792  extends:
793    - .stage-3
794    - .osx_test
795  tags:
796    - os:macos
797  variables:
798    TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg
799
800osx-cxx-pkgs-opt:
801  extends:
802    - .stage-3
803    - .osx_test
804  tags:
805    - os:macos, opt
806  variables:
807    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
808    TEST_ARCH: arch-ci-osx-cxx-pkgs-opt
809    MAKE_CXXFLAGS: -Werror -Wno-pass-failed
810
811osx-dbg:
812  extends:
813    - .stage-3
814    - .osx_test
815  tags:
816    - os:macos
817  variables:
818    TEST_ARCH: arch-ci-osx-dbg
819
820osx-xsdk-opt:
821  extends:
822    - .stage-3
823    - .osx_test
824  tags:
825    - os:macos, opt
826  variables:
827    TEST_ARCH: arch-ci-osx-xsdk-opt
828
829# job for analyzing the final coverage results
830analyze-pipeline:
831  extends: .test
832  stage: .post
833  image: jedbrown/mpich-ccache
834  tags:
835    - docker
836  dependencies:
837  variables:
838    PYTHON: python3
839    # Need a dummy TEST_ARCH that comes from artifacts
840    TEST_ARCH: arch-ci-linux-pkgs-gcov
841  allow_failure: true
842  before_script:
843    - date
844  script:
845  - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0
846#  - make mergegcov LOC=$PWD
847  - ${PYTHON} lib/petsc/bin/maint/gcov.py --merge_gcov --loc=${PWD} --petsc_arch ${TEST_ARCH}
848  - ls
849  - ls arch*/*
850  artifacts:
851    name: "$CI_JOB_NAME"
852    when: always
853    paths:
854    - i*.html
855    - arch-*-gcov/*
856    expire_in: 4 days
857#
858#
859# The following tests are experimental; more tests by users at other sites may be added below this.  Experimental test
860# that fail produce a warning, but do not block execution of a pipeline.
861#
862
863.test-experimental:
864  extends: .test
865  allow_failure: true
866
867