gitlab-ci: rules:changes to test on tested drivers changes

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 <eric@engestrom.ch>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2569>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2569>
This commit is contained in:
Pierre-Eric Pelloux-Prayer 2019-10-30 20:39:08 +01:00
parent 61fb17e8d7
commit 2a9d6fdd8c
3 changed files with 156 additions and 24 deletions

View File

@ -6,6 +6,7 @@ include:
ref: b7030c2cd0d6ccc5f6d4f8299bafa4daa9240d71 ref: b7030c2cd0d6ccc5f6d4f8299bafa4daa9240d71
file: '/templates/debian.yml' file: '/templates/debian.yml'
- local: '.gitlab-ci/lava-gitlab-ci.yml' - local: '.gitlab-ci/lava-gitlab-ci.yml'
- local: '.gitlab-ci/test-source-dep.yml'
stages: stages:
- container - container
@ -567,8 +568,9 @@ scons-old-llvm:
- x86_test-vk - x86_test-vk
.piglit-test: .piglit-test:
extends: .test-gl extends:
stage: llvmpipe - .test-gl
- .llvmpipe-rules
artifacts: artifacts:
when: on_failure when: on_failure
name: "mesa_${CI_JOB_NAME}" name: "mesa_${CI_JOB_NAME}"
@ -644,12 +646,14 @@ llvmpipe-gles2:
LP_NUM_THREADS: 0 LP_NUM_THREADS: 0
DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt DEQP_EXPECTED_FAILS: deqp-llvmpipe-fails.txt
LIBGL_ALWAYS_SOFTWARE: "true" LIBGL_ALWAYS_SOFTWARE: "true"
extends: .deqp-test-gl extends:
stage: llvmpipe - .deqp-test-gl
- .llvmpipe-rules
softpipe-gles2: softpipe-gles2:
extends: llvmpipe-gles2 extends:
stage: softpipe - llvmpipe-gles2
- .softpipe-rules
variables: variables:
DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt DEQP_EXPECTED_FAILS: deqp-softpipe-fails.txt
DEQP_SKIPS: deqp-softpipe-skips.txt DEQP_SKIPS: deqp-softpipe-skips.txt
@ -671,7 +675,7 @@ arm64_a630_gles2:
extends: extends:
- .deqp-test-gl - .deqp-test-gl
- .use-arm_test - .use-arm_test
stage: freedreno - .freedreno-rules
variables: variables:
DEQP_VER: gles2 DEQP_VER: gles2
DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt DEQP_EXPECTED_FAILS: deqp-freedreno-a630-fails.txt
@ -766,7 +770,9 @@ radv-polaris10-fossils:
- ./artifacts/tracie-runner-vk.sh - ./artifacts/tracie-runner-vk.sh
llvmpipe-traces: llvmpipe-traces:
extends: .traces-test-gl extends:
- .traces-test-gl
- .llvmpipe-rules
variables: variables:
LIBGL_ALWAYS_SOFTWARE: "true" LIBGL_ALWAYS_SOFTWARE: "true"
GALLIUM_DRIVER: "llvmpipe" GALLIUM_DRIVER: "llvmpipe"

View File

@ -67,8 +67,9 @@
- meson-arm64 - meson-arm64
panfrost-t720-gles2:arm64: panfrost-t720-gles2:arm64:
extends: .lava-test:arm64 extends:
stage: panfrost - .lava-test:arm64
- .panfrost-rules
variables: variables:
DEVICE_TYPE: sun50i-h6-pine-h64 DEVICE_TYPE: sun50i-h6-pine-h64
GPU_VERSION: panfrost-t720 GPU_VERSION: panfrost-t720
@ -77,8 +78,9 @@ panfrost-t720-gles2:arm64:
- lava-sun50i-h6-pine-h64 - lava-sun50i-h6-pine-h64
panfrost-t760-gles2:armhf: panfrost-t760-gles2:armhf:
extends: .lava-test:armhf extends:
stage: panfrost - .lava-test:armhf
- .panfrost-rules
variables: variables:
DEVICE_TYPE: rk3288-veyron-jaq DEVICE_TYPE: rk3288-veyron-jaq
GPU_VERSION: panfrost-t760 GPU_VERSION: panfrost-t760
@ -89,8 +91,9 @@ panfrost-t760-gles2:armhf:
- lava-rk3288-veyron-jaq - lava-rk3288-veyron-jaq
panfrost-t860-gles2:arm64: panfrost-t860-gles2:arm64:
extends: .lava-test:arm64 extends:
stage: panfrost - .lava-test:arm64
- .panfrost-rules
variables: variables:
DEVICE_TYPE: rk3399-gru-kevin DEVICE_TYPE: rk3399-gru-kevin
GPU_VERSION: panfrost-t860 GPU_VERSION: panfrost-t860
@ -101,8 +104,9 @@ panfrost-t860-gles2:arm64:
- lava-rk3399-gru-kevin - lava-rk3399-gru-kevin
panfrost-t860-gles3:arm64: panfrost-t860-gles3:arm64:
extends: .lava-test:arm64 extends:
stage: panfrost - .lava-test:arm64
- .panfrost-rules
variables: variables:
DEVICE_TYPE: rk3399-gru-kevin DEVICE_TYPE: rk3399-gru-kevin
GPU_VERSION: panfrost-t860 GPU_VERSION: panfrost-t860
@ -116,8 +120,9 @@ panfrost-t860-gles3:arm64:
- lava-rk3399-gru-kevin - lava-rk3399-gru-kevin
.panfrost-t820-gles2:arm64: .panfrost-t820-gles2:arm64:
extends: .lava-test:arm64 extends:
stage: panfrost - .lava-test:arm64
- .panfrost-rules
variables: variables:
DEVICE_TYPE: meson-gxm-khadas-vim2 DEVICE_TYPE: meson-gxm-khadas-vim2
GPU_VERSION: panfrost-t820 GPU_VERSION: panfrost-t820
@ -128,8 +133,9 @@ panfrost-t860-gles3:arm64:
.lima-mali400-test:armhf: .lima-mali400-test:armhf:
parallel: 2 parallel: 2
extends: .lava-test:armhf extends:
stage: misc-tests - .lava-test:armhf
- .lima-rules
variables: variables:
DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc DEVICE_TYPE: sun8i-h3-libretech-all-h3-cc
GPU_VERSION: lima GPU_VERSION: lima
@ -138,8 +144,9 @@ panfrost-t860-gles3:arm64:
- lava-sun8i-h3-libretech-all-h3-cc - lava-sun8i-h3-libretech-all-h3-cc
lima-mali450-test:arm64: lima-mali450-test:arm64:
extends: .lava-test:arm64 extends:
stage: misc-tests - .lava-test:arm64
- .lima-rules
variables: variables:
DEVICE_TYPE: meson-gxl-s905x-libretech-cc DEVICE_TYPE: meson-gxl-s905x-libretech-cc
GPU_VERSION: lima GPU_VERSION: lima
@ -148,8 +155,9 @@ lima-mali450-test:arm64:
- lava-meson-gxl-s905x-libretech-cc - lava-meson-gxl-s905x-libretech-cc
.freedreno-a307-gles2: .freedreno-a307-gles2:
extends: .lava-test:arm64 extends:
stage: freedreno - .lava-test:arm64
- .freedreno-rules
variables: variables:
DEVICE_TYPE: apq8016-sbc DEVICE_TYPE: apq8016-sbc
GPU_VERSION: freedreno-a307 GPU_VERSION: freedreno-a307

View File

@ -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