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