2019-10-30 19:39:08 +00:00
|
|
|
# This file list source dependencies to avoid creating/running jobs
|
|
|
|
# those outcome cannot be changed by the modifications from a branch.
|
|
|
|
|
2022-06-28 18:43:34 +01:00
|
|
|
# Rule to filter for only scheduled pipelines.
|
|
|
|
.scheduled_pipeline-rules:
|
|
|
|
rules:
|
|
|
|
- if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
# Generic rule to not run the job during scheduled pipelines. Jobs that aren't
|
|
|
|
# something like a nightly run should include this rule.
|
|
|
|
.no_scheduled_pipelines-rules:
|
|
|
|
rules:
|
|
|
|
- if: *is-scheduled-pipeline
|
|
|
|
when: never
|
2021-01-07 09:38:26 +00:00
|
|
|
|
2022-12-14 19:41:08 +00:00
|
|
|
# Rule for restricted traces jobs to only run for users with access to those
|
|
|
|
# traces (both https://gitlab.freedesktop.org/gfx-ci/tracie/traces-db-private
|
|
|
|
# for trace access, and minio bucket access for viewing result images from CI).
|
|
|
|
#
|
|
|
|
# This is a compromise, allowing some marked developers to have their MRs
|
|
|
|
# blocked on regressions to non-redistributable traces, while not blocking
|
|
|
|
# merges for other devs who would be unable to debug changes to them.
|
|
|
|
.restricted-rules:
|
|
|
|
rules:
|
|
|
|
# If the triggerer has access to the restricted traces and if it is pre-merge
|
|
|
|
- if: '($GITLAB_USER_LOGIN !~ "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu|okias|gallo)$/") &&
|
|
|
|
($GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH)'
|
|
|
|
when: never
|
|
|
|
|
2022-07-07 19:36:05 +01:00
|
|
|
# Mesa core source file dependencies that may impact any test job
|
|
|
|
# ---------------------------------------------------------------
|
2022-06-28 20:59:47 +01:00
|
|
|
.core-rules:
|
2019-10-30 19:39:08 +00:00
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- changes: &core_file_list
|
2019-10-30 19:39:08 +00:00
|
|
|
- .gitlab-ci.yml
|
|
|
|
- .gitlab-ci/**/*
|
|
|
|
- include/**/*
|
|
|
|
- meson.build
|
2021-08-17 11:50:13 +01:00
|
|
|
- .gitattributes
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/*
|
|
|
|
- src/compiler/**/*
|
|
|
|
- src/drm-shim/**/*
|
|
|
|
- src/gbm/**/*
|
|
|
|
- src/gtest/**/*
|
|
|
|
- src/hgl/**/*
|
|
|
|
- src/include/**/*
|
2022-06-28 20:59:47 +01:00
|
|
|
# Some src/util and src/compiler files use headers from mesa/ (e.g.
|
|
|
|
# mtypes.h). We should clean that up.
|
|
|
|
- src/mesa/**/*.h
|
|
|
|
- src/tool/**/*
|
|
|
|
- src/util/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-07-07 19:36:05 +01:00
|
|
|
# Mesa source file dependencies that may impact any GL driver test job.
|
2022-06-28 20:59:47 +01:00
|
|
|
.gl-rules:
|
|
|
|
rules:
|
|
|
|
- !reference [.core-rules, rules]
|
|
|
|
- changes: &mesa_core_file_list
|
|
|
|
- src/egl/**/*
|
|
|
|
- src/glx/**/*
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/loader/**/*
|
|
|
|
- src/mapi/**/*
|
2021-01-27 11:02:06 +00:00
|
|
|
- src/mesa/*
|
|
|
|
- src/mesa/main/**/*
|
|
|
|
- src/mesa/math/**/*
|
|
|
|
- src/mesa/program/**/*
|
|
|
|
- src/mesa/sparc/**/*
|
|
|
|
- src/mesa/state_tracker/**/*
|
|
|
|
- src/mesa/swrast/**/*
|
|
|
|
- src/mesa/swrast_setup/**/*
|
|
|
|
- src/mesa/vbo/**/*
|
|
|
|
- src/mesa/x86/**/*
|
|
|
|
- src/mesa/x86-64/**/*
|
2021-03-11 11:48:59 +00:00
|
|
|
when: on_success
|
2019-10-30 19:39:08 +00:00
|
|
|
- changes: &gallium_core_file_list
|
|
|
|
- src/gallium/*
|
|
|
|
- src/gallium/auxiliary/**/*
|
|
|
|
- src/gallium/drivers/*
|
|
|
|
- src/gallium/include/**/*
|
2021-07-12 20:07:01 +01:00
|
|
|
- src/gallium/frontends/dri/*
|
|
|
|
- src/gallium/frontends/glx/**/*
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/gallium/targets/**/*
|
|
|
|
- src/gallium/tests/**/*
|
|
|
|
- src/gallium/winsys/*
|
2022-06-28 20:59:47 +01:00
|
|
|
when: on_success
|
|
|
|
|
|
|
|
# Source file dependencies that may impact any Vulkan driver build or test
|
|
|
|
.vulkan-rules:
|
|
|
|
rules:
|
|
|
|
- !reference [.core-rules, rules]
|
|
|
|
- changes: &vulkan_file_list
|
|
|
|
- src/vulkan/**/*
|
|
|
|
when: on_success
|
2019-10-30 19:39:08 +00:00
|
|
|
|
|
|
|
.softpipe-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: software-renderer
|
2019-10-30 19:39:08 +00:00
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-05-21 16:24:17 +01:00
|
|
|
- changes: &softpipe_file_list
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/gallium/drivers/softpipe/**/*
|
|
|
|
- src/gallium/winsys/sw/**/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
.llvmpipe-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: software-renderer
|
2019-10-30 19:39:08 +00:00
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2020-04-29 16:56:26 +01:00
|
|
|
- changes: &llvmpipe_file_list
|
2021-03-18 19:58:04 +00:00
|
|
|
- src/gallium/drivers/llvmpipe/**/*
|
|
|
|
- src/gallium/winsys/sw/**/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
.lavapipe-rules:
|
|
|
|
stage: software-renderer
|
|
|
|
rules:
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
# One could probably be a little more clever here and skip non-gallium Mesa changes (see also .llvmpipe-cl-rules).
|
|
|
|
- !reference [.gl-rules, rules]
|
2021-03-18 19:58:04 +00:00
|
|
|
- changes: &lavapipe_file_list
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/gallium/drivers/llvmpipe/**/*
|
2021-01-27 02:08:19 +00:00
|
|
|
- src/gallium/frontends/lavapipe/**/*
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/gallium/winsys/sw/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2020-10-27 07:42:15 +00:00
|
|
|
.llvmpipe-cl-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: software-renderer
|
2020-10-27 07:42:15 +00:00
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-08-11 17:11:07 +01:00
|
|
|
- changes: &llvmpipe_cl_files
|
2020-10-27 07:42:15 +00:00
|
|
|
- .gitlab-ci.yml
|
|
|
|
- .gitlab-ci/**/*
|
|
|
|
- meson.build
|
2021-08-17 11:50:13 +01:00
|
|
|
- .gitattributes
|
2020-10-27 07:42:15 +00:00
|
|
|
- include/**/*
|
|
|
|
- src/compiler/**/*
|
|
|
|
- src/include/**/*
|
|
|
|
- src/util/**/*
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*gallium_core_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*llvmpipe_file_list
|
|
|
|
when: on_success
|
2022-08-11 17:11:07 +01:00
|
|
|
|
|
|
|
.llvmpipe-clover-rules:
|
|
|
|
rules:
|
|
|
|
- !reference [.llvmpipe-cl-rules, rules]
|
|
|
|
- changes:
|
2020-10-27 07:42:15 +00:00
|
|
|
- src/gallium/frontends/clover/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-08-11 17:11:07 +01:00
|
|
|
.llvmpipe-rusticl-rules:
|
|
|
|
rules:
|
|
|
|
- !reference [.llvmpipe-cl-rules, rules]
|
|
|
|
- changes:
|
|
|
|
- src/gallium/frontends/rusticl/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-06-28 20:37:54 +01:00
|
|
|
.collabora-farm-rules:
|
2019-10-30 19:39:08 +00:00
|
|
|
rules:
|
2022-02-24 05:40:20 +00:00
|
|
|
- if: '$COLLABORA_FARM == "offline" && $RUNNER_TAG =~ /^mesa-ci-x86-64-lava-/'
|
|
|
|
when: never
|
2022-06-28 20:37:54 +01:00
|
|
|
|
2022-06-22 00:12:29 +01:00
|
|
|
.igalia-farm-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$IGALIA_FARM == "offline"'
|
|
|
|
when: never
|
|
|
|
|
2022-05-17 15:05:36 +01:00
|
|
|
.anholt-farm-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$ANHOLT_FARM == "offline"'
|
|
|
|
when: never
|
|
|
|
|
2022-11-06 15:49:09 +00:00
|
|
|
.valve-farm-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$VALVE_FARM == "offline"'
|
|
|
|
when: never
|
2022-11-22 14:41:26 +00:00
|
|
|
# The Valve CI Farm uses allow lists for projects/users to prevent abuse,
|
|
|
|
# so only enable automatic testing when running in the context of Mesa to
|
|
|
|
# prevent failures in forks.
|
|
|
|
- if: '$CI_PROJECT_NAMESPACE != "mesa"'
|
2022-12-08 17:25:00 +00:00
|
|
|
when: never
|
2022-10-07 12:31:22 +01:00
|
|
|
|
|
|
|
.austriancoder-farm-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$AUSTRIANCODER_FARM == "offline"'
|
2022-11-24 13:01:54 +00:00
|
|
|
when: never
|
2022-11-06 15:49:09 +00:00
|
|
|
|
2022-06-28 20:37:54 +01:00
|
|
|
# Skips freedreno jobs if either of the farms we use are offline.
|
|
|
|
.freedreno-farm-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$FD_FARM == "offline"'
|
|
|
|
when: never
|
|
|
|
- !reference [.collabora-farm-rules, rules]
|
|
|
|
|
2022-06-28 21:35:43 +01:00
|
|
|
# Rules for changes that impact either freedreno or turnip.
|
|
|
|
.freedreno-common-rules:
|
|
|
|
rules:
|
2022-10-14 08:50:40 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 21:35:43 +01:00
|
|
|
- !reference [.freedreno-farm-rules, rules]
|
|
|
|
- changes: &freedreno_core_file_list
|
|
|
|
- src/freedreno/ci/**/*
|
|
|
|
- src/freedreno/common/**/*
|
|
|
|
- src/freedreno/drm/**/*
|
|
|
|
- src/freedreno/fdl/**/*
|
|
|
|
- src/freedreno/ir3/**/*
|
|
|
|
- src/freedreno/isa/**/*
|
|
|
|
- src/freedreno/registers/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-06-28 20:37:54 +01:00
|
|
|
.freedreno-rules:
|
|
|
|
stage: freedreno
|
|
|
|
rules:
|
2022-06-28 21:35:43 +01:00
|
|
|
- !reference [.freedreno-common-rules, rules]
|
2022-07-10 04:28:42 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2022-06-28 21:35:43 +01:00
|
|
|
- changes: &freedreno_gl_file_list
|
|
|
|
- src/freedreno/ir2/**/*
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/gallium/drivers/freedreno/**/*
|
|
|
|
- src/gallium/winsys/freedreno/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-06-28 21:35:43 +01:00
|
|
|
.turnip-rules:
|
|
|
|
stage: freedreno
|
|
|
|
rules:
|
|
|
|
- !reference [.freedreno-common-rules, rules]
|
2022-07-10 04:28:42 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2022-06-28 21:35:43 +01:00
|
|
|
- changes:
|
|
|
|
- src/freedreno/vulkan/**/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
# For piglit and skqp test jobs that run both GL and VK tests.
|
|
|
|
.freedreno-turnip-rules:
|
|
|
|
rules:
|
|
|
|
- !reference [.freedreno-rules, rules]
|
|
|
|
- !reference [.turnip-rules, rules]
|
|
|
|
|
2021-07-29 08:41:07 +01:00
|
|
|
.freedreno-rules-restricted:
|
|
|
|
stage: freedreno
|
|
|
|
rules:
|
2022-12-14 19:41:08 +00:00
|
|
|
- !reference [.restricted-rules, rules]
|
2022-06-28 21:11:13 +01:00
|
|
|
- !reference [.freedreno-rules, rules]
|
2021-07-29 08:41:07 +01:00
|
|
|
|
2022-07-07 19:17:13 +01:00
|
|
|
# Rules for GL driver performance tracking. We want them to run as code is
|
|
|
|
# merged to main, but we don't want them to block marge. So, they need to have
|
|
|
|
# only when: never or when: manual, and a separate script maintained by
|
|
|
|
# Collabora triggers the manual job after merge to main.
|
|
|
|
.gl-rules-performance:
|
2021-04-28 15:16:42 +01:00
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2021-04-28 15:16:42 +01:00
|
|
|
# Run only on pre-merge pipelines from Marge
|
2021-12-16 11:03:18 +00:00
|
|
|
- if: '$GITLAB_USER_LOGIN != "marge-bot" || $CI_COMMIT_BRANCH'
|
2021-04-28 15:16:42 +01:00
|
|
|
when: never
|
|
|
|
- changes:
|
|
|
|
*mesa_core_file_list
|
|
|
|
when: manual
|
|
|
|
- changes:
|
|
|
|
*gallium_core_file_list
|
|
|
|
when: manual
|
2022-07-07 19:17:13 +01:00
|
|
|
|
|
|
|
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
|
|
|
# rules duplication manually
|
|
|
|
.freedreno-rules-performance:
|
|
|
|
stage: freedreno
|
|
|
|
rules:
|
|
|
|
- !reference [.freedreno-farm-rules, rules]
|
|
|
|
- !reference [.gl-rules-performance, rules]
|
2021-04-28 15:16:42 +01:00
|
|
|
- changes:
|
2022-06-28 21:35:43 +01:00
|
|
|
*freedreno_core_file_list
|
|
|
|
when: manual
|
|
|
|
- changes:
|
|
|
|
*freedreno_gl_file_list
|
2021-04-28 15:16:42 +01:00
|
|
|
when: manual
|
|
|
|
|
2021-12-03 00:14:30 +00:00
|
|
|
.nouveau-rules:
|
|
|
|
stage: nouveau
|
|
|
|
rules:
|
2022-05-17 15:05:36 +01:00
|
|
|
- !reference [.anholt-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-12-03 00:14:30 +00:00
|
|
|
- changes:
|
|
|
|
- src/nouveau/**/*
|
|
|
|
- src/gallium/drivers/nouveau/**/*
|
|
|
|
- src/gallium/winsys/kmsro/**/*
|
|
|
|
- src/gallium/winsys/nouveau/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2021-05-21 16:01:02 +01:00
|
|
|
.panfrost-midgard-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: arm
|
2019-10-30 19:39:08 +00:00
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-05-21 16:01:02 +01:00
|
|
|
- changes: &panfrost_gallium_file_list
|
2019-10-30 19:39:08 +00:00
|
|
|
- src/gallium/drivers/panfrost/**/*
|
|
|
|
- src/gallium/winsys/panfrost/**/*
|
2021-05-21 16:01:02 +01:00
|
|
|
when: on_success
|
|
|
|
- changes: &panfrost_common_file_list
|
2021-07-05 08:25:57 +01:00
|
|
|
- src/panfrost/ci/*
|
2021-05-21 16:01:02 +01:00
|
|
|
- src/panfrost/include/*
|
|
|
|
- src/panfrost/lib/*
|
|
|
|
- src/panfrost/shared/*
|
|
|
|
- src/panfrost/util/*
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
- src/panfrost/midgard/**/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
.panfrost-bifrost-rules:
|
|
|
|
stage: arm
|
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-05-21 16:01:02 +01:00
|
|
|
- changes:
|
|
|
|
*panfrost_common_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*panfrost_gallium_file_list
|
|
|
|
when: on_success
|
2021-09-28 09:28:01 +01:00
|
|
|
- changes: &panfrost_vulkan_file_list
|
|
|
|
- src/panfrost/vulkan/*
|
|
|
|
when: on_success
|
2021-05-21 16:01:02 +01:00
|
|
|
- changes:
|
2022-12-29 19:37:06 +00:00
|
|
|
- src/panfrost/compiler/**/*
|
2019-10-30 19:39:08 +00:00
|
|
|
when: on_success
|
|
|
|
|
2022-11-11 13:49:45 +00:00
|
|
|
.broadcom-common-rules:
|
|
|
|
rules:
|
|
|
|
- changes:
|
|
|
|
- src/broadcom/meson.build
|
|
|
|
- src/broadcom/ci/**/*
|
|
|
|
- src/broadcom/cle/**/*
|
|
|
|
- src/broadcom/clif/**/*
|
|
|
|
- src/broadcom/common/**/*
|
|
|
|
- src/broadcom/compiler/**/*
|
|
|
|
- src/broadcom/drm-shim/**/*
|
|
|
|
- src/broadcom/qpu/**/*
|
|
|
|
- src/broadcom/simulator/**/*
|
|
|
|
when: on_success
|
|
|
|
|
ci: add testing for VC4 drivers (Raspberry Pi 3)
This tests OpenGL ES 2.0 CTS suite with VC4 drivers, through baremetal
Raspberry Pi 3 devices.
The devices are connected to a switch that supports Power over Ethernet
(PoE), so the devices can be started/stopped through the switch, and
also to a host that runs the GitLab runner through serial-to-USB cables,
to monitor the devices to know when the testing finishes.
The Raspberries uses a network boot, using NFS and TFTP. For the root
filesystem, they use the one created in the armhf container. For the
kernel/modules case, this is handled externally. Currently it is using
the same kernel/modules that come with the Raspberry Pi OS. In future we
could build them in the same armhf container.
At this moment we only test armhf architecture, as this is the default
one suggested by the Raspberry Pi Foundation. In future we could also
add testing for arm64 architecture.
Finally, for the very rare ocassions where the Raspberry Pi 3 device is
booted but no data is received, it retries the testing for a second
time, powering off and on the device in the process.
v2:
- Remove commit that exists capture devcoredump (Eric)
- Squash remaining commits in one (Andres)
v3:
- Add missing boot timeout check (Juan)
v4:
- Use locks when running the PoE on/off script (Eric)
- Use a timeout for serial read (Eric)
v5:
- Rename stage to "raspberrypi" (Eric)
- Bump up arm64_test tag (Eric)
v6:
- Make serial buffer timeout optional (Juan)
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7628>
2020-11-15 19:57:55 +00:00
|
|
|
.vc4-rules:
|
2021-01-25 11:33:52 +00:00
|
|
|
stage: broadcom
|
ci: add testing for VC4 drivers (Raspberry Pi 3)
This tests OpenGL ES 2.0 CTS suite with VC4 drivers, through baremetal
Raspberry Pi 3 devices.
The devices are connected to a switch that supports Power over Ethernet
(PoE), so the devices can be started/stopped through the switch, and
also to a host that runs the GitLab runner through serial-to-USB cables,
to monitor the devices to know when the testing finishes.
The Raspberries uses a network boot, using NFS and TFTP. For the root
filesystem, they use the one created in the armhf container. For the
kernel/modules case, this is handled externally. Currently it is using
the same kernel/modules that come with the Raspberry Pi OS. In future we
could build them in the same armhf container.
At this moment we only test armhf architecture, as this is the default
one suggested by the Raspberry Pi Foundation. In future we could also
add testing for arm64 architecture.
Finally, for the very rare ocassions where the Raspberry Pi 3 device is
booted but no data is received, it retries the testing for a second
time, powering off and on the device in the process.
v2:
- Remove commit that exists capture devcoredump (Eric)
- Squash remaining commits in one (Andres)
v3:
- Add missing boot timeout check (Juan)
v4:
- Use locks when running the PoE on/off script (Eric)
- Use a timeout for serial read (Eric)
v5:
- Rename stage to "raspberrypi" (Eric)
- Bump up arm64_test tag (Eric)
v6:
- Make serial buffer timeout optional (Juan)
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7628>
2020-11-15 19:57:55 +00:00
|
|
|
rules:
|
2022-06-22 00:12:29 +01:00
|
|
|
- !reference [.igalia-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2022-11-11 13:49:45 +00:00
|
|
|
- !reference [.broadcom-common-rules, rules]
|
ci: add testing for VC4 drivers (Raspberry Pi 3)
This tests OpenGL ES 2.0 CTS suite with VC4 drivers, through baremetal
Raspberry Pi 3 devices.
The devices are connected to a switch that supports Power over Ethernet
(PoE), so the devices can be started/stopped through the switch, and
also to a host that runs the GitLab runner through serial-to-USB cables,
to monitor the devices to know when the testing finishes.
The Raspberries uses a network boot, using NFS and TFTP. For the root
filesystem, they use the one created in the armhf container. For the
kernel/modules case, this is handled externally. Currently it is using
the same kernel/modules that come with the Raspberry Pi OS. In future we
could build them in the same armhf container.
At this moment we only test armhf architecture, as this is the default
one suggested by the Raspberry Pi Foundation. In future we could also
add testing for arm64 architecture.
Finally, for the very rare ocassions where the Raspberry Pi 3 device is
booted but no data is received, it retries the testing for a second
time, powering off and on the device in the process.
v2:
- Remove commit that exists capture devcoredump (Eric)
- Squash remaining commits in one (Andres)
v3:
- Add missing boot timeout check (Juan)
v4:
- Use locks when running the PoE on/off script (Eric)
- Use a timeout for serial read (Eric)
v5:
- Rename stage to "raspberrypi" (Eric)
- Bump up arm64_test tag (Eric)
v6:
- Make serial buffer timeout optional (Juan)
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7628>
2020-11-15 19:57:55 +00:00
|
|
|
- changes:
|
|
|
|
- src/gallium/drivers/vc4/**/*
|
|
|
|
- src/gallium/winsys/kmsro/**/*
|
|
|
|
- src/gallium/winsys/vc4/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2021-02-12 12:29:19 +00:00
|
|
|
.v3d-rules:
|
|
|
|
stage: broadcom
|
|
|
|
rules:
|
2022-06-22 00:12:29 +01:00
|
|
|
- !reference [.igalia-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2022-11-11 13:49:45 +00:00
|
|
|
- !reference [.broadcom-common-rules, rules]
|
2021-02-12 12:29:19 +00:00
|
|
|
- changes:
|
|
|
|
- src/gallium/drivers/v3d/**/*
|
|
|
|
- src/gallium/winsys/kmsro/**/*
|
|
|
|
- src/gallium/winsys/v3d/**/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
.v3dv-rules:
|
|
|
|
stage: broadcom
|
|
|
|
rules:
|
2022-06-22 00:12:29 +01:00
|
|
|
- !reference [.igalia-farm-rules, rules]
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2021-02-12 12:29:19 +00:00
|
|
|
- changes:
|
|
|
|
- src/broadcom/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2019-10-30 19:39:08 +00:00
|
|
|
.lima-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: arm
|
2019-10-30 19:39:08 +00:00
|
|
|
rules:
|
2022-04-21 11:30:27 +01:00
|
|
|
- if: '$LIMA_FARM == "offline"'
|
|
|
|
when: never
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2019-10-30 19:39:08 +00:00
|
|
|
- changes:
|
|
|
|
- src/gallium/drivers/lima/**/*
|
|
|
|
- src/gallium/winsys/lima/**/*
|
|
|
|
- src/lima/**/*
|
|
|
|
when: on_success
|
2020-03-09 16:53:51 +00:00
|
|
|
|
|
|
|
.radv-rules:
|
2021-05-18 07:02:51 +01:00
|
|
|
stage: amd
|
2020-03-09 16:53:51 +00:00
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2021-05-21 16:24:17 +01:00
|
|
|
- changes: &radv_file_list
|
2020-03-09 16:53:51 +00:00
|
|
|
- src/amd/**/*
|
|
|
|
- src/vulkan/**/*
|
|
|
|
when: on_success
|
2020-04-01 08:17:25 +01:00
|
|
|
|
2022-11-06 15:49:09 +00:00
|
|
|
.radv-collabora-rules:
|
|
|
|
stage: amd
|
|
|
|
rules:
|
|
|
|
- !reference [.collabora-farm-rules, rules]
|
|
|
|
- !reference [.radv-rules, rules]
|
|
|
|
|
|
|
|
.radv-valve-rules:
|
|
|
|
stage: amd
|
|
|
|
rules:
|
|
|
|
- !reference [.valve-farm-rules, rules]
|
|
|
|
- !reference [.radv-rules, rules]
|
|
|
|
|
2020-04-01 08:17:25 +01:00
|
|
|
.virgl-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: layered-backends
|
2020-04-01 08:17:25 +01:00
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2020-04-01 08:17:25 +01:00
|
|
|
- changes:
|
2020-04-29 16:56:26 +01:00
|
|
|
*llvmpipe_file_list
|
|
|
|
when: on_success
|
2021-05-21 16:24:17 +01:00
|
|
|
- changes: &virgl_file_list
|
2020-04-01 08:17:25 +01:00
|
|
|
- src/gallium/drivers/virgl/**/*
|
|
|
|
- src/gallium/winsys/virgl/**/*
|
|
|
|
when: on_success
|
2020-07-03 09:04:20 +01:00
|
|
|
|
2022-07-07 19:17:13 +01:00
|
|
|
# Unfortunately we can't sed the on_success from another rules set, so we have
|
|
|
|
# to do duplicate the files lists to set the job to manual (see
|
|
|
|
# .gl-rules-performance)
|
2022-04-25 10:01:18 +01:00
|
|
|
.virgl-iris-rules-performance:
|
2022-02-18 11:38:29 +00:00
|
|
|
stage: layered-backends
|
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-07-07 19:17:13 +01:00
|
|
|
- !reference [.gl-rules-performance, rules]
|
2022-02-18 11:38:29 +00:00
|
|
|
- changes:
|
|
|
|
*llvmpipe_file_list
|
|
|
|
when: manual
|
|
|
|
- changes:
|
|
|
|
*virgl_file_list
|
|
|
|
when: manual
|
|
|
|
|
2021-10-25 08:29:07 +01:00
|
|
|
.venus-rules:
|
|
|
|
stage: layered-backends
|
|
|
|
rules:
|
|
|
|
- !reference [.lavapipe-rules, rules]
|
|
|
|
- changes: &venus_file_list
|
|
|
|
- src/virtio/**/*
|
|
|
|
when: on_success
|
|
|
|
- when: never
|
|
|
|
|
2020-07-03 09:04:20 +01:00
|
|
|
.radeonsi-rules:
|
2020-12-02 13:50:38 +00:00
|
|
|
stage: amd
|
2020-07-03 09:04:20 +01:00
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-05-21 16:24:17 +01:00
|
|
|
- changes: &radeonsi_file_list
|
2020-07-03 09:04:20 +01:00
|
|
|
- src/gallium/drivers/radeonsi/**/*
|
2022-04-13 00:06:24 +01:00
|
|
|
- src/gallium/include/winsys/**/*
|
2020-07-03 09:04:20 +01:00
|
|
|
- src/gallium/winsys/amdgpu/**/*
|
2020-09-23 09:07:58 +01:00
|
|
|
- src/amd/*
|
|
|
|
- src/amd/addrlib/**/*
|
2022-10-12 08:11:36 +01:00
|
|
|
- src/amd/ci/*
|
2020-09-23 09:07:58 +01:00
|
|
|
- src/amd/common/**/*
|
|
|
|
- src/amd/llvm/**/*
|
|
|
|
- src/amd/registers/**/*
|
2020-07-03 09:04:20 +01:00
|
|
|
when: on_success
|
2021-10-08 21:17:27 +01:00
|
|
|
|
2022-08-30 10:49:45 +01:00
|
|
|
.radeonsi+radv-rules:
|
|
|
|
stage: amd
|
|
|
|
rules:
|
|
|
|
- !reference [.collabora-farm-rules, rules]
|
|
|
|
- !reference [.gl-rules, rules]
|
|
|
|
- changes:
|
|
|
|
*radeonsi_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*radv_file_list
|
|
|
|
when: on_success
|
|
|
|
|
2021-10-08 21:17:27 +01:00
|
|
|
.radeonsi-vaapi-rules:
|
|
|
|
stage: amd
|
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-10-08 21:17:27 +01:00
|
|
|
- changes:
|
|
|
|
*radeonsi_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes: &radeon_vcn_file_list
|
|
|
|
- src/gallium/frontends/va/**/*
|
|
|
|
when: on_success
|
2020-12-11 10:41:32 +00:00
|
|
|
|
2021-05-17 23:06:34 +01:00
|
|
|
.i915g-rules:
|
|
|
|
stage: intel
|
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-05-17 23:06:34 +01:00
|
|
|
- changes:
|
|
|
|
- src/gallium/drivers/i915/**/*
|
|
|
|
- src/gallium/winsys/i915/**/*
|
|
|
|
- src/intel/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2021-11-23 19:25:41 +00:00
|
|
|
.crocus-rules:
|
|
|
|
stage: intel
|
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-11-23 19:25:41 +00:00
|
|
|
- changes:
|
|
|
|
- src/gallium/drivers/crocus/**/*
|
|
|
|
- src/gallium/winsys/crocus/**/*
|
|
|
|
- src/intel/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2020-12-18 03:40:02 +00:00
|
|
|
.iris-rules:
|
|
|
|
stage: intel
|
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-08-06 10:10:02 +01:00
|
|
|
- changes: &iris_file_list
|
2020-12-18 03:40:02 +00:00
|
|
|
- src/gallium/drivers/iris/**/*
|
|
|
|
- src/gallium/winsys/iris/**/*
|
|
|
|
- src/intel/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-07-07 19:17:13 +01:00
|
|
|
# Unfortunately we can't sed the on_success from another rules set, so we have
|
|
|
|
# to do duplicate the files lists to set the job to manual (see
|
|
|
|
# .gl-rules-performance)
|
2021-08-06 10:10:02 +01:00
|
|
|
.iris-rules-performance:
|
|
|
|
stage: intel
|
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-07-07 19:17:13 +01:00
|
|
|
- !reference [.gl-rules-performance, rules]
|
2021-08-06 10:10:02 +01:00
|
|
|
- changes:
|
|
|
|
*iris_file_list
|
|
|
|
when: manual
|
|
|
|
|
2021-03-01 21:03:48 +00:00
|
|
|
.anv-rules:
|
|
|
|
stage: intel
|
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2021-03-01 21:03:48 +00:00
|
|
|
- changes:
|
|
|
|
- src/intel/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-04-18 15:15:11 +01:00
|
|
|
.intel-rules:
|
|
|
|
stage: intel
|
|
|
|
rules:
|
2022-06-28 20:37:54 +01:00
|
|
|
- !reference [.collabora-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
# Note that we trigger on changes both anv and iris, because piglit and skqp jobs test both.
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2022-04-18 15:15:11 +01:00
|
|
|
- changes: &iris_file_list
|
|
|
|
- src/gallium/drivers/iris/**/*
|
|
|
|
- src/gallium/winsys/iris/**/*
|
|
|
|
- src/intel/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-06-28 20:44:50 +01:00
|
|
|
.zink-common-rules:
|
2021-06-24 21:45:20 +01:00
|
|
|
rules:
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2021-06-24 21:45:20 +01:00
|
|
|
- changes:
|
2022-05-12 18:07:13 +01:00
|
|
|
- src/gallium/drivers/zink/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2022-06-28 21:45:16 +01:00
|
|
|
.zink-lvp-rules:
|
2022-05-12 18:07:13 +01:00
|
|
|
stage: layered-backends
|
|
|
|
rules:
|
2022-06-28 21:45:16 +01:00
|
|
|
- !reference [.lavapipe-rules, rules]
|
2022-07-10 04:28:42 +01:00
|
|
|
- !reference [.zink-common-rules, rules]
|
2022-06-28 20:44:50 +01:00
|
|
|
|
|
|
|
.zink-anv-rules:
|
|
|
|
stage: layered-backends
|
|
|
|
rules:
|
2022-06-28 21:41:54 +01:00
|
|
|
- !reference [.anv-rules, rules]
|
2022-07-10 04:28:42 +01:00
|
|
|
- !reference [.zink-common-rules, rules]
|
2021-06-24 21:45:20 +01:00
|
|
|
|
2022-12-14 19:41:08 +00:00
|
|
|
.zink-anv-rules-restricted:
|
|
|
|
stage: layered-backends
|
|
|
|
rules:
|
|
|
|
- !reference [.restricted-rules, rules]
|
|
|
|
- !reference [.anv-rules, rules]
|
|
|
|
- !reference [.zink-common-rules, rules]
|
|
|
|
|
2021-07-14 00:41:07 +01:00
|
|
|
.zink-turnip-rules:
|
|
|
|
stage: layered-backends
|
|
|
|
rules:
|
2022-06-28 21:35:43 +01:00
|
|
|
- !reference [.turnip-rules, rules]
|
2022-07-10 04:28:42 +01:00
|
|
|
- !reference [.zink-common-rules, rules]
|
2021-07-14 00:41:07 +01:00
|
|
|
|
2020-12-11 10:41:32 +00:00
|
|
|
# Unfortunately YAML doesn't let us concatenate arrays, so we have to do the
|
|
|
|
# rules duplication manually
|
|
|
|
.windows-build-rules:
|
|
|
|
rules:
|
2022-04-20 12:21:25 +01:00
|
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
|
|
when: never
|
2022-06-28 20:44:50 +01:00
|
|
|
- !reference [.zink-common-rules, rules]
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2021-12-27 19:10:26 +00:00
|
|
|
- changes:
|
|
|
|
*softpipe_file_list
|
|
|
|
when: on_success
|
2021-03-11 11:48:59 +00:00
|
|
|
- changes:
|
2021-03-18 19:58:04 +00:00
|
|
|
*lavapipe_file_list
|
2021-03-11 11:48:59 +00:00
|
|
|
when: on_success
|
2020-12-11 10:41:32 +00:00
|
|
|
- changes: &d3d12_file_list
|
|
|
|
- src/gallium/drivers/d3d12/**/*
|
|
|
|
- src/gallium/frontends/wgl/*
|
|
|
|
- src/gallium/winsys/d3d12/wgl/*
|
|
|
|
- src/gallium/targets/libgl-gdi/*
|
|
|
|
- src/gallium/targets/libgl-d3d12/*
|
|
|
|
when: on_success
|
2022-04-19 16:18:13 +01:00
|
|
|
- changes:
|
|
|
|
- src/microsoft/**/*
|
2022-11-15 22:59:30 +00:00
|
|
|
- src/gallium/frontends/va/*
|
|
|
|
- src/gallium/targets/va/*
|
2022-04-19 16:18:13 +01:00
|
|
|
when: on_success
|
2021-07-06 15:00:32 +01:00
|
|
|
- changes:
|
|
|
|
*radv_file_list
|
|
|
|
when: on_success
|
2020-12-02 20:28:19 +00:00
|
|
|
|
2022-04-19 16:18:13 +01:00
|
|
|
.glon12-test-rules:
|
2020-12-02 20:28:19 +00:00
|
|
|
rules:
|
2022-04-20 12:21:25 +01:00
|
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
|
|
when: never
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2022-04-19 16:18:13 +01:00
|
|
|
- changes: *d3d12_file_list
|
2020-12-02 20:28:19 +00:00
|
|
|
when: on_success
|
|
|
|
- changes:
|
2022-04-19 16:18:13 +01:00
|
|
|
- src/microsoft/compiler/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
.spirv2dxil-test-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
|
|
when: never
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.core-rules, rules]
|
2022-04-19 16:18:13 +01:00
|
|
|
- changes: &spirv2dxil_file_list
|
|
|
|
- src/microsoft/ci/*
|
|
|
|
- src/microsoft/compiler/*
|
|
|
|
- src/microsoft/spirv_to_dxil/*
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
.dozen-test-rules:
|
|
|
|
rules:
|
|
|
|
- if: '$MICROSOFT_FARM == "offline"'
|
|
|
|
when: never
|
2022-06-28 19:19:56 +01:00
|
|
|
- !reference [.vulkan-rules, rules]
|
2022-04-19 16:18:13 +01:00
|
|
|
- changes:
|
|
|
|
*spirv2dxil_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
- src/microsoft/vulkan/*
|
2021-06-23 05:40:21 +01:00
|
|
|
when: on_success
|
2021-05-21 16:24:17 +01:00
|
|
|
|
2020-06-12 12:23:44 +01:00
|
|
|
.etnaviv-rules:
|
|
|
|
stage: etnaviv
|
|
|
|
rules:
|
2022-10-07 12:31:22 +01:00
|
|
|
- !reference [.austriancoder-farm-rules, rules]
|
2022-06-28 20:59:47 +01:00
|
|
|
- !reference [.gl-rules, rules]
|
2020-06-12 12:23:44 +01:00
|
|
|
- changes:
|
|
|
|
- src/etnaviv/**/*
|
|
|
|
- src/gallium/drivers/etnaviv/**/*
|
|
|
|
- src/gallium/winsys/etnaviv/**/*
|
|
|
|
- src/gallium/auxiliary/renderonly/**/*
|
|
|
|
- src/gallium/winsys/kmsro/**/*
|
|
|
|
- src/gallium/winsys/etnaviv/**/*
|
|
|
|
when: on_success
|
|
|
|
|
2021-05-21 16:24:17 +01:00
|
|
|
# Rules for unusual architectures that only build a subset of drivers
|
|
|
|
.ppc64el-rules:
|
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 20:44:50 +01:00
|
|
|
- !reference [.zink-common-rules, rules]
|
2021-05-21 16:24:17 +01:00
|
|
|
- changes:
|
|
|
|
*softpipe_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*llvmpipe_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*lavapipe_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*radv_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*radeonsi_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*virgl_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
- src/gallium/drivers/nouveau/**/*
|
|
|
|
- src/gallium/winsys/nouveau/**/*
|
|
|
|
when: on_success
|
2021-05-21 16:25:55 +01:00
|
|
|
|
|
|
|
.s390x-rules:
|
|
|
|
rules:
|
2022-06-28 18:43:34 +01:00
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
2022-06-28 20:44:50 +01:00
|
|
|
- !reference [.zink-common-rules, rules]
|
2021-05-21 16:25:55 +01:00
|
|
|
- changes:
|
|
|
|
*softpipe_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*llvmpipe_file_list
|
|
|
|
when: on_success
|
|
|
|
- changes:
|
|
|
|
*lavapipe_file_list
|
|
|
|
when: on_success
|
2022-08-11 17:11:07 +01:00
|
|
|
|
|
|
|
# Rules for linters
|
|
|
|
.lint-rustfmt-rules:
|
|
|
|
rules:
|
|
|
|
- !reference [.no_scheduled_pipelines-rules, rules]
|
|
|
|
- !reference [.core-rules, rules]
|
|
|
|
- changes:
|
|
|
|
- src/**/*.rs
|
|
|
|
when: on_success
|