2019-01-20 19:21:45 +08:00
|
|
|
variables:
|
2020-03-07 05:23:20 +08:00
|
|
|
FDO_UPSTREAM_REPO: mesa/mesa
|
2021-04-01 17:56:17 +08:00
|
|
|
MESA_TEMPLATES_COMMIT: &ci-templates-commit 290b79e0e78eab67a83766f4e9691be554fc4afd
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
CI_PRE_CLONE_SCRIPT: |-
|
|
|
|
set -o xtrace
|
2021-12-03 15:07:47 +08:00
|
|
|
wget -q -O download-git-cache.sh ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh
|
|
|
|
bash download-git-cache.sh
|
|
|
|
rm download-git-cache.sh
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
set +o xtrace
|
2020-08-24 04:32:40 +08:00
|
|
|
MINIO_HOST: minio-packet.freedesktop.org
|
2021-06-10 23:24:48 +08:00
|
|
|
# per-pipeline artifact storage on MinIO
|
|
|
|
PIPELINE_ARTIFACTS_BASE: ${MINIO_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
|
2021-06-10 23:29:39 +08:00
|
|
|
# per-job artifact storage on MinIO
|
|
|
|
JOB_ARTIFACTS_BASE: ${PIPELINE_ARTIFACTS_BASE}/${CI_JOB_ID}
|
2021-06-12 17:19:36 +08:00
|
|
|
# reference images stored for traces
|
|
|
|
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE: "${MINIO_HOST}/mesa-tracie-results/$FDO_UPSTREAM_REPO"
|
2021-08-28 01:06:16 +08:00
|
|
|
# Individual CI farm status, set to "offline" to disable jobs
|
|
|
|
# running on a particular CI farm (ie. for outages, etc):
|
2021-08-28 22:56:05 +08:00
|
|
|
FD_FARM: "online"
|
2019-04-02 15:24:00 +08:00
|
|
|
|
2021-12-02 21:13:10 +08:00
|
|
|
default:
|
|
|
|
before_script:
|
|
|
|
- echo -e "\e[0Ksection_start:$(date +%s):unset_env_vars_section[collapsed=true]\r\e[0KUnsetting vulnerable environment variables"
|
|
|
|
- export CI_JOB_JWT_FILE="${CI_JOB_JWT_FILE:-$(mktemp)}"
|
|
|
|
- echo -n "${CI_JOB_JWT}" > "${CI_JOB_JWT_FILE}"
|
|
|
|
- unset CI_JOB_JWT
|
|
|
|
- echo -e "\e[0Ksection_end:$(date +%s):unset_env_vars_section\r\e[0K"
|
|
|
|
|
|
|
|
after_script:
|
|
|
|
- >
|
|
|
|
set +x
|
|
|
|
|
|
|
|
test -e "${CI_JOB_JWT_FILE}" &&
|
|
|
|
export CI_JOB_JWT="$(<${CI_JOB_JWT_FILE})" &&
|
|
|
|
rm "${CI_JOB_JWT_FILE}"
|
|
|
|
|
2019-04-02 15:24:00 +08:00
|
|
|
include:
|
2020-03-07 05:23:20 +08:00
|
|
|
- project: 'freedesktop/ci-templates'
|
2021-11-05 11:13:01 +08:00
|
|
|
ref: 34f4ade99434043f88e164933f570301fd18b125
|
2020-11-25 00:02:13 +08:00
|
|
|
file:
|
2020-11-19 01:23:29 +08:00
|
|
|
- '/templates/ci-fairy.yml'
|
2020-12-03 00:37:16 +08:00
|
|
|
- project: 'freedesktop/ci-templates'
|
2020-12-16 01:02:04 +08:00
|
|
|
ref: *ci-templates-commit
|
2020-12-03 00:37:16 +08:00
|
|
|
file:
|
2020-11-25 00:02:13 +08:00
|
|
|
- '/templates/debian.yml'
|
2021-05-12 22:42:37 +08:00
|
|
|
- '/templates/fedora.yml'
|
2021-06-10 18:10:10 +08:00
|
|
|
- local: '.gitlab-ci/lava/lava-gitlab-ci.yml'
|
2019-10-31 03:39:08 +08:00
|
|
|
- local: '.gitlab-ci/test-source-dep.yml'
|
2021-02-19 03:12:56 +08:00
|
|
|
- local: 'src/amd/ci/gitlab-ci.yml'
|
2021-07-15 19:11:17 +08:00
|
|
|
- local: 'src/broadcom/ci/gitlab-ci.yml'
|
2020-06-12 19:23:44 +08:00
|
|
|
- local: 'src/etnaviv/ci/gitlab-ci.yml'
|
2021-02-19 03:12:56 +08:00
|
|
|
- local: 'src/freedreno/ci/gitlab-ci.yml'
|
2021-11-24 03:25:41 +08:00
|
|
|
- local: 'src/gallium/drivers/crocus/ci/gitlab-ci.yml'
|
2021-11-21 22:38:20 +08:00
|
|
|
- local: 'src/gallium/drivers/d3d12/ci/gitlab-ci.yml'
|
2021-05-18 06:06:34 +08:00
|
|
|
- local: 'src/gallium/drivers/i915/ci/gitlab-ci.yml'
|
2021-03-02 04:50:51 +08:00
|
|
|
- local: 'src/gallium/drivers/iris/ci/gitlab-ci.yml'
|
|
|
|
- local: 'src/gallium/drivers/lima/ci/gitlab-ci.yml'
|
2021-02-19 03:12:56 +08:00
|
|
|
- local: 'src/gallium/drivers/llvmpipe/ci/gitlab-ci.yml'
|
2021-03-02 04:50:51 +08:00
|
|
|
- local: 'src/gallium/drivers/radeonsi/ci/gitlab-ci.yml'
|
2021-02-19 03:12:56 +08:00
|
|
|
- local: 'src/gallium/drivers/softpipe/ci/gitlab-ci.yml'
|
|
|
|
- local: 'src/gallium/drivers/virgl/ci/gitlab-ci.yml'
|
|
|
|
- local: 'src/gallium/drivers/zink/ci/gitlab-ci.yml'
|
2021-03-19 03:58:04 +08:00
|
|
|
- local: 'src/gallium/frontends/lavapipe/ci/gitlab-ci.yml'
|
2021-11-21 22:41:37 +08:00
|
|
|
- local: 'src/microsoft/ci/gitlab-ci.yml'
|
2021-07-05 15:25:57 +08:00
|
|
|
- local: 'src/panfrost/ci/gitlab-ci.yml'
|
2019-09-18 22:03:36 +08:00
|
|
|
|
2019-01-20 19:21:45 +08:00
|
|
|
stages:
|
2020-11-19 01:32:05 +08:00
|
|
|
- sanity
|
2020-08-06 23:10:08 +08:00
|
|
|
- container
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
- git-archive
|
2021-06-16 00:23:33 +08:00
|
|
|
- build-x86_64
|
2020-12-02 21:50:38 +08:00
|
|
|
- build-misc
|
2020-12-02 21:50:38 +08:00
|
|
|
- amd
|
2020-12-18 11:40:02 +08:00
|
|
|
- intel
|
2020-12-02 21:50:38 +08:00
|
|
|
- arm
|
2021-01-25 19:33:52 +08:00
|
|
|
- broadcom
|
2020-12-02 21:50:38 +08:00
|
|
|
- freedreno
|
2020-06-12 19:23:44 +08:00
|
|
|
- etnaviv
|
2020-12-02 21:57:47 +08:00
|
|
|
- software-renderer
|
2020-12-02 21:50:38 +08:00
|
|
|
- layered-backends
|
2020-12-05 17:15:38 +08:00
|
|
|
- deploy
|
2019-01-20 19:21:45 +08:00
|
|
|
|
2020-07-07 21:02:35 +08:00
|
|
|
# Generic rule to not run the job during scheduled pipelines
|
|
|
|
# ----------------------------------------------------------
|
|
|
|
.scheduled_pipelines-rules:
|
|
|
|
rules: &ignore_scheduled_pipelines
|
2020-09-08 23:44:40 +08:00
|
|
|
if: &is-scheduled-pipeline '$CI_PIPELINE_SOURCE == "schedule"'
|
2020-07-07 21:02:35 +08:00
|
|
|
when: never
|
|
|
|
|
2020-09-08 18:20:39 +08:00
|
|
|
# YAML anchors for rule conditions
|
|
|
|
# --------------------------------
|
|
|
|
.rules-anchors:
|
|
|
|
rules:
|
2020-09-09 00:00:21 +08:00
|
|
|
# For Marge Bot
|
|
|
|
- if: &is-for-marge '$GITLAB_USER_LOGIN == "marge-bot"'
|
|
|
|
when: never
|
2020-09-08 23:52:24 +08:00
|
|
|
# Forked project branch
|
2020-09-09 00:02:58 +08:00
|
|
|
- if: &is-forked-branch '$CI_PROJECT_NAMESPACE != "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
2020-09-08 23:52:24 +08:00
|
|
|
when: manual
|
2021-04-22 19:17:40 +08:00
|
|
|
# Forked project branch / pre-merge pipeline not for Marge bot
|
|
|
|
- if: &is-forked-branch-or-pre-merge-not-for-marge '$CI_PROJECT_NAMESPACE != "mesa" || ($GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME)'
|
2020-09-08 23:30:49 +08:00
|
|
|
when: manual
|
2021-04-27 04:16:55 +08:00
|
|
|
# Pipeline runs for the main branch of the upstream Mesa project
|
|
|
|
- if: &is-mesa-main '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_DEFAULT_BRANCH'
|
2020-09-08 18:20:39 +08:00
|
|
|
when: always
|
2020-09-08 23:47:18 +08:00
|
|
|
# Post-merge pipeline
|
|
|
|
- if: &is-post-merge '$CI_PROJECT_NAMESPACE == "mesa" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
|
|
|
when: on_success
|
2020-09-08 18:36:11 +08:00
|
|
|
# Post-merge pipeline, not for Marge Bot
|
2020-09-09 00:02:58 +08:00
|
|
|
- if: &is-post-merge-not-for-marge '$CI_PROJECT_NAMESPACE == "mesa" && $GITLAB_USER_LOGIN != "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != $CI_COMMIT_REF_NAME'
|
2020-09-08 18:36:11 +08:00
|
|
|
when: on_success
|
2020-09-08 23:58:32 +08:00
|
|
|
# Pre-merge pipeline
|
|
|
|
- if: &is-pre-merge '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
|
|
|
when: on_success
|
2020-09-08 18:31:08 +08:00
|
|
|
# Pre-merge pipeline for Marge Bot
|
|
|
|
- if: &is-pre-merge-for-marge '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
|
|
|
when: on_success
|
2020-09-08 18:20:39 +08:00
|
|
|
|
|
|
|
|
2020-06-22 17:10:29 +08:00
|
|
|
.docs-base:
|
2020-11-19 01:23:29 +08:00
|
|
|
extends:
|
|
|
|
- .fdo.ci-fairy
|
|
|
|
- .ci-run-policy
|
2019-05-27 23:12:10 +08:00
|
|
|
script:
|
2021-06-15 05:55:21 +08:00
|
|
|
- apk --no-cache add graphviz doxygen
|
|
|
|
- pip3 install "sphinx<4.0" breathe mako sphinx_rtd_theme
|
|
|
|
- docs/doxygen-wrapper.py --out-dir=docs/doxygen_xml
|
2021-03-30 18:46:49 +08:00
|
|
|
- sphinx-build -W -b html docs public
|
2020-06-22 17:10:29 +08:00
|
|
|
|
|
|
|
pages:
|
|
|
|
extends: .docs-base
|
2020-06-22 17:10:40 +08:00
|
|
|
stage: deploy
|
2019-05-27 23:12:10 +08:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- public
|
2020-08-06 23:12:11 +08:00
|
|
|
needs: []
|
2020-06-22 17:21:06 +08:00
|
|
|
rules:
|
2020-07-07 21:02:35 +08:00
|
|
|
- *ignore_scheduled_pipelines
|
2021-04-27 04:16:55 +08:00
|
|
|
- if: *is-mesa-main
|
2020-06-22 17:21:06 +08:00
|
|
|
changes: &docs-or-ci
|
|
|
|
- docs/**/*
|
|
|
|
- .gitlab-ci.yml
|
2020-07-01 23:41:06 +08:00
|
|
|
when: always
|
2020-06-22 17:21:06 +08:00
|
|
|
# Other cases default to never
|
2019-01-20 19:21:45 +08:00
|
|
|
|
2020-06-22 17:10:29 +08:00
|
|
|
test-docs:
|
|
|
|
extends: .docs-base
|
2020-07-21 22:13:37 +08:00
|
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
|
|
interruptible: true
|
2020-08-06 23:10:08 +08:00
|
|
|
stage: deploy
|
2020-12-04 01:25:54 +08:00
|
|
|
needs: []
|
|
|
|
rules:
|
|
|
|
- *ignore_scheduled_pipelines
|
|
|
|
- if: *is-forked-branch
|
|
|
|
changes: *docs-or-ci
|
|
|
|
when: manual
|
|
|
|
# Other cases default to never
|
|
|
|
|
|
|
|
test-docs-mr:
|
|
|
|
extends:
|
|
|
|
- test-docs
|
2020-11-20 18:05:56 +08:00
|
|
|
needs:
|
|
|
|
- sanity
|
2021-01-09 05:08:56 +08:00
|
|
|
artifacts:
|
|
|
|
expose_as: 'Documentation preview'
|
|
|
|
paths:
|
2021-02-10 19:20:25 +08:00
|
|
|
- public/
|
2020-06-22 17:13:05 +08:00
|
|
|
rules:
|
2020-12-04 01:25:54 +08:00
|
|
|
- if: *is-pre-merge
|
2020-09-01 17:44:54 +08:00
|
|
|
changes: *docs-or-ci
|
2021-01-09 05:08:56 +08:00
|
|
|
when: on_success
|
2020-06-22 17:13:05 +08:00
|
|
|
# Other cases default to never
|
2020-06-22 17:10:29 +08:00
|
|
|
|
2019-02-22 23:52:08 +08:00
|
|
|
# When to automatically run the CI
|
2019-09-06 23:35:52 +08:00
|
|
|
.ci-run-policy:
|
2019-09-26 15:27:27 +08:00
|
|
|
rules:
|
2020-07-07 21:02:35 +08:00
|
|
|
- *ignore_scheduled_pipelines
|
2020-04-03 18:50:11 +08:00
|
|
|
# If any files affecting the pipeline are changed, build/test jobs run
|
|
|
|
# automatically once all dependency jobs have passed
|
|
|
|
- changes: &all_paths
|
2020-01-13 16:45:57 +08:00
|
|
|
- VERSION
|
2020-05-15 04:51:38 +08:00
|
|
|
- bin/git_sha1_gen.py
|
|
|
|
- bin/install_megadrivers.py
|
|
|
|
- bin/meson_get_version.py
|
|
|
|
- bin/symbols-check.py
|
2020-01-13 16:45:57 +08:00
|
|
|
# GitLab CI
|
|
|
|
- .gitlab-ci.yml
|
|
|
|
- .gitlab-ci/**/*
|
|
|
|
# Meson
|
|
|
|
- meson*
|
|
|
|
- build-support/**/*
|
|
|
|
- subprojects/**/*
|
|
|
|
# Source code
|
|
|
|
- include/**/*
|
|
|
|
- src/**/*
|
|
|
|
when: on_success
|
2020-04-03 18:50:11 +08:00
|
|
|
# Otherwise, build/test jobs won't run
|
2020-01-13 16:45:57 +08:00
|
|
|
- when: never
|
2019-03-27 01:39:41 +08:00
|
|
|
retry:
|
|
|
|
max: 2
|
|
|
|
when:
|
|
|
|
- runner_system_failure
|
2019-02-22 23:52:08 +08:00
|
|
|
|
2020-01-13 16:45:57 +08:00
|
|
|
|
2019-09-06 23:35:52 +08:00
|
|
|
.ci-deqp-artifacts:
|
2019-06-29 07:35:32 +08:00
|
|
|
artifacts:
|
2020-03-06 19:35:17 +08:00
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
2019-06-29 07:35:32 +08:00
|
|
|
when: always
|
|
|
|
untracked: false
|
|
|
|
paths:
|
|
|
|
# Watch out! Artifacts are relative to the build dir.
|
|
|
|
# https://gitlab.com/gitlab-org/gitlab-ce/commit/8788fb925706cad594adf6917a6c5f6587dd1521
|
|
|
|
- artifacts
|
2021-02-10 00:43:35 +08:00
|
|
|
- _build/meson-logs/*.txt
|
2021-03-04 19:58:56 +08:00
|
|
|
- _build/meson-logs/strace
|
2019-02-22 23:52:08 +08:00
|
|
|
|
2020-12-10 01:35:45 +08:00
|
|
|
|
2020-12-10 01:58:48 +08:00
|
|
|
# Docker image tag helper templates
|
2020-12-10 01:35:45 +08:00
|
|
|
|
|
|
|
.incorporate-templates-commit:
|
|
|
|
variables:
|
|
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
|
2020-12-12 02:00:40 +08:00
|
|
|
.incorporate-base-tag+templates-commit:
|
|
|
|
variables:
|
|
|
|
FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
|
|
|
|
2020-12-10 01:58:48 +08:00
|
|
|
.set-image:
|
2021-09-07 21:58:45 +08:00
|
|
|
extends:
|
|
|
|
- .incorporate-templates-commit
|
2020-12-10 01:58:48 +08:00
|
|
|
variables:
|
2021-09-07 21:58:45 +08:00
|
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
2020-12-10 01:58:48 +08:00
|
|
|
image: "$MESA_IMAGE"
|
|
|
|
|
2020-12-12 02:00:40 +08:00
|
|
|
.set-image-base-tag:
|
|
|
|
extends:
|
|
|
|
- .set-image
|
|
|
|
- .incorporate-base-tag+templates-commit
|
|
|
|
variables:
|
2021-09-07 21:58:45 +08:00
|
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${FDO_DISTRIBUTION_TAG}"
|
2020-12-12 02:00:40 +08:00
|
|
|
|
2020-12-10 01:35:45 +08:00
|
|
|
|
2019-12-17 18:50:14 +08:00
|
|
|
# Build the CI docker images.
|
2019-11-12 01:13:28 +08:00
|
|
|
#
|
2020-12-04 00:54:05 +08:00
|
|
|
# MESA_IMAGE_TAG is the tag of the docker image used by later stage jobs. If the
|
2019-11-12 01:13:28 +08:00
|
|
|
# image doesn't exist yet, the container stage job generates it.
|
|
|
|
#
|
|
|
|
# In order to generate a new image, one should generally change the tag.
|
|
|
|
# While removing the image from the registry would also work, that's not
|
|
|
|
# recommended except for ephemeral images during development: Replacing
|
|
|
|
# an image after a significant amount of time might pull in newer
|
|
|
|
# versions of gcc/clang or other packages, which might break the build
|
|
|
|
# with older commits using the same tag.
|
|
|
|
#
|
|
|
|
# After merging a change resulting in generating a new image to the
|
|
|
|
# main repository, it's recommended to remove the image from the source
|
|
|
|
# repository's container registry, so that the image from the main
|
|
|
|
# repository's registry will be used there as well.
|
2019-09-06 23:04:47 +08:00
|
|
|
|
2019-10-15 06:04:14 +08:00
|
|
|
.container:
|
2020-08-06 23:10:08 +08:00
|
|
|
stage: container
|
2019-10-15 06:04:14 +08:00
|
|
|
extends:
|
|
|
|
- .ci-run-policy
|
2020-12-10 01:35:45 +08:00
|
|
|
- .incorporate-templates-commit
|
2020-04-03 18:50:11 +08:00
|
|
|
rules:
|
2020-07-07 21:02:35 +08:00
|
|
|
- *ignore_scheduled_pipelines
|
2020-06-29 17:33:13 +08:00
|
|
|
# Run pipeline by default in the main project if any CI pipeline
|
|
|
|
# configuration files were changed, to ensure docker images are up to date
|
2020-09-08 23:47:18 +08:00
|
|
|
- if: *is-post-merge
|
2020-06-29 17:33:13 +08:00
|
|
|
changes:
|
|
|
|
- .gitlab-ci.yml
|
|
|
|
- .gitlab-ci/**/*
|
|
|
|
when: on_success
|
2020-04-03 17:46:12 +08:00
|
|
|
# Run pipeline by default if it was triggered by Marge Bot, is for a
|
2020-06-29 17:33:13 +08:00
|
|
|
# merge request, and any files affecting the pipeline were changed
|
2020-09-08 18:31:08 +08:00
|
|
|
- if: *is-pre-merge-for-marge
|
2020-04-03 18:50:11 +08:00
|
|
|
changes:
|
|
|
|
*all_paths
|
|
|
|
when: on_success
|
2020-06-29 17:33:13 +08:00
|
|
|
# Run pipeline by default in the main project if it was not triggered by
|
|
|
|
# Marge Bot, and any files affecting the pipeline were changed
|
2020-09-08 18:36:11 +08:00
|
|
|
- if: *is-post-merge-not-for-marge
|
2020-04-03 18:50:11 +08:00
|
|
|
changes:
|
|
|
|
*all_paths
|
|
|
|
when: on_success
|
2020-06-29 17:33:13 +08:00
|
|
|
# Allow triggering jobs manually in other cases if any files affecting the
|
|
|
|
# pipeline were changed
|
2020-04-03 17:46:12 +08:00
|
|
|
- changes:
|
2020-04-03 18:50:11 +08:00
|
|
|
*all_paths
|
|
|
|
when: manual
|
|
|
|
# Otherwise, container jobs won't run
|
|
|
|
- when: never
|
2019-10-15 06:04:14 +08:00
|
|
|
variables:
|
2021-03-19 19:52:35 +08:00
|
|
|
FDO_DISTRIBUTION_VERSION: bullseye-slim
|
2021-06-15 23:42:22 +08:00
|
|
|
FDO_REPO_SUFFIX: $CI_JOB_NAME
|
2020-06-27 01:59:41 +08:00
|
|
|
FDO_DISTRIBUTION_EXEC: 'env FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
2019-10-15 06:04:14 +08:00
|
|
|
# no need to pull the whole repo to build the container image
|
|
|
|
GIT_STRATEGY: none
|
|
|
|
|
2020-12-07 16:51:16 +08:00
|
|
|
.use-base-image:
|
|
|
|
extends:
|
|
|
|
- .container
|
2020-12-12 02:00:40 +08:00
|
|
|
- .incorporate-base-tag+templates-commit
|
2020-12-07 16:51:16 +08:00
|
|
|
# Don't want the .container rules
|
|
|
|
- .ci-run-policy
|
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based x86 build image base
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/x86_build-base:
|
2019-09-06 23:35:52 +08:00
|
|
|
extends:
|
2020-03-24 01:16:07 +08:00
|
|
|
- .fdo.container-build@debian
|
2019-10-15 06:04:14 +08:00
|
|
|
- .container
|
2019-11-12 01:13:28 +08:00
|
|
|
variables:
|
2021-11-05 11:13:01 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-x86_build-base "2021-11-25-ci-fairy"
|
2020-05-30 21:53:41 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/x86_build-base:
|
2020-05-30 21:53:41 +08:00
|
|
|
extends:
|
2020-12-07 16:51:16 +08:00
|
|
|
- .fdo.container-build@debian
|
|
|
|
- .use-base-image
|
2020-05-30 21:53:41 +08:00
|
|
|
variables:
|
2020-12-07 16:35:53 +08:00
|
|
|
MESA_BASE_IMAGE: "debian/x86_build-base"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
|
|
|
MESA_ARTIFACTS_BASE_TAG: *debian-x86_build-base
|
2020-05-30 21:53:41 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_build-base
|
2020-05-30 21:53:41 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based x86 main build image
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/x86_build:
|
2020-05-30 21:53:41 +08:00
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build-base
|
2020-05-30 21:53:41 +08:00
|
|
|
variables:
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-x86_build "2021-11-25-libdrm"
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/x86_build:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2019-11-12 01:13:28 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/x86_build"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-x86_build
|
2019-10-10 21:27:17 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_build
|
2019-10-10 21:27:17 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based i386 cross-build image
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/i386_build:
|
2020-06-02 01:08:30 +08:00
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build-base
|
2020-06-02 01:08:30 +08:00
|
|
|
variables:
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-i386_build "2021-11-25-libdrm"
|
2020-06-02 01:08:30 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/i386_build:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2020-06-02 01:08:30 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/i386_build"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-i386_build
|
2020-06-02 01:08:30 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/i386_build
|
2020-06-02 01:08:30 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based ppc64el cross-build image
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/ppc64el_build:
|
2020-06-02 01:08:30 +08:00
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build-base
|
2020-06-02 01:08:30 +08:00
|
|
|
variables:
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-ppc64el_build "2021-11-25-libdrm"
|
2020-06-02 01:08:30 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/ppc64el_build:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2020-06-02 01:08:30 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/ppc64el_build"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-ppc64el_build
|
2020-06-02 01:08:30 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/ppc64el_build
|
2020-06-02 01:08:30 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based s390x cross-build image
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/s390x_build:
|
2020-06-02 01:08:30 +08:00
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build-base
|
2020-06-02 01:08:30 +08:00
|
|
|
variables:
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-s390x_build "2021-11-25-libdrm"
|
2020-06-02 01:08:30 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/s390x_build:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2020-06-02 01:08:30 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/s390x_build"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-s390x_build
|
2020-06-02 01:08:30 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/s390x_build
|
2020-06-02 01:08:30 +08:00
|
|
|
|
2020-09-10 07:37:54 +08:00
|
|
|
# Android NDK cross-build image
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/android_build:
|
2020-09-10 07:37:54 +08:00
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build-base
|
2020-09-10 07:37:54 +08:00
|
|
|
variables:
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-android_build "2021-11-25-libdrm"
|
2020-09-10 07:37:54 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/android_build:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2020-09-10 07:37:54 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_build-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/android_build"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-android_build
|
2020-09-10 07:37:54 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/android_build
|
2020-09-10 07:37:54 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based x86 test image base
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/x86_test-base:
|
|
|
|
extends: debian/x86_build-base
|
2020-05-16 23:17:23 +08:00
|
|
|
variables:
|
2021-12-02 21:10:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-x86_test-base "2021-12-02-piglit"
|
2020-05-16 23:17:23 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/x86_test-base:
|
2020-05-16 23:17:23 +08:00
|
|
|
extends:
|
2020-12-07 16:51:16 +08:00
|
|
|
- .fdo.container-build@debian
|
|
|
|
- .use-base-image
|
2020-05-16 23:17:23 +08:00
|
|
|
variables:
|
2020-12-07 16:35:53 +08:00
|
|
|
MESA_BASE_IMAGE: "debian/x86_test-base"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_test-base
|
2020-05-16 23:17:23 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_test-base
|
2020-05-16 23:17:23 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based x86 test image for GL
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/x86_test-gl:
|
|
|
|
extends: .use-debian/x86_test-base
|
2019-11-06 01:52:24 +08:00
|
|
|
variables:
|
2021-03-08 21:05:08 +08:00
|
|
|
FDO_DISTRIBUTION_EXEC: 'env KERNEL_URL=${KERNEL_URL} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
2021-10-14 00:25:08 +08:00
|
|
|
KERNEL_URL: &kernel-rootfs-url "https://gitlab.freedesktop.org/gfx-ci/linux/-/archive/v5.15-for-mesa-ci-540a4af22d71/linux-v5.15-for-mesa-ci-540a4af22d71.tar.bz2"
|
2021-11-05 11:13:01 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-x86_test-gl "2021-11-25-ci-fairy"
|
2019-11-06 01:52:24 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based x86 test image for VK
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/x86_test-vk:
|
|
|
|
extends: .use-debian/x86_test-base
|
2019-11-18 16:23:18 +08:00
|
|
|
variables:
|
2021-12-02 21:10:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-x86_test-vk "2021-12-02-piglit"
|
2019-11-18 16:23:18 +08:00
|
|
|
|
2021-03-19 19:52:35 +08:00
|
|
|
# Debian 11 based ARM build image
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/arm_build:
|
2019-09-06 23:35:52 +08:00
|
|
|
extends:
|
2021-04-01 17:56:17 +08:00
|
|
|
- .fdo.container-build@debian
|
2019-10-15 06:04:14 +08:00
|
|
|
- .container
|
2021-04-01 17:56:17 +08:00
|
|
|
tags:
|
|
|
|
- aarch64
|
2019-06-29 07:35:32 +08:00
|
|
|
variables:
|
2021-11-05 11:13:01 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-arm_build "2021-11-25-ci-fairy"
|
2019-11-12 01:13:28 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/arm_build:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
|
|
|
- .set-image
|
2019-11-12 01:13:28 +08:00
|
|
|
variables:
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/arm_build"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-arm_build
|
|
|
|
MESA_ARTIFACTS_TAG: *debian-arm_build
|
2019-11-12 01:13:28 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/arm_build
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2021-05-12 22:42:37 +08:00
|
|
|
|
|
|
|
# Fedora 34 based x86 build image
|
|
|
|
fedora/x86_build:
|
|
|
|
extends:
|
|
|
|
- .fdo.container-build@fedora
|
|
|
|
- .container
|
|
|
|
variables:
|
|
|
|
FDO_DISTRIBUTION_VERSION: 34
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &fedora-x86_build "2021-11-25-libdrm"
|
2021-05-12 22:42:37 +08:00
|
|
|
|
|
|
|
.use-fedora/x86_build:
|
|
|
|
extends:
|
|
|
|
- .set-image
|
|
|
|
variables:
|
|
|
|
MESA_IMAGE_PATH: "fedora/x86_build"
|
|
|
|
MESA_IMAGE_TAG: *fedora-x86_build
|
|
|
|
needs:
|
|
|
|
- fedora/x86_build
|
|
|
|
|
|
|
|
|
2021-04-13 13:40:36 +08:00
|
|
|
.kernel+rootfs:
|
|
|
|
extends:
|
|
|
|
- .ci-run-policy
|
2021-09-09 18:26:39 +08:00
|
|
|
stage: container
|
2021-04-13 13:40:36 +08:00
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: fetch
|
2021-03-08 21:05:08 +08:00
|
|
|
KERNEL_URL: *kernel-rootfs-url
|
ci: Build skqp on ARM64 images
This commit makes `kernel+rootfs_arm64` job build and install skqp on
ARM64 devices rootfs.
Skia repository has a tool to prepare skqp models located at
`tools/skqp/cut-release`, which get files from [Skia
Gold](https://skia.org/docs/dev/testing/skiagold/), generate
files.checksum, rendertests.txt and unittests.txt. One gives a range of
commits to let `cut-release` find the right resources to prepare skqp
for the user. However, it is failing, since it fails when trying to get
image packages from a range of commits via HTTPS from the host
https://public-gold.skia.org but it responds with error 404 every time.
I tried a range a thousand of commits, yet it still does not give
results. The workaround employed was to recover the most recent
`files.checksum` and `rendertests.txt` files from the git history and
generate `unittests.txt` from `list_gpu_unit_tests` binary.
`skqp` runs two lists of tests, `rendertests.txt` and `unittests.txt`.
Both must be located inside the `skqp` assets folder. The first list
uses GL and GLES to test rendering scenarios. The second runs some unit
tests that do not render an image per se.
In order to make the first `a630_skqp` to be green, the crashing tests
were removed from the test lists and the expectations of the failing
ones were updated.
It is worth noting that `rendertests.txt` can bring some detail about
each test expectation, so each test can have a max pixel error count, to
tell `skqp` that it is OK to have at most that number of errors for that
test. See also:
https://github.com/google/skia/blob/main/tools/skqp/README_ALGORITHM.md
As each render backend has a different error count, two different
`rendertests.txt` files were created,
`src/freedreno/ci/freedreno-a630-skqp-gl_rendertests.txt`,
`src/freedreno/ci/freedreno-a630-skqp-gles_rendertests.txt` and
, which one refers to GL and GLES tests respectfully.
The unit tests file for a630 is located at
`src/freedreno/ci/freedreno-a630-skqp_unittests.txt`
```
aaclip
domain
formats
highcontrastfilter
rectangle_texture
yuv_make_color_space
```
```
ProcessorOptimizationValidationTest
VkProtectedContext_CreateNonprotectedContext
VkYCbcrSampler_DrawImageWithYcbcrSampler
VkYCbcrSampler_NoYcbcrSurface
```
Each test was updated with the max_error count equal to the first run result.
```
analytic_antialias_inverse
async_rescale_and_read_dog_down
async_rescale_and_read_dog_up
async_rescale_and_read_rose
async_rescale_and_read_text_down
async_rescale_and_read_text_up
async_rescale_and_read_text_up_large
async_rescale_and_read_yuv420_rose
complexclip2_path_bw
encode-platform
imageblur_large
lcdtextsize
onebadarc
onefailarc
scale-pixels
surfaceprops
textfilter_color
textfilter_image
```
Considering all the following tests results as wrong.
```
async_rescale_and_read_no_bleed
backdrop_imagefilter_croprect_persp
complexclip2
imageblurrepeatmode
mixerCF
overdrawcolorfilter
patch_alpha
patch_primitive
rrect_clip_bw
scaledemoji_rendering
yuv_splitter
```
v2:
a) add link to HTML report on job log
b) remove extraneous spaces diff
c) remove unnecessary conditions from build-skqp.sh
d) use fixed skqp source commit SHA
v3:
a) Use only main skia repository to fetch models and build skqp
b) Use list_gpu_unit_tests binary to create a base unittests.txt file
c) Remove crashing tests
d) Set failing tests expectations for the first skqp run
v4:
a) Remove clang dependency
b) Separate each skqp backend result into its folder
c) Regroup a630_skqp in one job
v5:
a) Separate tests files per driver
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/5580
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14146>
2021-12-07 22:13:00 +08:00
|
|
|
MESA_ROOTFS_TAG: &kernel-rootfs "2021-12-22-skqp"
|
2021-05-18 19:14:35 +08:00
|
|
|
DISTRIBUTION_TAG: &distribution-tag-arm "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_TAG}--${MESA_TEMPLATES_COMMIT}"
|
2021-04-13 13:40:36 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/container/lava_build.sh
|
|
|
|
|
|
|
|
kernel+rootfs_amd64:
|
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build-base
|
2021-04-13 13:40:36 +08:00
|
|
|
- .kernel+rootfs
|
|
|
|
image: "$FDO_BASE_IMAGE"
|
|
|
|
variables:
|
|
|
|
DEBIAN_ARCH: "amd64"
|
2021-05-18 19:14:35 +08:00
|
|
|
DISTRIBUTION_TAG: &distribution-tag-amd64 "${MESA_ROOTFS_TAG}--${MESA_ARTIFACTS_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
|
2021-04-13 13:40:36 +08:00
|
|
|
|
|
|
|
kernel+rootfs_arm64:
|
2021-03-29 21:09:06 +08:00
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/arm_build
|
2021-03-29 21:09:06 +08:00
|
|
|
- .kernel+rootfs
|
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
variables:
|
|
|
|
DEBIAN_ARCH: "arm64"
|
|
|
|
|
2021-04-13 13:40:36 +08:00
|
|
|
kernel+rootfs_armhf:
|
2021-03-29 21:09:06 +08:00
|
|
|
extends:
|
2021-04-13 13:40:36 +08:00
|
|
|
- kernel+rootfs_arm64
|
2021-03-29 21:09:06 +08:00
|
|
|
variables:
|
|
|
|
DEBIAN_ARCH: "armhf"
|
2021-04-13 13:40:36 +08:00
|
|
|
|
|
|
|
# Cannot use anchors defined here from included files, so use extends: instead
|
|
|
|
.use-kernel+rootfs-arm:
|
|
|
|
variables:
|
|
|
|
DISTRIBUTION_TAG: *distribution-tag-arm
|
|
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
|
|
|
|
|
|
|
.use-kernel+rootfs-amd64:
|
|
|
|
variables:
|
|
|
|
DISTRIBUTION_TAG: *distribution-tag-amd64
|
|
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
2021-03-29 21:09:06 +08:00
|
|
|
|
2021-03-30 18:54:15 +08:00
|
|
|
# x86 image with ARM64 & armhf kernel & rootfs for baremetal testing
|
2021-06-15 23:42:22 +08:00
|
|
|
debian/arm_test:
|
2020-06-08 04:03:34 +08:00
|
|
|
extends:
|
2021-03-30 18:54:15 +08:00
|
|
|
- .fdo.container-build@debian
|
|
|
|
- .container
|
|
|
|
# Don't want the .container rules
|
|
|
|
- .ci-run-policy
|
2021-03-29 21:09:06 +08:00
|
|
|
needs:
|
2021-04-13 13:40:36 +08:00
|
|
|
- kernel+rootfs_arm64
|
|
|
|
- kernel+rootfs_armhf
|
2020-05-14 02:08:08 +08:00
|
|
|
variables:
|
2021-04-13 13:40:36 +08:00
|
|
|
FDO_DISTRIBUTION_EXEC: 'env ARTIFACTS_PREFIX=https://${MINIO_HOST}/mesa-lava ARTIFACTS_SUFFIX=${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT} CI_PROJECT_PATH=${CI_PROJECT_PATH} FDO_CI_CONCURRENT=${FDO_CI_CONCURRENT} FDO_UPSTREAM_REPO=${FDO_UPSTREAM_REPO} bash .gitlab-ci/container/${CI_JOB_NAME}.sh'
|
2021-03-30 18:54:15 +08:00
|
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_ARM_BUILD_TAG: *debian-arm_build
|
2021-11-26 06:16:26 +08:00
|
|
|
MESA_IMAGE_TAG: &debian-arm_test "2021-11-25-libdrm"
|
2021-04-13 13:40:36 +08:00
|
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
2020-05-14 02:08:08 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/arm_test:
|
2021-03-30 18:54:15 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_ROOTFS_TAG}--${MESA_ARM_BUILD_TAG}--${MESA_TEMPLATES_COMMIT}"
|
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-16 03:57:55 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_ARM_BUILD_TAG: *debian-arm_build
|
2021-03-30 18:54:15 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/arm_test"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-arm_test
|
2021-04-13 13:40:36 +08:00
|
|
|
MESA_ROOTFS_TAG: *kernel-rootfs
|
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-16 03:57:55 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/arm_test
|
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-16 03:57:55 +08:00
|
|
|
|
2020-03-24 19:11:36 +08:00
|
|
|
# Native Windows docker builds
|
2020-05-20 05:01:47 +08:00
|
|
|
#
|
2021-03-22 01:27:57 +08:00
|
|
|
# Unlike the above Linux-based builds - including MinGW builds which
|
2020-03-24 19:11:36 +08:00
|
|
|
# cross-compile for Windows - which use the freedesktop ci-templates, we
|
|
|
|
# cannot use the same scheme here. As Windows lacks support for
|
|
|
|
# Docker-in-Docker, and Podman does not run natively on Windows, we have
|
|
|
|
# to open-code much of the same ourselves.
|
|
|
|
#
|
|
|
|
# This is achieved by first running in a native Windows shell instance
|
|
|
|
# (host PowerShell) in the container stage to build and push the image,
|
|
|
|
# then in the build stage by executing inside Docker.
|
|
|
|
|
|
|
|
.windows-docker-vs2019:
|
2020-12-10 01:58:48 +08:00
|
|
|
extends:
|
|
|
|
- .set-image
|
2020-03-24 19:11:36 +08:00
|
|
|
variables:
|
2021-04-14 20:34:16 +08:00
|
|
|
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}"
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "windows/x64_build"
|
2021-11-20 13:12:52 +08:00
|
|
|
MESA_IMAGE_TAG: "2021-11-19-piglit-uprev"
|
2021-04-14 20:34:16 +08:00
|
|
|
MESA_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/$MESA_IMAGE_PATH:${MESA_IMAGE_TAG}"
|
2020-03-24 19:11:36 +08:00
|
|
|
|
2021-11-08 21:08:48 +08:00
|
|
|
windows_build_vs2019:
|
2021-12-02 21:10:26 +08:00
|
|
|
inherit:
|
|
|
|
default: false
|
2020-03-24 19:11:36 +08:00
|
|
|
extends:
|
|
|
|
- .container
|
|
|
|
- .windows-docker-vs2019
|
2020-08-06 23:10:08 +08:00
|
|
|
stage: container
|
2020-03-24 19:11:36 +08:00
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: fetch # we do actually need the full repository though
|
2021-01-27 22:21:37 +08:00
|
|
|
timeout: 2h 30m # LLVM + piglit takes ages
|
2020-03-24 19:11:36 +08:00
|
|
|
tags:
|
|
|
|
- windows
|
|
|
|
- shell
|
|
|
|
- "1809"
|
2020-03-30 17:16:18 +08:00
|
|
|
- mesa
|
2020-03-24 19:11:36 +08:00
|
|
|
script:
|
2020-12-10 01:42:15 +08:00
|
|
|
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $MESA_IMAGE $MESA_UPSTREAM_IMAGE
|
2020-05-20 05:01:47 +08:00
|
|
|
|
2020-03-24 19:11:36 +08:00
|
|
|
.use-windows_build_vs2019:
|
2021-12-02 21:10:26 +08:00
|
|
|
inherit:
|
|
|
|
default: false
|
2020-03-24 19:11:36 +08:00
|
|
|
extends: .windows-docker-vs2019
|
2020-12-10 01:42:15 +08:00
|
|
|
image: "$MESA_IMAGE"
|
2020-03-24 19:11:36 +08:00
|
|
|
needs:
|
2020-04-16 21:56:18 +08:00
|
|
|
- windows_build_vs2019
|
2019-10-15 06:04:14 +08:00
|
|
|
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
|
|
|
|
# Git archive
|
|
|
|
|
|
|
|
make git archive:
|
2020-11-19 01:23:29 +08:00
|
|
|
extends:
|
|
|
|
- .fdo.ci-fairy
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
stage: git-archive
|
2020-07-07 21:02:35 +08:00
|
|
|
rules:
|
2020-09-08 23:44:40 +08:00
|
|
|
- if: *is-scheduled-pipeline
|
2020-07-07 21:02:35 +08:00
|
|
|
when: on_success
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
# ensure we are running on packet
|
|
|
|
tags:
|
|
|
|
- packet.net
|
|
|
|
script:
|
2020-12-04 21:55:54 +08:00
|
|
|
# Compactify the .git directory
|
|
|
|
- git gc --aggressive
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
# compress the current folder
|
|
|
|
- tar -cvzf ../$CI_PROJECT_NAME.tar.gz .
|
|
|
|
|
2021-12-02 21:10:26 +08:00
|
|
|
# login with the JWT token file
|
|
|
|
- ci-fairy minio login --token-file "${CI_JOB_JWT_FILE}"
|
2020-08-24 04:32:40 +08:00
|
|
|
- ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://$MINIO_HOST/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz
|
CI: reduce bandwidth for git pull
Over the last 7 days, git pulls represented a total of 1.7 TB.
On those 1.7 TB, we can see:
- ~300 GB for the CI farm on hetzner
- ~730 GB for the CI farm on packet.net
- ~680 GB for the rest of the world
We can not really change the rest of the world*, but we can
certainly reduce the egress costs towards our CI farms.
Right now, the gitlab runners are not doing a good job at
caching the git trees for the various jobs we make, and
we end up with a lot of cache-misses. A typical pipeline
ends up with a good 2.8GB of git pull data. (a compressed
archive of the mesa folder accounts for 280MB)
In this patch, we implemented what was suggested in
https://gitlab.com/gitlab-org/gitlab/-/issues/215591#note_334642576
- we host a brand new MinIO server on packet
- jobs can upload files on 2 locations:
* git-cache/<namespace>/<project>/<branch-name>.tar.gz
* artifacts/<namespace>/<project>/<pipeline-id>/
- the authorization is handled by gitlab with short tokens
valid only for the time of the job is running
- whenever a job runs, the runner are configured to execute
(eval) $CI_PRE_CLONE_SCRIPT
- this variable is set globally to download the current cache
from the MinIO packet server, unpack it and replace the
possibly out of date cache found on the runner
- then git fetch is run by the runner, and only the delta
between the upstream tree and the local tree gets pulled.
We can rebuild the git cache in a schedule job (once a day
seems sufficient), and then we can stop the cache miss
entirely.
First results showed that instead of pulling 280MB of data
in my fork, I got a pull of only 250KB. That should help us.
* arguably, there are other farms in the rest of the world, so
hopefully we can change those too.
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5428>
2020-06-11 23:16:28 +08:00
|
|
|
|
|
|
|
|
2020-08-06 23:37:33 +08:00
|
|
|
# Sanity checks of MR settings and commit logs
|
2020-11-19 01:48:47 +08:00
|
|
|
sanity:
|
2020-11-19 01:23:29 +08:00
|
|
|
extends:
|
|
|
|
- .fdo.ci-fairy
|
2020-08-06 23:37:33 +08:00
|
|
|
stage: sanity
|
|
|
|
rules:
|
2020-12-10 19:48:32 +08:00
|
|
|
- if: *is-pre-merge
|
2020-08-06 23:37:33 +08:00
|
|
|
when: on_success
|
|
|
|
# Other cases default to never
|
2020-12-04 01:58:09 +08:00
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none
|
2020-08-06 23:37:33 +08:00
|
|
|
script:
|
2020-12-01 21:27:42 +08:00
|
|
|
# ci-fairy check-commits --junit-xml=check-commits.xml
|
2020-11-19 01:48:47 +08:00
|
|
|
- ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml
|
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
reports:
|
|
|
|
junit: check-*.xml
|
2020-08-06 23:37:33 +08:00
|
|
|
|
|
|
|
|
2019-01-20 19:26:53 +08:00
|
|
|
# BUILD
|
|
|
|
|
2019-10-24 05:21:31 +08:00
|
|
|
# Shared between windows and Linux
|
|
|
|
.build-common:
|
2019-10-15 06:52:58 +08:00
|
|
|
extends: .ci-run-policy
|
2020-07-21 22:13:37 +08:00
|
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
|
|
interruptible: true
|
2019-01-20 19:26:53 +08:00
|
|
|
artifacts:
|
2020-03-06 19:35:17 +08:00
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
2019-07-25 00:27:48 +08:00
|
|
|
when: always
|
|
|
|
paths:
|
|
|
|
- _build/meson-logs/*.txt
|
2021-03-04 19:58:56 +08:00
|
|
|
- _build/meson-logs/strace
|
2019-04-11 06:59:12 +08:00
|
|
|
- shader-db
|
2019-10-24 05:21:31 +08:00
|
|
|
|
|
|
|
# Just Linux
|
|
|
|
.build-linux:
|
|
|
|
extends: .build-common
|
2019-04-05 00:01:27 +08:00
|
|
|
variables:
|
|
|
|
CCACHE_COMPILERCHECK: "content"
|
2019-11-20 16:11:35 +08:00
|
|
|
CCACHE_COMPRESS: "true"
|
|
|
|
CCACHE_DIR: /cache/mesa/ccache
|
2019-02-13 00:59:27 +08:00
|
|
|
# Use ccache transparently, and print stats before/after
|
|
|
|
before_script:
|
2021-12-02 21:10:26 +08:00
|
|
|
- !reference [default, before_script]
|
2019-02-13 00:59:27 +08:00
|
|
|
- export PATH="/usr/lib/ccache:$PATH"
|
|
|
|
- export CCACHE_BASEDIR="$PWD"
|
2019-11-20 16:11:35 +08:00
|
|
|
- ccache --show-stats
|
2019-02-13 00:59:27 +08:00
|
|
|
after_script:
|
|
|
|
- ccache --show-stats
|
2021-12-02 21:10:26 +08:00
|
|
|
- !reference [default, after_script]
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2019-10-24 05:36:19 +08:00
|
|
|
.build-windows:
|
|
|
|
extends: .build-common
|
|
|
|
tags:
|
2020-03-24 19:11:36 +08:00
|
|
|
- windows
|
|
|
|
- docker
|
|
|
|
- "1809"
|
2020-03-30 22:58:51 +08:00
|
|
|
- mesa
|
2019-10-24 05:36:19 +08:00
|
|
|
cache:
|
|
|
|
key: ${CI_JOB_NAME}
|
|
|
|
paths:
|
|
|
|
- subprojects/packagecache
|
|
|
|
|
2019-01-20 19:26:53 +08:00
|
|
|
.meson-build:
|
2019-10-15 06:52:58 +08:00
|
|
|
extends:
|
2019-10-24 05:21:31 +08:00
|
|
|
- .build-linux
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_build
|
2021-06-16 00:23:33 +08:00
|
|
|
stage: build-x86_64
|
2019-12-13 18:02:16 +08:00
|
|
|
variables:
|
2021-03-19 19:25:54 +08:00
|
|
|
LLVM_VERSION: 11
|
2019-02-13 00:59:27 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-testing:
|
2019-09-06 23:35:52 +08:00
|
|
|
extends:
|
|
|
|
- .meson-build
|
|
|
|
- .ci-deqp-artifacts
|
2019-11-19 19:23:41 +08:00
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "enabled"
|
2019-11-19 19:23:41 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=dri
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gbm=enabled
|
|
|
|
-D egl=enabled
|
2019-06-25 22:44:16 +08:00
|
|
|
-D platforms=x11
|
2019-11-19 19:23:41 +08:00
|
|
|
GALLIUM_ST: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D dri3=enabled
|
2021-10-09 04:17:27 +08:00
|
|
|
-D gallium-va=enabled
|
2021-11-24 03:25:41 +08:00
|
|
|
GALLIUM_DRIVERS: "swrast,virgl,radeonsi,zink,crocus,iris,i915"
|
2020-08-19 11:32:24 +08:00
|
|
|
VULKAN_DRIVERS: "swrast,amd"
|
2019-11-19 19:23:41 +08:00
|
|
|
BUILDTYPE: "debugoptimized"
|
2019-12-17 13:23:02 +08:00
|
|
|
EXTRA_OPTION: >
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2021-02-16 04:35:41 +08:00
|
|
|
MINIO_ARTIFACT_NAME: mesa-amd64
|
2019-11-19 19:23:41 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2019-11-19 19:23:41 +08:00
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-testing-asan:
|
2020-12-01 04:01:23 +08:00
|
|
|
extends:
|
2021-06-16 00:23:33 +08:00
|
|
|
- debian-testing
|
2020-12-01 04:01:23 +08:00
|
|
|
variables:
|
2021-04-11 18:50:36 +08:00
|
|
|
C_ARGS: >
|
|
|
|
-Wno-error=stringop-truncation
|
2020-12-01 04:01:23 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D b_sanitize=address
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2021-02-16 04:35:41 +08:00
|
|
|
MINIO_ARTIFACT_NAME: ""
|
2021-01-15 01:56:52 +08:00
|
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
2020-12-01 04:01:23 +08:00
|
|
|
|
2021-12-18 02:25:36 +08:00
|
|
|
debian-testing-msan:
|
|
|
|
extends:
|
|
|
|
- debian-clang
|
|
|
|
variables:
|
|
|
|
# l_undef is incompatible with msan
|
|
|
|
EXTRA_OPTION:
|
|
|
|
-D b_sanitize=memory
|
|
|
|
-D b_lundef=false
|
|
|
|
MINIO_ARTIFACT_NAME: ""
|
|
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
|
|
# Don't run all the tests yet:
|
|
|
|
# GLSL has some issues in sexpression reading.
|
|
|
|
# gtest has issues in its test initialization.
|
|
|
|
MESON_TEST_ARGS: "--suite glcpp --suite gallium --suite format"
|
|
|
|
# Freedreno dropped because freedreno tools fail at msan.
|
|
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus"
|
|
|
|
VULKAN_DRIVERS: intel,amd,broadcom,virtio-experimental
|
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-clover-testing:
|
2020-09-29 06:40:13 +08:00
|
|
|
extends:
|
|
|
|
- .meson-build
|
|
|
|
- .ci-deqp-artifacts
|
|
|
|
variables:
|
|
|
|
UNWIND: "enabled"
|
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=disabled
|
|
|
|
-D egl=disabled
|
|
|
|
-D gbm=disabled
|
|
|
|
GALLIUM_ST: >
|
|
|
|
-D gallium-opencl=icd
|
|
|
|
-D opencl-spirv=true
|
|
|
|
GALLIUM_DRIVERS: "swrast"
|
|
|
|
BUILDTYPE: "debugoptimized"
|
2020-11-18 04:06:53 +08:00
|
|
|
EXTRA_OPTION: >
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2020-09-29 06:40:13 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2020-09-29 06:40:13 +08:00
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-gallium:
|
2019-11-19 19:23:41 +08:00
|
|
|
extends: .meson-build
|
2019-08-28 18:01:02 +08:00
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "enabled"
|
2019-08-28 18:01:02 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=dri
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gbm=enabled
|
|
|
|
-D egl=enabled
|
2019-06-25 22:44:16 +08:00
|
|
|
-D platforms=x11,wayland
|
2019-08-28 18:01:02 +08:00
|
|
|
GALLIUM_ST: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D dri3=enabled
|
2019-08-28 18:01:02 +08:00
|
|
|
-D gallium-extra-hud=true
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gallium-vdpau=enabled
|
|
|
|
-D gallium-xvmc=enabled
|
2019-08-28 18:01:02 +08:00
|
|
|
-D gallium-omx=bellagio
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gallium-va=enabled
|
|
|
|
-D gallium-xa=enabled
|
2019-08-28 18:01:02 +08:00
|
|
|
-D gallium-nine=true
|
|
|
|
-D gallium-opencl=disabled
|
2021-06-09 20:16:23 +08:00
|
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,asahi,crocus"
|
2020-06-19 14:40:27 +08:00
|
|
|
VULKAN_DRIVERS: swrast
|
2019-08-28 18:01:02 +08:00
|
|
|
EXTRA_OPTION: >
|
2019-07-04 02:10:32 +08:00
|
|
|
-D osmesa=true
|
2019-08-28 18:01:02 +08:00
|
|
|
-D tools=all
|
2019-10-24 00:42:53 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2019-10-24 00:42:53 +08:00
|
|
|
- .gitlab-ci/run-shader-db.sh
|
2019-08-28 18:01:02 +08:00
|
|
|
|
2020-08-25 01:15:35 +08:00
|
|
|
# Test a release build with -Werror so new warnings don't sneak in.
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-release:
|
2020-08-25 01:15:35 +08:00
|
|
|
extends: .meson-build
|
|
|
|
variables:
|
|
|
|
UNWIND: "enabled"
|
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=dri
|
|
|
|
-D gbm=enabled
|
|
|
|
-D egl=enabled
|
|
|
|
-D platforms=x11,wayland
|
|
|
|
GALLIUM_ST: >
|
|
|
|
-D dri3=enabled
|
|
|
|
-D gallium-extra-hud=true
|
|
|
|
-D gallium-vdpau=enabled
|
|
|
|
-D gallium-xvmc=disabled
|
|
|
|
-D gallium-omx=disabled
|
|
|
|
-D gallium-va=enabled
|
|
|
|
-D gallium-xa=enabled
|
|
|
|
-D gallium-nine=false
|
|
|
|
-D gallium-opencl=disabled
|
|
|
|
-D llvm=false
|
2021-07-14 02:25:19 +08:00
|
|
|
GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,d3d12,crocus"
|
2021-09-30 19:39:24 +08:00
|
|
|
VULKAN_DRIVERS: "amd"
|
2020-08-25 01:15:35 +08:00
|
|
|
BUILDTYPE: "release"
|
|
|
|
EXTRA_OPTION: >
|
2020-12-03 09:10:27 +08:00
|
|
|
-D osmesa=true
|
2020-08-25 01:15:35 +08:00
|
|
|
-D tools=all
|
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2020-08-25 01:15:35 +08:00
|
|
|
|
2021-05-12 22:55:00 +08:00
|
|
|
fedora-release:
|
|
|
|
extends:
|
|
|
|
- .meson-build
|
|
|
|
- .use-fedora/x86_build
|
|
|
|
variables:
|
|
|
|
BUILDTYPE: "release"
|
|
|
|
C_ARGS: >
|
|
|
|
-Wno-error=array-bounds
|
|
|
|
-Wno-error=maybe-uninitialized
|
|
|
|
-Wno-error=stringop-overread
|
|
|
|
-Wno-error=uninitialized
|
|
|
|
CPP_ARGS: >
|
|
|
|
-Wno-error=array-bounds
|
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=dri
|
|
|
|
-D gbm=enabled
|
|
|
|
-D egl=enabled
|
|
|
|
-D glvnd=true
|
|
|
|
-D platforms=x11,wayland
|
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D osmesa=true
|
|
|
|
-D selinux=true
|
|
|
|
-D tools=drm-shim,etnaviv,freedreno,glsl,intel,nir,nouveau,lima,panfrost
|
|
|
|
GALLIUM_DRIVERS: "crocus,etnaviv,freedreno,iris,kmsro,lima,nouveau,panfrost,r300,r600,radeonsi,svga,swrast,tegra,v3d,vc4,virgl,zink"
|
|
|
|
GALLIUM_ST: >
|
|
|
|
-D dri3=enabled
|
|
|
|
-D gallium-extra-hud=true
|
|
|
|
-D gallium-vdpau=enabled
|
|
|
|
-D gallium-xvmc=disabled
|
|
|
|
-D gallium-omx=disabled
|
|
|
|
-D gallium-va=enabled
|
|
|
|
-D gallium-xa=enabled
|
|
|
|
-D gallium-nine=false
|
|
|
|
-D gallium-opencl=icd
|
|
|
|
-D gles1=disabled
|
|
|
|
-D gles2=enabled
|
|
|
|
-D llvm=enabled
|
|
|
|
-D microsoft-clc=disabled
|
|
|
|
-D shared-llvm=enabled
|
|
|
|
-D vulkan-device-select-layer=true
|
|
|
|
LLVM_VERSION: ""
|
|
|
|
UNWIND: "disabled"
|
|
|
|
VULKAN_DRIVERS: "amd,broadcom,freedreno,intel"
|
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson/build.sh
|
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-android:
|
2020-09-10 07:37:54 +08:00
|
|
|
extends:
|
|
|
|
- .meson-cross
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/android_build
|
2020-07-29 06:35:36 +08:00
|
|
|
variables:
|
|
|
|
UNWIND: "disabled"
|
2021-04-11 18:45:46 +08:00
|
|
|
C_ARGS: >
|
|
|
|
-Wno-error=absolute-value
|
|
|
|
-Wno-error=asm-operand-widths
|
|
|
|
-Wno-error=constant-conversion
|
|
|
|
-Wno-error=enum-conversion
|
|
|
|
-Wno-error=extern-initializer
|
|
|
|
-Wno-error=initializer-overrides
|
|
|
|
-Wno-error=missing-braces
|
|
|
|
-Wno-error=sometimes-uninitialized
|
|
|
|
-Wno-error=tautological-constant-out-of-range-compare
|
|
|
|
-Wno-error=unused-function
|
|
|
|
-Wno-error=unused-label
|
|
|
|
CPP_ARGS: >
|
|
|
|
-Wno-error=deprecated-declarations
|
|
|
|
-Wno-error=non-virtual-dtor
|
2020-07-29 06:35:36 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=disabled
|
|
|
|
-D gbm=disabled
|
|
|
|
-D egl=enabled
|
|
|
|
-D platforms=android
|
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D android-stub=true
|
2020-09-10 07:37:54 +08:00
|
|
|
-D llvm=disabled
|
2021-04-22 05:00:34 +08:00
|
|
|
-D platform-sdk-version=29
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2020-07-29 06:35:36 +08:00
|
|
|
GALLIUM_ST: >
|
|
|
|
-D dri3=disabled
|
|
|
|
-D gallium-vdpau=disabled
|
|
|
|
-D gallium-xvmc=disabled
|
|
|
|
-D gallium-omx=disabled
|
|
|
|
-D gallium-va=disabled
|
|
|
|
-D gallium-xa=disabled
|
|
|
|
-D gallium-nine=false
|
|
|
|
-D gallium-opencl=disabled
|
2020-09-10 07:37:54 +08:00
|
|
|
LLVM_VERSION: ""
|
2021-03-23 04:19:01 +08:00
|
|
|
PKG_CONFIG_LIBDIR: "/disable/non/android/system/pc/files"
|
2020-09-10 07:37:54 +08:00
|
|
|
script:
|
2021-04-09 12:01:58 +08:00
|
|
|
- PKG_CONFIG_PATH=/usr/local/lib/aarch64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/pkgconfig/ CROSS=aarch64-linux-android GALLIUM_DRIVERS=etnaviv,freedreno,lima,panfrost,vc4,v3d VULKAN_DRIVERS=freedreno,broadcom,virtio-experimental .gitlab-ci/meson/build.sh
|
2020-09-10 07:37:54 +08:00
|
|
|
# x86_64 build:
|
|
|
|
# Can't do Intel because gen_decoder.c currently requires libexpat, which
|
2021-09-16 03:20:47 +08:00
|
|
|
# is not a dependency that AOSP wants to accept. Can't do Radeon Gallium
|
|
|
|
# drivers because they requires LLVM, which we don't have an Android build
|
|
|
|
# of.
|
|
|
|
- PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/:/android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=amd,intel .gitlab-ci/meson/build.sh
|
2020-07-29 06:35:36 +08:00
|
|
|
|
2019-09-13 17:59:43 +08:00
|
|
|
.meson-cross:
|
|
|
|
extends:
|
|
|
|
- .meson-build
|
2020-12-02 21:50:38 +08:00
|
|
|
stage: build-misc
|
2019-09-13 17:59:43 +08:00
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "disabled"
|
2019-09-13 17:59:43 +08:00
|
|
|
DRI_LOADERS: >
|
2020-10-17 20:00:45 +08:00
|
|
|
-D glx=dri
|
2020-10-27 05:01:07 +08:00
|
|
|
-D gbm=enabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D egl=enabled
|
2020-10-17 20:00:45 +08:00
|
|
|
-D platforms=x11
|
2019-07-04 02:10:32 +08:00
|
|
|
-D osmesa=false
|
2019-09-13 17:59:43 +08:00
|
|
|
GALLIUM_ST: >
|
2020-10-17 20:00:45 +08:00
|
|
|
-D dri3=enabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gallium-vdpau=disabled
|
|
|
|
-D gallium-xvmc=disabled
|
2019-09-13 17:59:43 +08:00
|
|
|
-D gallium-omx=disabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gallium-va=disabled
|
|
|
|
-D gallium-xa=disabled
|
2019-09-13 17:59:43 +08:00
|
|
|
-D gallium-nine=false
|
|
|
|
|
2019-10-09 01:46:11 +08:00
|
|
|
.meson-arm:
|
2019-11-12 01:13:28 +08:00
|
|
|
extends:
|
|
|
|
- .meson-cross
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/arm_build
|
2020-10-22 23:58:35 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/arm_build
|
2019-09-13 17:59:43 +08:00
|
|
|
variables:
|
2020-10-01 18:08:17 +08:00
|
|
|
VULKAN_DRIVERS: freedreno,broadcom
|
2019-10-09 01:48:41 +08:00
|
|
|
GALLIUM_DRIVERS: "etnaviv,freedreno,kmsro,lima,nouveau,panfrost,swrast,tegra,v3d,vc4"
|
2019-12-17 18:50:14 +08:00
|
|
|
BUILDTYPE: "debugoptimized"
|
2019-10-09 01:46:11 +08:00
|
|
|
tags:
|
|
|
|
- aarch64
|
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-armhf:
|
2019-12-17 18:50:14 +08:00
|
|
|
extends:
|
|
|
|
- .meson-arm
|
|
|
|
- .ci-deqp-artifacts
|
2019-10-09 01:46:11 +08:00
|
|
|
variables:
|
|
|
|
CROSS: armhf
|
2020-02-25 02:31:33 +08:00
|
|
|
EXTRA_OPTION: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D llvm=disabled
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2021-02-16 04:35:41 +08:00
|
|
|
MINIO_ARTIFACT_NAME: mesa-armhf
|
2019-12-17 18:50:14 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2019-12-17 18:50:14 +08:00
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
2019-09-13 17:59:43 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-arm64:
|
2019-10-09 01:46:11 +08:00
|
|
|
extends:
|
|
|
|
- .meson-arm
|
|
|
|
- .ci-deqp-artifacts
|
2019-09-13 17:59:43 +08:00
|
|
|
variables:
|
2021-08-30 15:26:19 +08:00
|
|
|
VULKAN_DRIVERS: "freedreno,broadcom,panfrost"
|
2020-02-25 02:31:33 +08:00
|
|
|
EXTRA_OPTION: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D llvm=disabled
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2021-02-16 04:35:41 +08:00
|
|
|
MINIO_ARTIFACT_NAME: mesa-arm64
|
2019-10-24 00:42:53 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2019-10-24 00:42:53 +08:00
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
2019-09-13 17:59:43 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-arm64-asan:
|
2020-12-16 07:47:51 +08:00
|
|
|
extends:
|
2021-06-16 00:23:33 +08:00
|
|
|
- debian-arm64
|
2020-12-16 07:47:51 +08:00
|
|
|
variables:
|
2021-04-11 18:50:36 +08:00
|
|
|
C_ARGS: >
|
|
|
|
-Wno-error=stringop-truncation
|
2020-12-16 07:47:51 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D llvm=disabled
|
|
|
|
-D b_sanitize=address
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2020-12-16 07:47:51 +08:00
|
|
|
ARTIFACTS_DEBUG_SYMBOLS: 1
|
|
|
|
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
|
|
|
MESON_TEST_ARGS: "--no-suite mesa:compiler"
|
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-arm64-build-test:
|
2020-02-20 23:37:48 +08:00
|
|
|
extends:
|
|
|
|
- .meson-arm
|
|
|
|
- .ci-deqp-artifacts
|
|
|
|
variables:
|
|
|
|
VULKAN_DRIVERS: "amd"
|
2020-08-03 22:19:38 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-Dtools=panfrost
|
2020-02-20 23:37:48 +08:00
|
|
|
script:
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2020-02-20 23:37:48 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-clang:
|
2019-03-20 22:58:31 +08:00
|
|
|
extends: .meson-build
|
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "enabled"
|
2021-04-11 18:45:46 +08:00
|
|
|
C_ARGS: >
|
|
|
|
-Wno-error=constant-conversion
|
|
|
|
-Wno-error=enum-conversion
|
|
|
|
-Wno-error=implicit-const-int-float-conversion
|
|
|
|
-Wno-error=initializer-overrides
|
|
|
|
-Wno-error=sometimes-uninitialized
|
|
|
|
-Wno-error=unused-function
|
|
|
|
CPP_ARGS: >
|
|
|
|
-Wno-error=c99-designator
|
|
|
|
-Wno-error=deprecated-declarations
|
|
|
|
-Wno-error=implicit-const-int-float-conversion
|
|
|
|
-Wno-error=missing-braces
|
|
|
|
-Wno-error=overloaded-virtual
|
|
|
|
-Wno-error=tautological-constant-out-of-range-compare
|
|
|
|
-Wno-error=unused-const-variable
|
|
|
|
-Wno-error=unused-private-field
|
2019-11-19 21:37:32 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glvnd=true
|
2021-12-22 18:28:46 +08:00
|
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra,d3d12,crocus,i915,asahi"
|
|
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental,swrast,panfrost
|
2021-03-19 19:52:35 +08:00
|
|
|
CC: clang
|
|
|
|
CXX: clang++
|
2019-03-20 22:58:31 +08:00
|
|
|
|
2021-11-08 21:08:48 +08:00
|
|
|
windows-vs2019:
|
2019-10-24 05:36:19 +08:00
|
|
|
extends:
|
|
|
|
- .build-windows
|
2020-03-24 19:11:36 +08:00
|
|
|
- .use-windows_build_vs2019
|
2020-12-11 18:41:32 +08:00
|
|
|
- .windows-build-rules
|
2020-12-02 21:50:38 +08:00
|
|
|
stage: build-misc
|
2019-10-24 05:36:19 +08:00
|
|
|
script:
|
2020-03-24 19:11:36 +08:00
|
|
|
- . .\.gitlab-ci\windows\mesa_build.ps1
|
2020-06-05 04:55:52 +08:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2021-06-09 19:39:32 +08:00
|
|
|
- _build/meson-logs/*.txt
|
2020-06-05 04:55:52 +08:00
|
|
|
- _install/
|
2019-10-24 05:36:19 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-clover:
|
2019-01-29 02:05:22 +08:00
|
|
|
extends: .meson-build
|
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "enabled"
|
2019-01-29 02:05:22 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=disabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D egl=disabled
|
|
|
|
-D gbm=disabled
|
2020-05-31 05:55:28 +08:00
|
|
|
GALLIUM_DRIVERS: "r600,radeonsi"
|
2019-01-29 02:05:22 +08:00
|
|
|
GALLIUM_ST: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D dri3=disabled
|
|
|
|
-D gallium-vdpau=disabled
|
|
|
|
-D gallium-xvmc=disabled
|
2019-01-29 02:05:22 +08:00
|
|
|
-D gallium-omx=disabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gallium-va=disabled
|
|
|
|
-D gallium-xa=disabled
|
2019-01-29 02:05:22 +08:00
|
|
|
-D gallium-nine=false
|
|
|
|
-D gallium-opencl=icd
|
2020-11-18 04:06:53 +08:00
|
|
|
EXTRA_OPTION: >
|
2021-03-12 01:17:52 +08:00
|
|
|
-D valgrind=false
|
2019-05-03 16:58:48 +08:00
|
|
|
script:
|
2021-04-15 03:46:15 +08:00
|
|
|
- LLVM_VERSION=9 GALLIUM_DRIVERS=r600,swrast .gitlab-ci/meson/build.sh
|
2021-03-09 01:11:27 +08:00
|
|
|
- .gitlab-ci/meson/build.sh
|
2019-09-06 23:04:47 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-vulkan:
|
2019-05-04 00:19:25 +08:00
|
|
|
extends: .meson-build
|
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "disabled"
|
2019-05-04 00:19:25 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glx=disabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gbm=disabled
|
|
|
|
-D egl=disabled
|
2019-06-25 22:44:16 +08:00
|
|
|
-D platforms=x11,wayland
|
2019-07-04 02:10:32 +08:00
|
|
|
-D osmesa=false
|
2019-05-04 00:19:25 +08:00
|
|
|
GALLIUM_ST: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D dri3=enabled
|
|
|
|
-D gallium-vdpau=disabled
|
|
|
|
-D gallium-xvmc=disabled
|
2019-05-04 00:19:25 +08:00
|
|
|
-D gallium-omx=disabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gallium-va=disabled
|
|
|
|
-D gallium-xa=disabled
|
2019-05-04 00:19:25 +08:00
|
|
|
-D gallium-nine=false
|
|
|
|
-D gallium-opencl=disabled
|
2019-09-25 18:56:58 +08:00
|
|
|
-D b_sanitize=undefined
|
|
|
|
-D c_args=-fno-sanitize-recover=all
|
|
|
|
-D cpp_args=-fno-sanitize-recover=all
|
|
|
|
UBSAN_OPTIONS: "print_stacktrace=1"
|
2021-04-09 12:01:58 +08:00
|
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom,virtio-experimental
|
2019-05-09 00:17:23 +08:00
|
|
|
EXTRA_OPTION: >
|
2021-03-26 22:50:08 +08:00
|
|
|
-D vulkan-layers=device-select,overlay
|
2020-06-03 21:25:12 +08:00
|
|
|
-D build-aco-tests=true
|
2019-05-04 00:19:25 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-i386:
|
2020-06-02 01:08:30 +08:00
|
|
|
extends:
|
|
|
|
- .meson-cross
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/i386_build
|
2019-07-12 03:58:28 +08:00
|
|
|
variables:
|
2019-08-10 06:46:50 +08:00
|
|
|
CROSS: i386
|
2021-04-09 12:01:58 +08:00
|
|
|
VULKAN_DRIVERS: intel,amd,swrast,virtio-experimental
|
2021-06-03 03:52:40 +08:00
|
|
|
GALLIUM_DRIVERS: "iris,nouveau,r300,r600,radeonsi,swrast,virgl,zink,crocus"
|
2019-07-12 03:58:28 +08:00
|
|
|
EXTRA_OPTION: >
|
2021-03-26 22:50:08 +08:00
|
|
|
-D vulkan-layers=device-select,overlay
|
2019-07-12 03:58:28 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-s390x:
|
2020-01-31 01:21:15 +08:00
|
|
|
extends:
|
2021-06-16 00:23:33 +08:00
|
|
|
- debian-ppc64el
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/s390x_build
|
2021-05-21 23:25:55 +08:00
|
|
|
- .s390x-rules
|
2020-03-19 01:41:43 +08:00
|
|
|
tags:
|
|
|
|
- kvm
|
2020-01-31 01:21:15 +08:00
|
|
|
variables:
|
|
|
|
CROSS: s390x
|
2021-01-08 23:10:53 +08:00
|
|
|
GALLIUM_DRIVERS: "swrast,zink"
|
2021-03-19 19:52:35 +08:00
|
|
|
# The lp_test_blend test times out with LLVM 11
|
|
|
|
LLVM_VERSION: 9
|
2021-01-08 23:10:53 +08:00
|
|
|
VULKAN_DRIVERS: "swrast"
|
2020-01-31 01:21:15 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-ppc64el:
|
2020-01-31 01:21:15 +08:00
|
|
|
extends:
|
2021-03-19 19:52:35 +08:00
|
|
|
- .meson-cross
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/ppc64el_build
|
2021-05-21 23:24:17 +08:00
|
|
|
- .ppc64el-rules
|
2020-01-31 01:21:15 +08:00
|
|
|
variables:
|
|
|
|
CROSS: ppc64el
|
2021-01-08 23:10:53 +08:00
|
|
|
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl,zink"
|
|
|
|
VULKAN_DRIVERS: "amd,swrast"
|
2020-01-31 01:21:15 +08:00
|
|
|
|
2021-06-16 00:23:33 +08:00
|
|
|
debian-mingw32-x86_64:
|
2019-09-20 01:21:51 +08:00
|
|
|
extends: .meson-build
|
2020-12-02 21:50:38 +08:00
|
|
|
stage: build-misc
|
2019-09-20 01:21:51 +08:00
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "disabled"
|
2021-04-11 18:50:36 +08:00
|
|
|
C_ARGS: >
|
|
|
|
-Wno-error=format
|
|
|
|
-Wno-error=format-extra-args
|
|
|
|
CPP_ARGS: $C_ARGS
|
2019-09-20 01:21:51 +08:00
|
|
|
GALLIUM_DRIVERS: "swrast"
|
|
|
|
EXTRA_OPTION: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-Dllvm=disabled
|
2021-03-20 18:41:25 +08:00
|
|
|
-Dzlib=disabled
|
2019-07-04 02:10:32 +08:00
|
|
|
-Dosmesa=true
|
2019-09-20 01:21:51 +08:00
|
|
|
--cross-file=.gitlab-ci/x86_64-w64-mingw32
|
|
|
|
|
2019-11-18 16:30:27 +08:00
|
|
|
.test:
|
2019-10-15 06:53:15 +08:00
|
|
|
extends:
|
2019-10-22 23:16:52 +08:00
|
|
|
- .ci-run-policy
|
2020-07-21 22:13:37 +08:00
|
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
|
|
interruptible: true
|
2019-10-15 06:53:15 +08:00
|
|
|
variables:
|
2019-10-22 23:16:52 +08:00
|
|
|
GIT_STRATEGY: none # testing doesn't build anything from source
|
|
|
|
before_script:
|
2021-12-02 21:10:26 +08:00
|
|
|
- !reference [default, before_script]
|
2019-06-29 07:35:32 +08:00
|
|
|
# Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY
|
|
|
|
- rm -rf install
|
|
|
|
- tar -xf artifacts/install.tar
|
2019-11-14 21:00:46 +08:00
|
|
|
- LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \;
|
2019-06-29 07:35:32 +08:00
|
|
|
artifacts:
|
2019-11-18 03:33:01 +08:00
|
|
|
when: always
|
2020-03-06 19:35:17 +08:00
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
2019-06-29 07:35:32 +08:00
|
|
|
paths:
|
|
|
|
- results/
|
2019-11-18 16:30:27 +08:00
|
|
|
|
2021-06-15 23:42:22 +08:00
|
|
|
.use-debian/x86_test-gl:
|
2019-11-18 16:30:27 +08:00
|
|
|
extends:
|
|
|
|
- .test
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2019-11-18 16:30:27 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_test-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/x86_test-gl"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-x86_test-gl
|
2019-10-22 17:19:17 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_test-gl
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2020-09-29 06:40:13 +08:00
|
|
|
.test-gl:
|
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_test-gl
|
2020-09-29 06:40:13 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_test-gl
|
2021-06-16 00:23:33 +08:00
|
|
|
- debian-testing
|
2020-09-29 06:40:13 +08:00
|
|
|
|
2019-11-18 16:30:27 +08:00
|
|
|
.test-vk:
|
|
|
|
extends:
|
|
|
|
- .test
|
2020-12-12 02:00:40 +08:00
|
|
|
- .set-image-base-tag
|
2019-11-18 16:30:27 +08:00
|
|
|
variables:
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_BASE_TAG: *debian-x86_test-base
|
2020-12-10 01:58:48 +08:00
|
|
|
MESA_IMAGE_PATH: "debian/x86_test-vk"
|
2021-06-15 23:42:22 +08:00
|
|
|
MESA_IMAGE_TAG: *debian-x86_test-vk
|
2019-11-18 16:30:27 +08:00
|
|
|
needs:
|
2021-06-16 00:23:33 +08:00
|
|
|
- debian-testing
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_test-vk
|
2019-11-18 16:30:27 +08:00
|
|
|
|
2020-09-29 06:40:13 +08:00
|
|
|
.test-cl:
|
|
|
|
extends:
|
2021-06-15 23:42:22 +08:00
|
|
|
- .use-debian/x86_test-gl
|
2020-09-29 06:40:13 +08:00
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/x86_test-gl
|
2021-06-16 00:23:33 +08:00
|
|
|
- debian-clover-testing
|
2020-09-29 06:40:13 +08:00
|
|
|
|
2021-05-18 21:54:54 +08:00
|
|
|
.vkd3d-proton-test:
|
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
|
|
paths:
|
|
|
|
- results/vkd3d-proton.log
|
|
|
|
script:
|
2021-06-01 03:35:25 +08:00
|
|
|
- ./install/vkd3d-proton/run.sh
|
2021-05-18 21:54:54 +08:00
|
|
|
|
2019-10-22 23:16:52 +08:00
|
|
|
.piglit-test:
|
2019-11-26 01:42:10 +08:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
2020-03-06 19:35:17 +08:00
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
2019-11-26 01:42:10 +08:00
|
|
|
paths:
|
2021-02-17 06:28:02 +08:00
|
|
|
- results/summary/
|
2020-12-12 02:40:57 +08:00
|
|
|
- results/*.txt
|
2019-10-22 23:16:52 +08:00
|
|
|
variables:
|
|
|
|
PIGLIT_NO_WINDOW: 1
|
2021-12-02 21:10:26 +08:00
|
|
|
CI_JOB_JWT_FILE: /minio_jwt # JWT file on piglit jobs should be available on / partition
|
2019-10-22 23:16:52 +08:00
|
|
|
script:
|
2020-03-24 19:58:30 +08:00
|
|
|
- install/piglit/run.sh
|
2019-10-22 23:16:52 +08:00
|
|
|
|
2020-08-19 21:42:56 +08:00
|
|
|
.piglit-traces-test:
|
2020-09-29 06:40:13 +08:00
|
|
|
extends:
|
|
|
|
- .piglit-test
|
2020-08-19 21:42:56 +08:00
|
|
|
cache:
|
|
|
|
key: ${CI_JOB_NAME}
|
|
|
|
paths:
|
|
|
|
- replayer-db/
|
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
|
|
reports:
|
|
|
|
junit: results/junit.xml
|
|
|
|
variables:
|
2021-12-02 21:10:26 +08:00
|
|
|
CI_JOB_JWT_FILE: /minio_jwt # JWT file on piglit jobs should be available on / partition
|
2020-08-19 21:42:56 +08:00
|
|
|
PIGLIT_PROFILES: replay
|
|
|
|
PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
|
2021-12-02 21:10:26 +08:00
|
|
|
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-file=${CI_JOB_JWT_FILE}
|
2020-08-19 21:42:56 +08:00
|
|
|
PIGLIT_JUNIT_RESULTS: 1
|
|
|
|
|
2019-11-19 15:39:00 +08:00
|
|
|
.deqp-test:
|
2019-10-22 23:16:52 +08:00
|
|
|
script:
|
2020-03-24 19:58:30 +08:00
|
|
|
- ./install/deqp-runner.sh
|
2020-12-19 08:47:51 +08:00
|
|
|
artifacts:
|
2021-02-06 06:46:48 +08:00
|
|
|
exclude:
|
|
|
|
- results/*.shader_cache
|
2020-12-19 08:47:51 +08:00
|
|
|
reports:
|
|
|
|
junit: results/junit.xml
|
2019-10-22 23:16:52 +08:00
|
|
|
|
2019-11-19 15:39:00 +08:00
|
|
|
.deqp-test-vk:
|
|
|
|
extends:
|
|
|
|
- .deqp-test
|
|
|
|
variables:
|
|
|
|
DEQP_VER: vk
|
|
|
|
|
2020-02-26 16:33:14 +08:00
|
|
|
.fossilize-test:
|
|
|
|
script:
|
2020-03-24 19:58:30 +08:00
|
|
|
- ./install/fossilize-runner.sh
|
2020-06-25 17:21:12 +08:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
|
|
paths:
|
|
|
|
- results/
|
2020-02-26 16:33:14 +08:00
|
|
|
|
2020-03-20 02:45:01 +08:00
|
|
|
# Rules for tests that should not be present in MRs or the main
|
|
|
|
# project's pipeline (don't block marge or report red on
|
2021-04-27 04:16:55 +08:00
|
|
|
# mesa/mesa main) but should be present on pipelines in personal
|
2020-03-20 02:45:01 +08:00
|
|
|
# branches (so you can opt in to running the flaky test when you want
|
|
|
|
# to).
|
|
|
|
.test-manual:
|
|
|
|
rules:
|
2020-07-07 21:02:35 +08:00
|
|
|
- *ignore_scheduled_pipelines
|
2020-09-08 23:52:24 +08:00
|
|
|
- if: *is-forked-branch
|
2020-04-11 21:32:02 +08:00
|
|
|
changes:
|
|
|
|
*all_paths
|
|
|
|
when: manual
|
|
|
|
- when: never
|
2020-12-04 01:59:25 +08:00
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none
|
2021-10-22 22:23:21 +08:00
|
|
|
JOB_TIMEOUT: 80
|
2020-03-20 02:45:01 +08:00
|
|
|
|
2021-04-22 19:17:40 +08:00
|
|
|
# The above .test-manual rules doesn't allow the jobs to be available for MRs
|
|
|
|
# but we should have an option to have manual jobs in MRs as well.
|
|
|
|
.test-manual-mr:
|
|
|
|
rules:
|
|
|
|
- *ignore_scheduled_pipelines
|
|
|
|
- if: *is-forked-branch-or-pre-merge-not-for-marge
|
|
|
|
changes:
|
|
|
|
*all_paths
|
|
|
|
when: manual
|
|
|
|
- when: never
|
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none
|
2021-10-22 22:23:21 +08:00
|
|
|
JOB_TIMEOUT: 80
|
2021-04-22 19:17:40 +08:00
|
|
|
|
2020-03-04 06:38:09 +08:00
|
|
|
.baremetal-test:
|
|
|
|
extends:
|
|
|
|
- .ci-run-policy
|
2020-06-09 06:09:51 +08:00
|
|
|
- .test
|
2020-07-21 22:13:37 +08:00
|
|
|
# Cancel job if a newer commit is pushed to the same branch
|
|
|
|
interruptible: true
|
2020-03-04 06:38:09 +08:00
|
|
|
stage: test
|
2021-01-22 07:41:18 +08:00
|
|
|
before_script:
|
2021-12-02 21:10:26 +08:00
|
|
|
- !reference [default, before_script]
|
2021-01-22 07:41:18 +08:00
|
|
|
# Use this instead of gitlab's artifacts download because it hits packet.net
|
|
|
|
# instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to
|
|
|
|
# improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for
|
|
|
|
# setup).
|
2021-06-10 23:24:48 +08:00
|
|
|
- wget ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${MINIO_ARTIFACT_NAME}.tar.gz -S --progress=dot:giga -O- | tar -xz
|
2020-05-16 02:22:37 +08:00
|
|
|
artifacts:
|
|
|
|
when: always
|
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
|
|
paths:
|
|
|
|
- results/
|
|
|
|
- serial*.txt
|
2020-12-22 02:55:40 +08:00
|
|
|
exclude:
|
|
|
|
- results/*.shader_cache
|
2020-12-19 08:47:51 +08:00
|
|
|
reports:
|
|
|
|
junit: results/junit.xml
|
2020-03-04 06:38:09 +08:00
|
|
|
|
2021-02-12 20:29:19 +08:00
|
|
|
.baremetal-test-armhf:
|
|
|
|
extends:
|
|
|
|
- .baremetal-test
|
|
|
|
variables:
|
2021-11-10 22:48:50 +08:00
|
|
|
BM_ROOTFS: /rootfs-armhf
|
2021-02-16 04:35:41 +08:00
|
|
|
MINIO_ARTIFACT_NAME: mesa-armhf
|
2021-02-12 20:29:19 +08:00
|
|
|
|
2021-11-10 22:54:57 +08:00
|
|
|
.baremetal-test-arm64:
|
|
|
|
extends:
|
|
|
|
- .baremetal-test
|
|
|
|
variables:
|
|
|
|
BM_ROOTFS: /rootfs-arm64
|
|
|
|
MINIO_ARTIFACT_NAME: mesa-arm64
|
|
|
|
|
2020-12-16 07:47:51 +08:00
|
|
|
.baremetal-arm64-asan-test:
|
|
|
|
variables:
|
2021-10-12 07:07:23 +08:00
|
|
|
DEQP_RUNNER_OPTIONS: "--env LD_PRELOAD=libasan.so.6"
|
2020-12-16 07:47:51 +08:00
|
|
|
MINIO_ARTIFACT_NAME: mesa-arm64-asan
|
|
|
|
needs:
|
2021-06-15 23:42:22 +08:00
|
|
|
- debian/arm_test
|
2021-06-16 00:23:33 +08:00
|
|
|
- job: debian-arm64-asan
|
2020-12-16 07:47:51 +08:00
|
|
|
artifacts: false
|
|
|
|
|
2020-11-15 03:50:18 +08:00
|
|
|
.baremetal-deqp-test:
|
|
|
|
variables:
|
2021-06-11 23:53:54 +08:00
|
|
|
HWCI_TEST_SCRIPT: "/install/deqp-runner.sh"
|
2021-10-12 07:03:47 +08:00
|
|
|
FDO_CI_CONCURRENT: 0 # Default to number of CPUs
|