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