xref: /petsc/.gitlab-ci.yml (revision cc9df77e78d3dc3cdc08dd390383483966f6a2a2)
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
112c99-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=c99
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-complex:
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-complex
406
407linux-cuda-double-64idx:
408  extends:
409    - .stage-3
410    - .linux_test
411  tags:
412    - gpu:nvidia, os:linux, name:p1
413  variables:
414    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0
415    TEST_ARCH: arch-ci-linux-cuda-double-64idx
416
417linux-cuda-single-cxx:
418  extends:
419    - .stage-3
420    - .linux_test
421  tags:
422    - gpu:nvidia, os:linux
423  variables:
424    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 -use_gpu_aware_mpi 0
425    TEST_ARCH: arch-ci-linux-cuda-single-cxx
426
427linux-without-fc:
428  extends:
429    - .stage-3
430    - .linux_test
431  tags:
432    - name:si
433  variables:
434    TEST_ARCH: arch-ci-linux-without-fc
435
436linux-cmplx-single:
437  extends:
438    - .stage-3
439    - .linux_test
440  tags:
441    - name:si
442  variables:
443    TEST_ARCH: arch-ci-linux-cmplx-single
444
445linux-gcc-cxx-avx2:
446  extends:
447    - .stage-3
448    - .linux_test
449  tags:
450    - name:isdp001
451  variables:
452    TEST_ARCH: arch-ci-linux-gcc-cxx-avx2
453
454linux-clang-avx:
455  extends:
456    - .stage-3
457    - .linux_test
458  tags:
459    - name:isdp001
460  variables:
461    TEST_ARCH: arch-ci-linux-clang-avx
462
463linux-knl:
464  extends:
465    - .stage-3
466    - .linux_test
467  tags:
468    - name:isdp001
469  variables:
470    TEST_ARCH: arch-ci-linux-knl
471
472linux-intel-mkl-single:
473  extends:
474    - .stage-3
475    - .linux_test_noflags
476  tags:
477    - name:isdp001
478  variables:
479    TEST_ARCH: arch-ci-linux-intel-mkl-single
480
481linux-cxx-cmplx-pkgs-64idx:
482  extends:
483    - .stage-3
484    - .linux_test
485  tags:
486    - name:pj01
487  variables:
488    TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx
489
490linux-pkgs-dbg-ftn-interfaces:
491  extends:
492    - .stage-3
493    - .linux_test
494  tags:
495    - name:pj02
496  variables:
497    TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces
498
499linux-pkgs-cxx-mlib:
500  extends:
501    - .stage-3
502    - .linux_test
503  tags:
504    - name:pj02
505  variables:
506    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
507    TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib
508
509linux-pkgs-valgrind:
510  extends:
511    - .stage-3
512    - .linux_test
513  tags:
514    - gce-nfs, linux-fast
515  variables:
516    TEST_ARCH: arch-ci-linux-pkgs-valgrind
517    TIMEOUT: 7200
518
519linux-pkgs-opt:
520  extends:
521    - .stage-3
522    - .linux_test
523  tags:
524    - gce-nfs, linux-fast
525  variables:
526    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent
527    TEST_ARCH: arch-ci-linux-pkgs-opt
528
529linux-pkgs-gcov:
530  extends:
531    - .stage-3
532    - .linux_test
533  tags:
534    - gce-nfs, linux-gcov
535  variables:
536    TEST_ARCH: arch-ci-linux-pkgs-gcov
537  after_script:
538    - make gcov
539  artifacts:
540    when: always
541    paths:
542    - ${TEST_ARCH}/lib/petsc/conf/*.log
543    - ${TEST_ARCH}/tests/testresults.xml
544    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
545    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
546    - ${TEST_ARCH}/gcov.tar.gz
547    expire_in: 4 days
548
549linux-cmplx-gcov:
550  extends:
551    - .stage-3
552    - .linux_test
553  tags:
554    - gce-nfs, linux-gcov
555  variables:
556    PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false
557    TEST_ARCH: arch-ci-linux-cmplx-gcov
558    LOAD_MODULES: gcc/8.3.0-fjpc5ys
559  after_script:
560    - make gcov
561  artifacts:
562    when: always
563    paths:
564    - ${TEST_ARCH}/lib/petsc/conf/*.log
565    - ${TEST_ARCH}/tests/testresults.xml
566    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
567    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
568    - ${TEST_ARCH}/gcov.tar.gz
569    expire_in: 4 days
570
571linux-matlab-ilp64-gcov:
572  extends:
573    - .stage-3
574    - .linux_test
575  tags:
576    - gce-nfs, linux-gcov
577  variables:
578    TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov
579    LOAD_MODULES: matlab/R2018a
580  after_script:
581    - make gcov
582  artifacts:
583    when: always
584    paths:
585    - ${TEST_ARCH}/lib/petsc/conf/*.log
586    - ${TEST_ARCH}/tests/testresults.xml
587    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
588    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
589    - ${TEST_ARCH}/gcov.tar.gz
590    expire_in: 4 days
591  allow_failure: true
592
593linux-gcov:
594  extends:
595    - .stage-3
596    - .linux_test
597  tags:
598    - gce-nfs, linux-gcov
599  variables:
600    TEST_ARCH: arch-ci-linux-gcov
601  after_script:
602    - make gcov
603  artifacts:
604    when: always
605    paths:
606    - ${TEST_ARCH}/lib/petsc/conf/*.log
607    - ${TEST_ARCH}/tests/testresults.xml
608    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log
609    - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log
610    - ${TEST_ARCH}/gcov.tar.gz
611    expire_in: 4 days
612
613linux-pgi:
614  extends:
615    - .stage-3
616    - .linux_test_noflags
617  tags:
618    - gce-nfs, linux-mcpu
619  variables:
620    TEST_ARCH: arch-ci-linux-pgi
621
622linux-intel-cmplx:
623  extends:
624    - .stage-3
625    - .linux_test_noflags
626  tags:
627    - gce-nfs
628  variables:
629    TEST_ARCH: arch-ci-linux-intel-cmplx
630    LOAD_MODULES: intel-mkl/19.5 intel/19.0
631
632linux-xsdk-dbg:
633  extends:
634    - .stage-3
635    - .linux_test
636  tags:
637    - gce-nfs
638  variables:
639    TEST_ARCH: arch-ci-linux-xsdk-dbg
640    LOAD_MODULES: gcc/8.3.0-fjpc5ys
641
642linux-analyzer:
643  extends:
644    - .stage-3
645    - .linux_test
646  tags:
647    - gce-nfs
648  variables:
649    TEST_ARCH: arch-ci-linux-analyzer
650
651linux-intel:
652  extends:
653    - .stage-3
654    - .linux_test_nofflags
655  tags:
656    - gce-nfs
657  variables:
658    TEST_ARCH: arch-ci-linux-intel
659    LOAD_MODULES: intel-mkl/19.5 intel/19.0
660
661linux-opt-misc:
662  extends:
663    - .stage-3
664    - .linux_test
665  tags:
666    - gce-nfs
667  variables:
668    TEST_ARCH: arch-ci-linux-opt-misc
669    LOAD_MODULES: gcc/6.5.0-57usejd
670
671linux-pkgs-64idx:
672  extends:
673    - .stage-3
674    - .linux_test
675  tags:
676    - gce-nfs
677  variables:
678    TEST_ARCH: arch-ci-linux-pkgs-64idx
679    LOAD_MODULES: cmake/3.15.5-fh74toq
680
681linux-64idx-i8:
682  extends:
683    - .stage-3
684    - .linux_test
685  tags:
686    - gce-nfs
687  variables:
688    TEST_ARCH: arch-ci-linux-64idx-i8
689
690linux-gcc-ifc-cmplx:
691  extends:
692    - .stage-3
693    - .linux_test_nofflags
694  tags:
695    - gce-nfs
696  variables:
697    TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx
698    LOAD_MODULES: intel/19.0
699
700linux-nagfor:
701  extends:
702    - .stage-3
703    - .linux_test_nofflags
704  tags:
705    - mcs-nfs
706  variables:
707    TEST_ARCH: arch-ci-linux-nagfor
708
709linux-opt-cxx-quad:
710  extends:
711    - .stage-3
712    - .linux_test
713  tags:
714    - gce-nfs
715  variables:
716    TEST_ARCH: arch-ci-linux-opt-cxx-quad
717
718linux-ILP64:
719  extends:
720    - .stage-3
721    - .linux_test
722  tags:
723    - gce-nfs
724  variables:
725    TEST_ARCH: arch-ci-linux-ILP64
726    LOAD_MODULES: gcc/6.5.0-57usejd
727
728linux-uni-pkgs:
729  extends:
730    - .stage-3
731    - .linux_test
732  tags:
733    - gce-nfs
734  variables:
735    TEST_ARCH: arch-ci-linux-uni-pkgs
736    LOAD_MODULES: llvm/9.0.0-7fyffox cmake/3.14.2-rl3q676
737
738linux-64idx-i8-uni:
739  extends:
740    - .stage-3
741    - .linux_test
742  tags:
743    - gce-nfs
744  variables:
745    TEST_ARCH: arch-ci-linux-64idx-i8-uni
746
747mswin-intel-cxx-cmplx:
748  extends:
749    - .stage-3
750    - .mswin_test
751  tags:
752    - name:ps5
753  variables:
754    TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx
755
756mswin-intel:
757  extends:
758    - .stage-3
759    - .mswin_test
760  tags:
761    - name:ps5
762  variables:
763    TEST_ARCH: arch-ci-mswin-intel
764
765mswin-opt-impi:
766  extends:
767    - .stage-3
768    - .mswin_test
769  tags:
770    - name:ps4
771  variables:
772    TEST_ARCH: arch-ci-mswin-opt-impi
773  allow_failure: true
774
775opensolaris-pkgs-opt:
776  extends:
777    - .stage-3
778    - .opensolaris_test
779  tags:
780    - name:n-gage
781  variables:
782    TEST_ARCH: arch-ci-opensolaris-pkgs-opt
783
784opensolaris-cmplx-pkgs-dbg:
785  extends:
786    - .stage-3
787    - .opensolaris_test
788  tags:
789    - name:n-gage
790  variables:
791    TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg
792
793opensolaris-misc:
794  extends:
795    - .stage-3
796    - .opensolaris_test
797  tags:
798    - name:n-gage
799  variables:
800    TEST_ARCH: arch-ci-opensolaris-misc
801
802osx-cxx-cmplx-pkgs-dbg:
803  extends:
804    - .stage-3
805    - .osx_test
806  tags:
807    - os:macos
808  variables:
809    TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg
810
811osx-cxx-pkgs-opt:
812  extends:
813    - .stage-3
814    - .osx_test
815  tags:
816    - os:macos, opt
817  variables:
818    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
819    TEST_ARCH: arch-ci-osx-cxx-pkgs-opt
820    MAKE_CXXFLAGS: -Werror -Wno-pass-failed
821
822osx-dbg:
823  extends:
824    - .stage-3
825    - .osx_test
826  tags:
827    - os:macos
828  variables:
829    TEST_ARCH: arch-ci-osx-dbg
830
831osx-xsdk-opt:
832  extends:
833    - .stage-3
834    - .osx_test
835  tags:
836    - os:macos, opt
837  variables:
838    TEST_ARCH: arch-ci-osx-xsdk-opt
839
840# job for analyzing the final coverage results
841analyze-pipeline:
842  extends: .test
843  stage: .post
844  image: jedbrown/mpich-ccache
845  tags:
846    - docker
847  dependencies:
848  variables:
849    PYTHON: python3
850    # Need a dummy TEST_ARCH that comes from artifacts
851    TEST_ARCH: arch-ci-linux-pkgs-gcov
852  allow_failure: true
853  before_script:
854    - date
855  script:
856  - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0
857#  - make mergegcov LOC=$PWD
858  - ${PYTHON} lib/petsc/bin/maint/gcov.py --merge_gcov --loc=${PWD} --petsc_arch ${TEST_ARCH}
859  - ls
860  - ls arch*/*
861  artifacts:
862    name: "$CI_JOB_NAME"
863    when: always
864    paths:
865    - i*.html
866    - arch-*-gcov/*
867    expire_in: 4 days
868#
869#
870# The following tests are experimental; more tests by users at other sites may be added below this.  Experimental test
871# that fail produce a warning, but do not block execution of a pipeline.
872#
873
874.test-experimental:
875  extends: .test
876  allow_failure: true
877
878