ci/freedreno: Test with non-redistributable traces

Add a job to test with traces that we cannot redistribute, listed in a
separate file. Since those traces might not be accessible by everyone,
this job is created only when the pipeline is triggered by `marge-bot`.

This job is optional because otherwise it could be blocking a merge
request of someone who cannot really debug the issue due to lack of
access to these traces.

The documentation available under `docs/ci` goes into more details
explaining the rationale behind optional traces.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6441>
This commit is contained in:
Antonio Caggiano 2021-02-10 19:07:32 +01:00 committed by Marge Bot
parent b88fd3ccc0
commit 92f9141f00
5 changed files with 97 additions and 3 deletions

View File

@ -1265,7 +1265,7 @@ debian-mingw32-x86_64:
variables:
PIGLIT_PROFILES: replay
PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_host=minio-packet.freedesktop.org --minio_bucket=mesa-tracie-public --role-session-name=${CI_PROJECT_PATH}:${CI_JOB_ID} --jwt=${CI_JOB_JWT}
PIGLIT_JUNIT_RESULTS: 1
.deqp-test:

View File

@ -212,6 +212,10 @@ fi
FAILURE_MESSAGE=$(printf "%s" "Unexpected change in results:")
if [ "x$PIGLIT_PROFILES" = "xreplay" ]; then
ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT
fi
eval $RUN_CMD
if [ $? -ne 0 ]; then
@ -237,8 +241,6 @@ mkdir -p .gitlab-ci/piglit
if [ "x$PIGLIT_PROFILES" = "xreplay" ] \
&& [ ${PIGLIT_REPLAY_UPLOAD_TO_MINIO:-0} -eq 1 ]; then
ci-fairy minio login $MINIO_ARGS $CI_JOB_JWT
__PREFIX="trace/$PIGLIT_REPLAY_DEVICE_NAME"
__MINIO_PATH="$PIGLIT_REPLAY_ARTIFACTS_BASE_URL"
__MINIO_TRACES_PREFIX="traces"

View File

@ -52,6 +52,41 @@ The three GitLab CI systems currently integrated are:
LAVA
docker
Application traces replay
-------------------------
The CI replays application traces with various drivers in two different jobs. The first
job replays traces listed in ``src/<driver>/ci/traces-<driver>.yml`` files and if any
of those traces fail the pipeline fails as well. The second job replays traces listed in
``src/<driver>/ci/restricted-traces-<driver>.yml`` and it is allowed to fail. This second
job is only created when the pipeline is triggered by `marge-bot` or any other user that
has been granted access to these traces.
A traces YAML file also includes a ``download-url`` pointing to a MinIO
instance where to download the traces from. While the first job should always work with
publicly accessible traces, the second job could point to an url with restricted access.
Restricted traces are those that have been made available to Mesa developers without a
license to redistribute at will, and thus should not be exposed to the public. Failing to
access that URL would not prevent the pipeline to pass, therefore forks made by
contributors without permissions to download non-redistributable traces can be merged
without friction.
As an aside, only maintainers of such non-redistributable traces are responsible for
ensuring that replays are successful, since other contributors would not be able to
download and test them by themselves.
Those Mesa contributors that believe they could have permission to access such
non-redistributable traces can request permission to Daniel Stone <daniels@collabora.com>.
gitlab.freedesktop.org accounts that are to be granted access to these traces will be
added to the OPA policy for the MinIO repository as per
https://gitlab.freedesktop.org/freedesktop/helm-gitlab-config/-/commit/a3cd632743019f68ac8a829267deb262d9670958 .
So the jobs are created in personal repositories, the name of the user's account needs
to be added to the rules attribute of the Gitlab CI job that accesses the restricted
accounts.
Intel CI
--------

View File

@ -1,3 +1,6 @@
variables:
PRIVATE_TRACES_COMMITTERS: "/^(robclark|anholt|flto|cwabbott0|Danil|tomeu)$/"
.freedreno-test:
extends:
- .baremetal-test
@ -279,3 +282,18 @@ a630-traces:
# missing.
MESA_GLSL_VERSION_OVERRIDE: "460"
MESA_GL_VERSION_OVERRIDE: "4.6"
a630-traces-restricted:
extends:
- a630-traces
variables:
PIGLIT_REPLAY_DESCRIPTION_FILE: "/install/restricted-traces-freedreno.yml"
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_host=minio-packet.freedesktop.org --minio_bucket=mesa-tracie-private --role-session-name=${CI_PROJECT_PATH}:${CI_JOB_ID} --jwt=${CI_JOB_JWT}
rules:
- if: '($GITLAB_USER_LOGIN =~ $PRIVATE_TRACES_COMMITTERS)'
when: on_success
- if: '($GITLAB_USER_LOGIN == "marge-bot") &&
$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
when: on_success
- when: never
allow_failure: true

View File

@ -0,0 +1,39 @@
traces-db:
download-url: "http://10.42.0.1:8888/cache/?uri=https://minio-packet.freedesktop.org/mesa-tracie-private/"
traces:
# Crashes
# - path: alien-isolation/AlienIsolation.bin.1-trim--k-f2000-v20201203.trace
# expectations:
# - device: freedreno-a630
# checksum: 4ae01533a347796097e3cefff10b029e
- path: civilization-v/CivilizationV-trim--s705-761-f762-v20201203.trace
expectations:
- device: freedreno-a630
checksum: ae376491202642d29498285e463538fa
- path: golf-with-your-friends/GolfWithYourFriends-trim--f1070-v20201203.trace
expectations:
- device: freedreno-a630
checksum: 7b08782ff6a54a3d088729363080c5b6
- path: hollow-knight/HollowKnight-trim--f2020-v20201203.trace
expectations:
- device: freedreno-a630
checksum: e72925568412a8ebdbac68c929972a55
# Crashes
# - path: ksp/KSP-trim--f4800-v20201203.trace
# expectations:
# - device: freedreno-a630
# checksum: 59da6ef5c9509616d595d1613fdac42e
- path: overcooked2/Overcooked2-trim--f3301-v20201203.trace
expectations:
- device: freedreno-a630
checksum: a45f37ca95f54eb3255f5ca24e2c14cb
# Crashes
# - path: plaugue-inc-evolved/PlagueIncEvolved-trim--f1200-v20201203.trace
# expectations:
# - device: freedreno-a630
# checksum: 59da6ef5c9509616d595d1613fdac42e
- path: portal2/Portal2-trim--f1020-v20201203.trace
expectations:
- device: freedreno-a630
checksum: 4df1b02310aa08d1e0118240d1f4ae05