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