From 2a9d6fdd8c5a94b574e241f9cad5662cbaef54b2 Mon Sep 17 00:00:00 2001 From: Pierre-Eric Pelloux-Prayer Date: Wed, 30 Oct 2019 20:39:08 +0100 Subject: [PATCH] gitlab-ci: rules:changes to test on tested drivers changes MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit For now tests only use these drivers: * llvmpipe * softpipe * freedreno * lima * etnaviv * panfrost So using rules:changes gitlab feature to run the tests when the changes made are potentially affecting these drivers. A few notes: * the following code: .piglit-test: extends: - .test-gl - .llvmpipe-rules makes gitlab replace .test-gl "rules:changes" values by the one from ".llvmpipe-rules". * rules:changes always matches for non-MR new branches so jobs will always be created (and they'll be run if their dependencies are run). For pushes to existing branches the files changed by the push are used to match the rules:changes path. * the same gitlab feature could be used for some build jobs Acked-by: Eric Engestrom Reviewed-by: Michel Dänzer Tested-by: Marge Bot Part-of: --- .gitlab-ci.yml | 22 +++--- .gitlab-ci/lava-gitlab-ci.yml | 40 ++++++----- .gitlab-ci/test-source-dep.yml | 118 +++++++++++++++++++++++++++++++++ 3 files changed, 156 insertions(+), 24 deletions(-) create mode 100644 .gitlab-ci/test-source-dep.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 56b9a7606c0..5cc46fba89d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,6 +6,7 @@ include: ref: b7030c2cd0d6ccc5f6d4f8299bafa4daa9240d71 file: '/templates/debian.yml' - local: '.gitlab-ci/lava-gitlab-ci.yml' + - local: '.gitlab-ci/test-source-dep.yml' stages: - container @@ -567,8 +568,9 @@ scons-old-llvm: - x86_test-vk .piglit-test: - extends: .test-gl - stage: llvmpipe + extends: + - .test-gl + - .llvmpipe-rules artifacts: when: on_failure name: "mesa_${CI_JOB_NAME}" @@ -644,12 +646,14 @@ llvmpipe-gles2: LP_NUM_THREADS: 0 DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt LIBGL_ALWAYS_SOFTWARE: "true" - extends: .deqp-test-gl - stage: llvmpipe + extends: + - .deqp-test-gl + - .llvmpipe-rules softpipe-gles2: - extends: llvmpipe-gles2 - stage: softpipe + extends: + - llvmpipe-gles2 + - .softpipe-rules variables: DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt DEQP_SKIPS: deqp-softpipe-skips.txt @@ -671,7 +675,7 @@ arm64_a630_gles2: extends: - .deqp-test-gl - .use-arm_test - stage: freedreno + - .freedreno-rules variables: DEQP_VER: gles2 DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt @@ -766,7 +770,9 @@ radv-polaris10-fossils: - ./artifacts/tracie-runner-vk.sh llvmpipe-traces: - extends: .traces-test-gl + extends: + - .traces-test-gl + - .llvmpipe-rules variables: LIBGL_ALWAYS_SOFTWARE: "true" GALLIUM_DRIVER: "llvmpipe" diff --git a/.gitlab-ci/lava-gitlab-ci.yml b/.gitlab-ci/lava-gitlab-ci.yml index 00e960f86e6..3df5894d7ce 100644 --- a/.gitlab-ci/lava-gitlab-ci.yml +++ b/.gitlab-ci/lava-gitlab-ci.yml @@ -67,8 +67,9 @@ - meson-arm64 panfrost-t720-gles2:arm64: - extends: .lava-test:arm64 - stage: panfrost + extends: + - .lava-test:arm64 + - .panfrost-rules variables: DEVICE_TYPE: sun50i-h6-pine-h64 GPU_VERSION: panfrost-t720 @@ -77,8 +78,9 @@ panfrost-t720-gles2:arm64: - lava-sun50i-h6-pine-h64 panfrost-t760-gles2:armhf: - extends: .lava-test:armhf - stage: panfrost + extends: + - .lava-test:armhf + - .panfrost-rules variables: DEVICE_TYPE: rk3288-veyron-jaq GPU_VERSION: panfrost-t760 @@ -89,8 +91,9 @@ panfrost-t760-gles2:armhf: - lava-rk3288-veyron-jaq panfrost-t860-gles2:arm64: - extends: .lava-test:arm64 - stage: panfrost + extends: + - .lava-test:arm64 + - .panfrost-rules variables: DEVICE_TYPE: rk3399-gru-kevin GPU_VERSION: panfrost-t860 @@ -101,8 +104,9 @@ panfrost-t860-gles2:arm64: - lava-rk3399-gru-kevin panfrost-t860-gles3:arm64: - extends: .lava-test:arm64 - stage: panfrost + extends: + - .lava-test:arm64 + - .panfrost-rules variables: DEVICE_TYPE: rk3399-gru-kevin GPU_VERSION: panfrost-t860 @@ -116,8 +120,9 @@ panfrost-t860-gles3:arm64: - lava-rk3399-gru-kevin .panfrost-t820-gles2:arm64: - extends: .lava-test:arm64 - stage: panfrost + extends: + - .lava-test:arm64 + - .panfrost-rules variables: DEVICE_TYPE: meson-gxm-khadas-vim2 GPU_VERSION: panfrost-t820 @@ -128,8 +133,9 @@ panfrost-t860-gles3:arm64: .lima-mali400-test:armhf: parallel: 2 - extends: .lava-test:armhf - stage: misc-tests + extends: + - .lava-test:armhf + - .lima-rules variables: DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc GPU_VERSION: lima @@ -138,8 +144,9 @@ panfrost-t860-gles3:arm64: - lava-sun8i-h3-libretech-all-h3-cc lima-mali450-test:arm64: - extends: .lava-test:arm64 - stage: misc-tests + extends: + - .lava-test:arm64 + - .lima-rules variables: DEVICE_TYPE: meson-gxl-s905x-libretech-cc GPU_VERSION: lima @@ -148,8 +155,9 @@ lima-mali450-test:arm64: - lava-meson-gxl-s905x-libretech-cc .freedreno-a307-gles2: - extends: .lava-test:arm64 - stage: freedreno + extends: + - .lava-test:arm64 + - .freedreno-rules variables: DEVICE_TYPE: apq8016-sbc GPU_VERSION: freedreno-a307 diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml new file mode 100644 index 00000000000..a243ea99b6f --- /dev/null +++ b/.gitlab-ci/test-source-dep.yml @@ -0,0 +1,118 @@ +# This file list source dependencies to avoid creating/running jobs +# those outcome cannot be changed by the modifications from a branch. + +# Mesa core source file dependencies +# ---------------------------------- +.mesa-rules: + rules: + - changes: &mesa_core_file_list + - .gitlab-ci.yml + - .gitlab-ci/**/* + - include/**/* + - meson.build + - SConstruct + - src/* + - src/compiler/**/* + - src/drm-shim/**/* + - src/egl/**/* + - src/gbm/**/* + - src/glx/**/* + - src/gtest/**/* + - src/hgl/**/* + - src/include/**/* + - src/loader/**/* + - src/mapi/**/* + - src/mesa/**/* + - src/util/**/* + +# Gallium core source file dependencies +# ------------------------------------- +.gallium-rules: + rules: + - changes: &gallium_core_file_list + - src/gallium/* + - src/gallium/auxiliary/**/* + - src/gallium/drivers/* + - src/gallium/include/**/* + - src/gallium/state_trackers/**/* + - src/gallium/targets/**/* + - src/gallium/tests/**/* + - src/gallium/winsys/* + +.softpipe-rules: + stage: softpipe + rules: + - changes: + *mesa_core_file_list + when: on_success + - changes: + *gallium_core_file_list + when: on_success + - changes: + - src/gallium/drivers/softpipe/**/* + - src/gallium/winsys/sw/**/* + when: on_success + - when: never + +.llvmpipe-rules: + stage: llvmpipe + rules: + - changes: + *mesa_core_file_list + when: on_success + - changes: + *gallium_core_file_list + when: on_success + - changes: + - src/gallium/drivers/llvmpipe/**/* + - src/gallium/winsys/sw/**/* + when: on_success + - when: never + +.freedreno-rules: + stage: freedreno + rules: + - changes: + *mesa_core_file_list + when: on_success + - changes: + *gallium_core_file_list + when: on_success + - changes: + - src/freedreno/**/* + - src/gallium/drivers/freedreno/**/* + - src/gallium/winsys/freedreno/**/* + when: on_success + - when: never + +.panfrost-rules: + stage: panfrost + rules: + - changes: + *mesa_core_file_list + when: on_success + - changes: + *gallium_core_file_list + when: on_success + - changes: + - src/gallium/drivers/panfrost/**/* + - src/gallium/winsys/panfrost/**/* + - src/panfrost/**/* + when: on_success + - when: never + +.lima-rules: + stage: misc-tests + rules: + - changes: + *mesa_core_file_list + when: on_success + - changes: + *gallium_core_file_list + when: on_success + - changes: + - src/gallium/drivers/lima/**/* + - src/gallium/winsys/lima/**/* + - src/lima/**/* + when: on_success + - when: never -- 2.30.2