123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585 |
- variables:
- UPSTREAM_REPO: mesa/mesa
-
- include:
- - project: 'wayland/ci-templates'
- # Must be the same as in .gitlab-ci/lava-gitlab-ci.yml
- ref: f69acac60d5dde0410124fd5674764600821b7a6
- file: '/templates/debian.yml'
-
- include:
- - local: '.gitlab-ci/lava-gitlab-ci.yml'
-
- stages:
- - container
- - build
- - test
-
-
- # When to automatically run the CI
- .ci-run-policy:
- only:
- refs:
- - branches@mesa/mesa
- - merge_requests
- - /^ci([-/].*)?$/
- changes:
- - VERSION
- - bin/**/*
- # GitLab CI
- - .gitlab-ci.yml
- - .gitlab-ci/**/*
- # Meson
- - meson*
- - build-support/**/*
- - subprojects/**/*
- # SCons
- - SConstruct
- - scons/**/*
- - common.py
- # Source code
- - include/**/*
- - src/**/*
- retry:
- max: 2
- when:
- - runner_system_failure
- # Cancel CI run if a newer commit is pushed to the same branch
- interruptible: true
-
- .ci-deqp-artifacts:
- artifacts:
- when: always
- untracked: false
- paths:
- # Watch out! Artifacts are relative to the build dir.
- # https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
- - artifacts
-
- # Build the "normal" (non-LAVA) CI docker images.
- #
- # DEBIAN_TAG is the tag of the docker image used by later stage jobs. If the
- # image doesn't exist yet, the container stage job generates it.
- #
- # In order to generate a new image, one should generally change the tag.
- # While removing the image from the registry would also work, that's not
- # recommended except for ephemeral images during development: Replacing
- # an image after a significant amount of time might pull in newer
- # versions of gcc/clang or other packages, which might break the build
- # with older commits using the same tag.
- #
- # After merging a change resulting in generating a new image to the
- # main repository, it's recommended to remove the image from the source
- # repository's container registry, so that the image from the main
- # repository's registry will be used there as well.
-
- .container:
- stage: container
- extends:
- - .ci-run-policy
- variables:
- DEBIAN_VERSION: buster-slim
- REPO_SUFFIX: $CI_JOB_NAME
- DEBIAN_EXEC: 'bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
- # no need to pull the whole repo to build the container image
- GIT_STRATEGY: none
-
- # Debian 10 based x86 build image
- x86_build:
- extends:
- - .debian@container-ifnot-exists
- - .container
- variables:
- DEBIAN_TAG: &x86_build "2019-11-13"
-
- .use-x86_build:
- variables:
- TAG: *x86_build
- image: "$CI_REGISTRY_IMAGE/debian/x86_build:$TAG"
- needs:
- - x86_build
-
- # Debian 10 based x86 test image
- x86_test:
- extends: x86_build
- variables:
- DEBIAN_TAG: &x86_test "2019-11-22"
-
- # Debian 9 based x86 build image (old LLVM)
- x86_build_old:
- extends: x86_build
- variables:
- DEBIAN_TAG: &x86_build_old "2019-09-18"
- DEBIAN_VERSION: stretch-slim
-
- .use-x86_build_old:
- variables:
- TAG: *x86_build_old
- image: "$CI_REGISTRY_IMAGE/debian/x86_build_old:$TAG"
- needs:
- - x86_build_old
-
- # Debian 10 based ARM build image
- arm_build:
- extends:
- - .debian@container-ifnot-exists@arm64v8
- - .container
- variables:
- DEBIAN_TAG: &arm_build "2019-11-13"
-
- .use-arm_build:
- variables:
- TAG: *arm_build
- image: "$CI_REGISTRY_IMAGE/debian/arm_build:$TAG"
- needs:
- - arm_build
-
- # Debian 10 based ARM test image
- arm_test:
- extends: arm_build
- variables:
- DEBIAN_TAG: &arm_test "2019-11-22"
-
- .use-arm_test:
- variables:
- TAG: *arm_test
- image: "$CI_REGISTRY_IMAGE/debian/arm_test:$TAG"
- needs:
- - meson-arm64
- - arm_test
-
-
- # BUILD
-
- # Shared between windows and Linux
- .build-common:
- extends: .ci-run-policy
- stage: build
- artifacts:
- when: always
- paths:
- - _build/meson-logs/*.txt
- # scons:
- - build/*/config.log
- - shader-db
-
- # Just Linux
- .build-linux:
- extends: .build-common
- variables:
- CCACHE_COMPILERCHECK: "content"
- CCACHE_COMPRESS: "true"
- CCACHE_DIR: /cache/mesa/ccache
- # Use ccache transparently, and print stats before/after
- before_script:
- - export PATH="/usr/lib/ccache:$PATH"
- - export CCACHE_BASEDIR="$PWD"
- - ccache --show-stats
- after_script:
- - ccache --show-stats
-
- .build-windows:
- extends: .build-common
- tags:
- - mesa-windows
- cache:
- key: ${CI_JOB_NAME}
- paths:
- - subprojects/packagecache
-
- .meson-build:
- extends:
- - .build-linux
- - .use-x86_build
- script:
- - .gitlab-ci/meson-build.sh
-
- .scons-build:
- extends:
- - .build-linux
- - .use-x86_build
- variables:
- SCONSFLAGS: "-j4"
- script:
- - .gitlab-ci/scons-build.sh
-
- meson-testing:
- extends:
- - .meson-build
- - .ci-deqp-artifacts
- variables:
- UNWIND: "true"
- DRI_LOADERS: >
- -D glx=dri
- -D gbm=true
- -D egl=true
- -D platforms=x11,drm,surfaceless
- GALLIUM_ST: >
- -D dri3=true
- GALLIUM_DRIVERS: "swrast"
- LLVM_VERSION: "7"
- BUILDTYPE: "debugoptimized"
- script:
- - .gitlab-ci/meson-build.sh
- - .gitlab-ci/prepare-artifacts.sh
-
- meson-main:
- extends: .meson-build
- variables:
- UNWIND: "true"
- DRI_LOADERS: >
- -D glx=dri
- -D gbm=true
- -D egl=true
- -D platforms=x11,wayland,drm,surfaceless
- DRI_DRIVERS: "i915,i965,r100,r200,nouveau"
- GALLIUM_ST: >
- -D dri3=true
- -D gallium-extra-hud=true
- -D gallium-vdpau=true
- -D gallium-xvmc=true
- -D gallium-omx=bellagio
- -D gallium-va=true
- -D gallium-xa=true
- -D gallium-nine=true
- -D gallium-opencl=disabled
- GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
- LLVM_VERSION: "7"
- EXTRA_OPTION: >
- -D osmesa=gallium
- -D tools=all
- script:
- - .gitlab-ci/meson-build.sh
- - .gitlab-ci/run-shader-db.sh
-
- .meson-cross:
- extends:
- - .meson-build
- variables:
- UNWIND: "false"
- DRI_LOADERS: >
- -D glx=disabled
- -D gbm=false
- -D egl=true
- -D platforms=surfaceless
- -D osmesa=none
- GALLIUM_ST: >
- -D dri3=false
- -D gallium-vdpau=false
- -D gallium-xvmc=false
- -D gallium-omx=disabled
- -D gallium-va=false
- -D gallium-xa=false
- -D gallium-nine=false
-
- .meson-arm:
- extends:
- - .meson-cross
- - .use-arm_build
- variables:
- VULKAN_DRIVERS: freedreno
- GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
- EXTRA_OPTION: >
- -D I-love-half-baked-turnips=true
- tags:
- - aarch64
-
- meson-armhf:
- extends: .meson-arm
- variables:
- CROSS: armhf
- LLVM_VERSION: "7"
-
- meson-arm64:
- extends:
- - .meson-arm
- - .ci-deqp-artifacts
- variables:
- BUILDTYPE: "debugoptimized"
- VULKAN_DRIVERS: "freedreno,amd"
- script:
- - .gitlab-ci/meson-build.sh
- - .gitlab-ci/prepare-artifacts.sh
-
- meson-clang:
- extends: .meson-build
- variables:
- UNWIND: "true"
- DRI_LOADERS: >
- -D glvnd=true
- DRI_DRIVERS: "auto"
- GALLIUM_DRIVERS: "auto"
- VULKAN_DRIVERS: intel,amd,freedreno
- CC: "ccache clang-8"
- CXX: "ccache clang++-8"
-
- .meson-windows:
- extends:
- - .build-windows
- before_script:
- - $ENV:ARCH = "x86"
- - $ENV:VERSION = "2019\Community"
- script:
- - cmd /C .gitlab-ci\meson-build.bat
-
- scons-swr:
- extends: .scons-build
- variables:
- SCONS_TARGET: "swr=1"
- SCONS_CHECK_COMMAND: "true"
- LLVM_VERSION: "6.0"
-
- scons-win64:
- extends: .scons-build
- variables:
- SCONS_TARGET: platform=windows machine=x86_64
- SCONS_CHECK_COMMAND: "true"
-
- meson-clover:
- extends: .meson-build
- variables:
- UNWIND: "true"
- DRI_LOADERS: >
- -D glx=disabled
- -D egl=false
- -D gbm=false
- GALLIUM_ST: >
- -D dri3=false
- -D gallium-vdpau=false
- -D gallium-xvmc=false
- -D gallium-omx=disabled
- -D gallium-va=false
- -D gallium-xa=false
- -D gallium-nine=false
- -D gallium-opencl=icd
- script:
- - export GALLIUM_DRIVERS="r600,radeonsi"
- - .gitlab-ci/meson-build.sh
- - LLVM_VERSION=8 .gitlab-ci/meson-build.sh
- - export GALLIUM_DRIVERS="i915,r600"
- - LLVM_VERSION=6.0 .gitlab-ci/meson-build.sh
- - LLVM_VERSION=7 .gitlab-ci/meson-build.sh
-
- meson-clover-old-llvm:
- extends:
- - meson-clover
- - .use-x86_build_old
- variables:
- UNWIND: "false"
- DRI_LOADERS: >
- -D glx=disabled
- -D egl=false
- -D gbm=false
- -D platforms=drm,surfaceless
- GALLIUM_DRIVERS: "i915,r600"
- script:
- - LLVM_VERSION=3.9 .gitlab-ci/meson-build.sh
- - LLVM_VERSION=4.0 .gitlab-ci/meson-build.sh
- - LLVM_VERSION=5.0 .gitlab-ci/meson-build.sh
-
- meson-vulkan:
- extends: .meson-build
- variables:
- UNWIND: "false"
- DRI_LOADERS: >
- -D glx=disabled
- -D gbm=false
- -D egl=false
- -D platforms=x11,wayland,drm
- -D osmesa=none
- GALLIUM_ST: >
- -D dri3=true
- -D gallium-vdpau=false
- -D gallium-xvmc=false
- -D gallium-omx=disabled
- -D gallium-va=false
- -D gallium-xa=false
- -D gallium-nine=false
- -D gallium-opencl=disabled
- -D b_sanitize=undefined
- -D c_args=-fno-sanitize-recover=all
- -D cpp_args=-fno-sanitize-recover=all
- UBSAN_OPTIONS: "print_stacktrace=1"
- VULKAN_DRIVERS: intel,amd,freedreno
- LLVM_VERSION: "8"
- EXTRA_OPTION: >
- -D vulkan-overlay-layer=true
-
- # While the main point of this build is testing the i386 cross build,
- # we also use this one to test some other options that are exclusive
- # with meson-main's choices (classic swrast and osmesa)
- meson-i386:
- extends: .meson-cross
- variables:
- CROSS: i386
- VULKAN_DRIVERS: intel
- DRI_DRIVERS: "swrast"
- GALLIUM_DRIVERS: "iris"
- EXTRA_OPTION: >
- -D vulkan-overlay-layer=true
- -D llvm=false
- -D osmesa=classic
-
- meson-mingw32-x86_64:
- extends: .meson-build
- variables:
- UNWIND: "false"
- DRI_DRIVERS: ""
- GALLIUM_DRIVERS: "swrast"
- EXTRA_OPTION: >
- -Dllvm=false
- -Dosmesa=gallium
- --cross-file=.gitlab-ci/x86_64-w64-mingw32
-
- scons:
- extends: .scons-build
- variables:
- SCONS_TARGET: "llvm=1"
- SCONS_CHECK_COMMAND: "scons llvm=1 force_scons=1 check"
- script:
- - SCONS_TARGET="" SCONS_CHECK_COMMAND="scons check force_scons=1" .gitlab-ci/scons-build.sh
- - LLVM_VERSION=8 .gitlab-ci/scons-build.sh
-
- scons-old-llvm:
- extends:
- - scons
- - .use-x86_build_old
- script:
- - LLVM_VERSION=3.9 .gitlab-ci/scons-build.sh
-
- .test:
- extends:
- - .ci-run-policy
- stage: test
- variables:
- GIT_STRATEGY: none # testing doesn't build anything from source
- TAG: *x86_test
- image: "$CI_REGISTRY_IMAGE/debian/x86_test:$TAG"
- before_script:
- # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
- - rm -rf install
- - tar -xf artifacts/install.tar
- - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
- artifacts:
- when: always
- name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
- paths:
- - results/
- dependencies:
- - meson-testing
- needs:
- - meson-testing
- - x86_test
-
- .piglit-test:
- extends: .test
- artifacts:
- when: on_failure
- name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
- paths:
- - summary/
- variables:
- LIBGL_ALWAYS_SOFTWARE: 1
- PIGLIT_NO_WINDOW: 1
- script:
- - artifacts/piglit/run.sh
-
- piglit-quick_gl:
- extends: .piglit-test
- variables:
- LP_NUM_THREADS: 0
- PIGLIT_OPTIONS: >
- -x arb_gpu_shader5
- -x glx-multithread-clearbuffer
- -x glx-multithread-shader-compile
- -x max-texture-size
- -x maxsize
- PIGLIT_PROFILES: quick_gl
-
- piglit-glslparser+quick_shader:
- extends: .piglit-test
- variables:
- LP_NUM_THREADS: 1
- PIGLIT_OPTIONS: >
- -x spec@arb_arrays_of_arrays@execution@ubo
- -x spec@arb_gpu_shader_int64@execution$$
- -x spec@arb_separate_shader_objects@execution
- -x spec@arb_separate_shader_objects@linker
- -x spec@arb_shader_storage_buffer_object@execution
- -x spec@glsl-1.50@execution@built-in-functions
- PIGLIT_PROFILES: "glslparser quick_shader"
- PIGLIT_RESULTS: "glslparser+quick_shader"
-
- .deqp-test:
- extends: .test
- variables:
- DEQP_SKIPS: deqp-default-skips.txt
- script:
- - ./artifacts/deqp-runner.sh
- artifacts:
- reports:
- junit: results/results.xml
-
- test-llvmpipe-gles2:
- variables:
- DEQP_VER: gles2
- DEQP_PARALLEL: 4
- # Don't use threads inside llvmpipe, we've already got all 4 cores
- # busy with DEQP_PARALLEL.
- LP_NUM_THREADS: 0
- DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
- LIBGL_ALWAYS_SOFTWARE: "true"
- extends: .deqp-test
-
- test-softpipe-gles2:
- extends: test-llvmpipe-gles2
- variables:
- DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
- DEQP_SKIPS: deqp-softpipe-skips.txt
- GALLIUM_DRIVER: "softpipe"
-
- test-softpipe-gles3:
- parallel: 2
- variables:
- DEQP_VER: gles3
- extends: test-softpipe-gles2
-
- test-softpipe-gles31:
- parallel: 4
- variables:
- DEQP_VER: gles31
- extends: test-softpipe-gles2
-
- arm64_a630_gles2:
- extends:
- - .deqp-test
- - .use-arm_test
- variables:
- DEQP_VER: gles2
- DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
- DEQP_SKIPS: deqp-freedreno-a630-skips.txt
- NIR_VALIDATE: 0
- DEQP_PARALLEL: 4
- FLAKES_CHANNEL: "#freedreno-ci"
- tags:
- - mesa-cheza
- dependencies:
- - meson-arm64
-
- arm64_a630_gles31:
- extends: arm64_a630_gles2
- variables:
- DEQP_VER: gles31
-
- arm64_a630_gles3:
- extends: arm64_a630_gles2
- variables:
- DEQP_VER: gles3
-
- arm64_a306_gles2:
- extends: arm64_a630_gles2
- variables:
- DEQP_EXPECTED_FAILS: deqp-freedreno-a307-fails.txt
- DEQP_SKIPS: deqp-default-skips.txt
- tags:
- - db410c
|