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