xref: /petsc/.gitlab-ci.yml (revision 7fd2d3dbf8105d3f2e002a5ca11f019cd0ad7420)
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    - printf "PATH:$PATH\n"
64    - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n"
65    - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS}
66    - make CFLAGS=-Werror CXXFLAGS="-Werror -Wzero-as-null-pointer-constant" FFLAGS=-Werror
67    - make CFLAGS=-Werror CXXFLAGS=-Werror FFLAGS=-Werror allgtests-tap search="${TEST_SEARCH}" TIMEOUT=${TIMEOUT}
68  after_script:
69    - date
70    - ccache --show-stats
71  artifacts:
72    reports:
73      junit: arch-*/tests/testresults.xml
74    name: "$CI_JOB_NAME"
75    when: always
76    paths:
77    - arch-*/lib/petsc/conf/*.log
78    - arch-*/lib/pkgconfig/PETSc.pc
79    - arch-*/tests/testresults.xml
80    - arch-*/tests/test_*_tap.log
81    - arch-*/tests/test_*_err.log
82    expire_in: 4 days
83
84#
85# The following tests run on the cloud as part of stage-1.
86#
87
88mpich-cxx-py3:
89  extends: .stage-1
90  tags:
91  - stage1, fedora
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_PETSC4PY_TESTS+x} ]; then if [ -z ${ENABLE_PETSC4PY_LDPRELOAD+x} ]; then echo "NOT using LD_PRELOAD"; make petsc4pytest; else echo "using LD_PRELOAD"; LD_PRELOAD=${PWD}/${TEST_ARCH}/lib/libpetsc.so make petsc4pytest; fi; fi
162    - if [ -z ${DISABLE_TESTS+x} ]; then make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" cleantest allgtests-tap TIMEOUT=${TIMEOUT}; fi
163    - if [ ! -z ${RUN_GCOV+x} ]; then make gcov && bash <(curl -s https://codecov.io/bash) -c > /dev/null 2>&1; fi
164  artifacts:
165    reports:
166      junit: ${TEST_ARCH}/tests/testresults.xml
167    name: "$CI_JOB_NAME"
168    when: always
169    paths:
170    - ${TEST_ARCH}/lib/petsc/conf/*.log
171    - ${TEST_ARCH}/lib/pkgconfig/PETSc.pc
172    - ${TEST_ARCH}/tests/testresults.xml
173    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
174    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
175    - ${TEST_ARCH}/gcov.tar.gz
176    expire_in: 4 days
177  variables:
178    OPENBLAS_NUM_THREADS: 1
179
180.stage-2:
181  extends: .stage-23
182  stage: stage-2
183
184.stage-3:
185  extends: .stage-23
186  stage: stage-3
187
188#
189# The following provide templates for various OSes for pre/post info
190#
191
192.linux_test_noflags:
193  before_script:
194    - date
195    - hostname
196    - grep PRETTY_NAME /etc/os-release
197    - nproc
198    - lscpu
199    - ccache --zero-stats
200    - if [ ! -z ${LOAD_MODULES+x} ]; then module --trace load ${LOAD_MODULES}; module list; fi
201    - if [ ! -z ${INIT_SCRIPT+x} ]; then echo "sourcing ${INIT_SCRIPT}"; source ${INIT_SCRIPT}; fi
202  after_script:
203    - date
204    - ccache --show-stats
205
206.linux_test_nofflags:
207  extends: .linux_test_noflags
208  variables:
209    MAKE_CFLAGS: -Werror
210    MAKE_CXXFLAGS: -Werror
211
212.linux_test:
213  extends: .linux_test_noflags
214  variables:
215    MAKE_CFLAGS: -Werror
216    MAKE_CXXFLAGS: -Werror
217    MAKE_FFLAGS: -Werror
218
219.freebsd_test:
220  variables:
221    MAKE_CFLAGS: -Werror
222    MAKE_CXXFLAGS: -Werror
223    MAKE_FFLAGS: -Werror
224  before_script:
225    - date
226    - hostname
227    - freebsd-version
228    - echo $(sysctl -n hw.ncpu)
229    - ccache --zero-stats
230  after_script:
231    - date
232    - ccache --show-stats
233
234.osx_test:
235  variables:
236    MAKE_CFLAGS: -Werror
237    MAKE_CXXFLAGS: -Werror
238    MAKE_FFLAGS: -Werror
239  before_script:
240    - date
241    - hostname
242    - sw_vers -productVersion
243    - echo $(sysctl -n hw.ncpu)
244    - ccache --zero-stats
245  after_script:
246    - date
247    - ccache --show-stats
248
249.opensolaris_test:
250  before_script:
251    - date
252    - hostname
253    - uname -a
254    - nproc
255    - isainfo -x
256  after_script:
257    - date
258
259.mswin_test:
260  before_script:
261    - date
262    - hostname
263    - uname -a
264    - nproc
265  after_script:
266    - date
267
268#
269# The following tests run as part of stage-2.
270#
271# The tags variable used in the tests below connects the particular test with the runners
272# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd.
273# For example the test linux-gcc-complex-opt  any runner that has the tag 'name:pj02'
274# (in a blue box beneath it)
275#
276
277freebsd-cxx-cmplx-64idx-dbg:
278  extends:
279    - .stage-2
280    - .freebsd_test
281  tags:
282    - os:fbsd
283  variables:
284    TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg
285
286freebsd-c-single-opt:
287  extends:
288    - .stage-2
289    - .freebsd_test
290  tags:
291    - os:fbsd
292  variables:
293    TEST_ARCH: arch-ci-freebsd-c-single-opt
294
295linux-cuda-double:
296  extends:
297    - .stage-2
298    - .linux_test
299  tags:
300    - gpu:nvidia, os:linux, name:p1
301  variables:
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-c-exodus-dbg:
412  extends:
413    - .stage-3
414    - .linux_test
415  tags:
416    - gpu:nvidia, os:linux, name:frog
417  variables:
418    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
419    TEST_ARCH: arch-ci-linux-c-exodus-dbg
420    RUN_GCOV: 1
421
422linux-cuda-complex:
423  extends:
424    - .stage-3
425    - .linux_test
426  tags:
427    - gpu:nvidia, os:linux, name:p1
428  variables:
429    TEST_ARCH: arch-ci-linux-cuda-complex
430
431linux-cuda-double-64idx:
432  extends:
433    - .stage-3
434    - .linux_test
435  tags:
436    - gpu:nvidia, os:linux, name:p1
437  variables:
438    TEST_ARCH: arch-ci-linux-cuda-double-64idx
439
440linux-cuda-single-cxx:
441  extends:
442    - .stage-3
443    - .linux_test
444  tags:
445    - gpu:nvidia, os:linux, name:frog
446  variables:
447    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
448    TEST_ARCH: arch-ci-linux-cuda-single-cxx
449
450linux-cuda-uni-pkgs:
451  extends:
452    - .stage-3
453    - .linux_test
454  tags:
455    - gpu:nvidia, os:linux, name:frog
456  variables:
457    TEST_ARCH: arch-ci-linux-cuda-uni-pkgs
458
459linux-viennacl:
460  extends:
461    - .stage-3
462    - .linux_test
463  tags:
464    - gpu:nvidia, os:linux
465  variables:
466    TEST_ARCH: arch-ci-linux-viennacl
467    MAKE_CXXFLAGS: -Werror -Wno-ignored-attributes
468
469linux-viennacl-cuda:
470  extends:
471    - .stage-3
472    - .linux_test
473  tags:
474    - gpu:nvidia, os:linux
475  variables:
476    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0
477    TEST_ARCH: arch-ci-linux-viennacl-cuda
478    MAKE_CXXFLAGS: -Werror -Wno-ignored-attributes -Wno-parentheses
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    ENABLE_PETSC4PY_LDPRELOAD: 1
658
659linux-xsdk-dbg:
660  extends:
661    - .stage-3
662    - .linux_test
663  tags:
664    - gce-nfs
665  variables:
666    TEST_ARCH: arch-ci-linux-xsdk-dbg
667    LOAD_MODULES: gcc/8.3.0-fjpc5ys
668
669linux-analyzer:
670  extends:
671    - .stage-3
672    - .linux_test
673  tags:
674    - gce-nfs
675  variables:
676    TEST_ARCH: arch-ci-linux-analyzer
677
678linux-intel:
679  extends:
680    - .stage-3
681    - .linux_test_nofflags
682  tags:
683    - gce-nfs
684  variables:
685    TEST_ARCH: arch-ci-linux-intel
686    LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib
687
688linux-opt-misc:
689  extends:
690    - .stage-3
691    - .linux_test
692  tags:
693    - gce-nfs
694  variables:
695    TEST_ARCH: arch-ci-linux-opt-misc
696    LOAD_MODULES: gcc/6.5.0-57usejd
697
698linux-pkgs-64idx:
699  extends:
700    - .stage-3
701    - .linux_test
702  tags:
703    - gce-nfs
704  variables:
705    TEST_ARCH: arch-ci-linux-pkgs-64idx
706    LOAD_MODULES: cmake/3.15.5-fh74toq
707
708linux-64idx-i8:
709  extends:
710    - .stage-3
711    - .linux_test
712  tags:
713    - gce-nfs
714  variables:
715    TEST_ARCH: arch-ci-linux-64idx-i8
716
717linux-gcc-ifc-cmplx:
718  extends:
719    - .stage-3
720    - .linux_test_nofflags
721  tags:
722    - gce-nfs
723  variables:
724    TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx
725    LOAD_MODULES: intel/19.0-nompilib
726
727linux-opt-cxx-quad:
728  extends:
729    - .stage-3
730    - .linux_test
731  tags:
732    - gce-nfs
733  variables:
734    TEST_ARCH: arch-ci-linux-opt-cxx-quad
735
736linux-ILP64:
737  extends:
738    - .stage-3
739    - .linux_test
740  tags:
741    - gce-nfs
742  variables:
743    TEST_ARCH: arch-ci-linux-ILP64
744    LOAD_MODULES: gcc/6.5.0-57usejd
745
746linux-64idx-i8-uni:
747  extends:
748    - .stage-3
749    - .linux_test
750  tags:
751    - gce-nfs
752  variables:
753    TEST_ARCH: arch-ci-linux-64idx-i8-uni
754
755mswin-intel-cxx-cmplx:
756  extends:
757    - .stage-3
758    - .mswin_test
759  tags:
760    - name:ps5
761  variables:
762    TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx
763
764mswin-intel:
765  extends:
766    - .stage-3
767    - .mswin_test
768  tags:
769    - name:ps5
770  variables:
771    TEST_ARCH: arch-ci-mswin-intel
772
773mswin-opt-impi:
774  extends:
775    - .stage-3
776    - .mswin_test
777  tags:
778    - name:ps4
779  variables:
780    TEST_ARCH: arch-ci-mswin-opt-impi
781    DISABLE_TESTS: 1
782
783opensolaris-pkgs-opt:
784  extends:
785    - .stage-3
786    - .opensolaris_test
787  tags:
788    - name:n-gage
789  variables:
790    TEST_ARCH: arch-ci-opensolaris-pkgs-opt
791
792opensolaris-cmplx-pkgs-dbg:
793  extends:
794    - .stage-3
795    - .opensolaris_test
796  tags:
797    - name:n-gage
798  variables:
799    TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg
800
801opensolaris-misc:
802  extends:
803    - .stage-3
804    - .opensolaris_test
805  tags:
806    - name:n-gage
807  variables:
808    TEST_ARCH: arch-ci-opensolaris-misc
809
810osx-cxx-cmplx-pkgs-dbg:
811  extends:
812    - .stage-3
813    - .osx_test
814  tags:
815    - os:macos
816  variables:
817    TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg
818
819osx-cxx-pkgs-opt:
820  extends:
821    - .stage-3
822    - .osx_test
823  tags:
824    - os:macos, opt
825  variables:
826    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
827    TEST_ARCH: arch-ci-osx-cxx-pkgs-opt
828    MAKE_CXXFLAGS: -Werror -Wno-pass-failed
829
830osx-dbg:
831  extends:
832    - .stage-3
833    - .osx_test
834  tags:
835    - os:macos
836  variables:
837    TEST_ARCH: arch-ci-osx-dbg
838
839osx-xsdk-opt:
840  extends:
841    - .stage-3
842    - .osx_test
843  tags:
844    - os:macos, opt
845  variables:
846    TEST_ARCH: arch-ci-osx-xsdk-opt
847
848# job for analyzing the final coverage results
849analyze-pipeline:
850  extends: .test
851  stage: .post
852  tags:
853    - gce-nfs
854  dependencies:
855    - linux-c-exodus-dbg
856    - linux-pkgs-gcov
857    - linux-cmplx-gcov
858    - linux-matlab-ilp64-gcov
859    - linux-gcov
860  variables:
861    PETSC_ARCH: arch-ci-analyze-pipeline
862  before_script:
863    - date
864    - hostname
865  script:
866  - git fetch --unshallow --no-tags origin +master:remotes/origin/master
867  - ./configure --with-mpi=0 --with-cxx=0 --with-c2html
868  - make srchtml
869  - make mergegcov
870  artifacts:
871    name: "$CI_JOB_NAME"
872    when: always
873    paths:
874    - arch-ci-analyze-pipeline/*
875    expire_in: 4 days
876#
877#
878# The following tests are experimental; more tests by users at other sites may be added below this.  Experimental test
879# that fail produce a warning, but do not block execution of a pipeline.
880#
881
882.test-experimental:
883  extends: .test
884  allow_failure: true
885
886