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

View File

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

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