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