2019-01-20 19:21:45 +08:00
|
|
|
variables:
|
2020-03-07 05:23:20 +08:00
|
|
|
FDO_UPSTREAM_REPO: mesa/mesa
|
2020-12-04 00:30:56 +08:00
|
|
|
MESA_TEMPLATES_COMMIT: &ci-templates-commit 43ac932d5b8ebf43040d302de3c6e734df178384
|
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
|
|
|
|
/usr/bin/wget -q -O- ${CI_PROJECT_URL}/-/raw/${CI_COMMIT_SHA}/.gitlab-ci/download-git-cache.sh | sh -
|
|
|
|
set +o xtrace
|
2020-08-24 04:32:40 +08:00
|
|
|
MINIO_HOST: minio-packet.freedesktop.org
|
2019-04-02 15:24:00 +08:00
|
|
|
|
|
|
|
include:
|
2020-03-07 05:23:20 +08:00
|
|
|
- project: 'freedesktop/ci-templates'
|
2020-12-04 00:30:56 +08:00
|
|
|
ref: *ci-templates-commit
|
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'
|
|
|
|
ref: 52dd4a94044449c8481d18dcdc221a3c636366d2
|
|
|
|
file:
|
2020-11-25 00:02:13 +08:00
|
|
|
- '/templates/debian.yml'
|
2019-10-24 05:36:19 +08:00
|
|
|
- local: '.gitlab-ci/lava-gitlab-ci.yml'
|
2019-10-31 03:39:08 +08:00
|
|
|
- local: '.gitlab-ci/test-source-dep.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
|
2020-05-16 23:17:23 +08:00
|
|
|
- container-2
|
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
|
2020-02-28 01:27:56 +08:00
|
|
|
- meson-x86_64
|
2020-12-02 21:50:38 +08:00
|
|
|
- build-misc
|
2020-12-02 21:50:38 +08:00
|
|
|
- amd
|
2020-12-02 21:50:38 +08:00
|
|
|
- arm
|
|
|
|
- freedreno
|
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
|
|
|
- raspberrypi
|
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
|
2020-01-13 16:45:57 +08:00
|
|
|
- success
|
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
|
2020-09-08 23:30:49 +08:00
|
|
|
# Forked project branch / pre-merge pipeline
|
2020-09-09 00:02:58 +08:00
|
|
|
- if: &is-forked-branch-or-pre-merge '$CI_PROJECT_NAMESPACE != "mesa" || $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
|
2020-09-08 23:30:49 +08:00
|
|
|
when: manual
|
2020-09-08 18:20:39 +08:00
|
|
|
# Pipeline runs for the master branch of the main project
|
2020-09-03 00:35:32 +08:00
|
|
|
- if: &is-main-master '$CI_PROJECT_NAMESPACE == "mesa" && $CI_COMMIT_REF_NAME == "master" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME != "master"'
|
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:
|
2020-11-19 01:23:29 +08:00
|
|
|
- apk --no-cache add graphviz
|
2019-05-27 23:12:10 +08:00
|
|
|
- pip3 install sphinx sphinx_rtd_theme
|
|
|
|
- sphinx-build -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
|
2020-09-08 18:20:39 +08:00
|
|
|
- if: *is-main-master
|
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
|
2020-06-22 17:13:05 +08:00
|
|
|
rules:
|
2020-09-08 18:31:08 +08:00
|
|
|
- if: *is-pre-merge-for-marge
|
2020-06-22 17:21:06 +08:00
|
|
|
changes: *docs-or-ci
|
2020-09-01 00:46:37 +08:00
|
|
|
when: on_success
|
2020-12-04 01:25:54 +08:00
|
|
|
- if: *is-pre-merge
|
2020-09-01 17:44:54 +08:00
|
|
|
changes: *docs-or-ci
|
2020-06-22 17:13:05 +08:00
|
|
|
when: manual
|
|
|
|
# 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/**/*
|
|
|
|
# SCons
|
|
|
|
- SConstruct
|
|
|
|
- scons/**/*
|
|
|
|
- common.py
|
|
|
|
# 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
|
|
|
success:
|
|
|
|
stage: success
|
|
|
|
image: debian:stable-slim
|
2020-06-22 17:16:17 +08:00
|
|
|
rules:
|
2020-07-07 21:02:35 +08:00
|
|
|
- *ignore_scheduled_pipelines
|
2020-09-08 23:47:18 +08:00
|
|
|
- if: *is-post-merge
|
2020-06-22 17:16:17 +08:00
|
|
|
when: never
|
2020-09-09 00:00:21 +08:00
|
|
|
- if: *is-for-marge
|
2020-06-22 17:16:17 +08:00
|
|
|
changes: *docs-or-ci
|
|
|
|
when: never
|
|
|
|
- changes: *all_paths
|
|
|
|
when: never
|
2020-09-08 23:58:32 +08:00
|
|
|
- if: *is-pre-merge
|
2020-08-28 23:08:57 +08:00
|
|
|
when: on_success
|
2020-01-21 01:34:34 +08:00
|
|
|
variables:
|
|
|
|
GIT_STRATEGY: none
|
2020-01-13 16:45:57 +08:00
|
|
|
script:
|
|
|
|
- echo "Dummy job to make sure every merge request pipeline runs at least one job"
|
|
|
|
|
|
|
|
|
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
|
2019-02-22 23:52:08 +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-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:
|
2020-12-04 00:54:05 +08:00
|
|
|
FDO_DISTRIBUTION_TAG: "${MESA_IMAGE_TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-03-07 05:23:20 +08:00
|
|
|
FDO_DISTRIBUTION_VERSION: buster-slim
|
2020-03-24 01:16:07 +08:00
|
|
|
FDO_REPO_SUFFIX: "debian/$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
|
|
|
|
# Don't want the .container rules
|
|
|
|
- .ci-run-policy
|
|
|
|
stage: container-2
|
|
|
|
variables:
|
|
|
|
FDO_BASE_IMAGE: "${CI_REGISTRY_IMAGE}/${MESA_BASE_IMAGE}:${MESA_BASE_TAG}-${MESA_TEMPLATES_COMMIT}"
|
|
|
|
|
2020-05-30 21:53:41 +08:00
|
|
|
# Debian 10 based x86 build image base
|
|
|
|
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:
|
2020-08-25 02:56:41 +08:00
|
|
|
MESA_IMAGE_TAG: &x86_build-base "2020-12-17-use-ephemeral"
|
2020-05-30 21:53:41 +08:00
|
|
|
|
|
|
|
.use-x86_build-base:
|
|
|
|
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"
|
|
|
|
MESA_BASE_TAG: *x86_build-base
|
2020-05-30 21:53:41 +08:00
|
|
|
needs:
|
|
|
|
- x86_build-base
|
|
|
|
|
|
|
|
# Debian 10 based x86 main build image
|
|
|
|
x86_build:
|
|
|
|
extends:
|
|
|
|
- .use-x86_build-base
|
|
|
|
variables:
|
2020-08-25 02:56:41 +08:00
|
|
|
MESA_IMAGE_TAG: &x86_build "2020-12-17-use-ephemeral"
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2019-11-14 00:43:41 +08:00
|
|
|
.use-x86_build:
|
2019-11-12 01:13:28 +08:00
|
|
|
variables:
|
|
|
|
TAG: *x86_build
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/x86_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2019-10-10 21:27:17 +08:00
|
|
|
needs:
|
2019-11-14 00:43:41 +08:00
|
|
|
- x86_build
|
2019-10-10 21:27:17 +08:00
|
|
|
|
2020-06-02 01:08:30 +08:00
|
|
|
# Debian 10 based i386 cross-build image
|
|
|
|
i386_build:
|
|
|
|
extends:
|
|
|
|
- .use-x86_build-base
|
|
|
|
variables:
|
2020-08-25 02:56:41 +08:00
|
|
|
MESA_IMAGE_TAG: &i386_build "2020-12-17-use-ephemeral"
|
2020-06-02 01:08:30 +08:00
|
|
|
|
|
|
|
.use-i386_build:
|
|
|
|
variables:
|
|
|
|
TAG: *i386_build
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/i386_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-06-02 01:08:30 +08:00
|
|
|
needs:
|
|
|
|
- i386_build
|
|
|
|
|
|
|
|
# Debian 10 based ppc64el cross-build image
|
|
|
|
ppc64el_build:
|
|
|
|
extends:
|
|
|
|
- .use-x86_build-base
|
|
|
|
variables:
|
2020-08-25 02:56:41 +08:00
|
|
|
MESA_IMAGE_TAG: &ppc64el_build "2020-12-17-use-ephemeral"
|
2020-06-02 01:08:30 +08:00
|
|
|
|
|
|
|
.use-ppc64el_build:
|
|
|
|
variables:
|
|
|
|
TAG: *ppc64el_build
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/ppc64el_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-06-02 01:08:30 +08:00
|
|
|
needs:
|
|
|
|
- ppc64el_build
|
|
|
|
|
|
|
|
# Debian 10 based s390x cross-build image
|
|
|
|
s390x_build:
|
|
|
|
extends:
|
|
|
|
- .use-x86_build-base
|
|
|
|
variables:
|
2020-08-25 02:56:41 +08:00
|
|
|
MESA_IMAGE_TAG: &s390x_build "2020-12-17-use-ephemeral"
|
2020-06-02 01:08:30 +08:00
|
|
|
|
|
|
|
.use-s390x_build:
|
|
|
|
variables:
|
|
|
|
TAG: *s390x_build
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/s390x_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-06-02 01:08:30 +08:00
|
|
|
needs:
|
|
|
|
- s390x_build
|
|
|
|
|
2020-09-10 07:37:54 +08:00
|
|
|
# Android NDK cross-build image
|
|
|
|
android_build:
|
|
|
|
extends:
|
|
|
|
- .use-x86_build-base
|
|
|
|
variables:
|
2020-08-25 02:56:41 +08:00
|
|
|
MESA_IMAGE_TAG: &android_build "2020-12-17-use-ephemeral"
|
2020-09-10 07:37:54 +08:00
|
|
|
|
|
|
|
.use-android_build:
|
|
|
|
variables:
|
|
|
|
TAG: *android_build
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/android_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-09-10 07:37:54 +08:00
|
|
|
needs:
|
|
|
|
- android_build
|
|
|
|
|
2020-05-16 23:17:23 +08:00
|
|
|
# Debian 10 based x86 test image base
|
|
|
|
x86_test-base:
|
2020-05-30 21:53:41 +08:00
|
|
|
extends: x86_build-base
|
2020-05-16 23:17:23 +08:00
|
|
|
variables:
|
2020-08-24 19:09:17 +08:00
|
|
|
MESA_IMAGE_TAG: &x86_test-base "2020-12-17-install-ci-fairy"
|
2020-05-16 23:17:23 +08:00
|
|
|
|
|
|
|
.use-x86_test-base:
|
|
|
|
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"
|
|
|
|
MESA_BASE_TAG: *x86_test-base
|
2020-05-16 23:17:23 +08:00
|
|
|
needs:
|
|
|
|
- x86_test-base
|
|
|
|
|
2019-11-18 16:15:12 +08:00
|
|
|
# Debian 10 based x86 test image for GL
|
|
|
|
x86_test-gl:
|
2020-05-16 23:17:23 +08:00
|
|
|
extends: .use-x86_test-base
|
2019-11-06 01:52:24 +08:00
|
|
|
variables:
|
2020-08-17 17:09:56 +08:00
|
|
|
MESA_IMAGE_TAG: &x86_test-gl "2020-12-18-piglit-replayer"
|
2019-11-06 01:52:24 +08:00
|
|
|
|
2019-11-18 16:23:18 +08:00
|
|
|
# Debian 10 based x86 test image for VK
|
|
|
|
x86_test-vk:
|
2020-05-16 23:17:23 +08:00
|
|
|
extends: .use-x86_test-base
|
2019-11-18 16:23:18 +08:00
|
|
|
variables:
|
2020-08-24 19:10:24 +08:00
|
|
|
MESA_IMAGE_TAG: &x86_test-vk "2020-12-19-build-piglit"
|
2019-11-18 16:23:18 +08:00
|
|
|
|
2019-11-12 01:13:28 +08:00
|
|
|
# Debian 10 based ARM build image
|
2019-11-14 00:43:41 +08:00
|
|
|
arm_build:
|
2019-09-06 23:35:52 +08:00
|
|
|
extends:
|
2020-12-03 00:37:16 +08:00
|
|
|
- .fdo.container-build@debian@arm64v8
|
2019-10-15 06:04:14 +08:00
|
|
|
- .container
|
2019-06-29 07:35:32 +08:00
|
|
|
variables:
|
2020-12-04 00:54:05 +08:00
|
|
|
MESA_IMAGE_TAG: &arm_build "2020-12-02"
|
2019-11-12 01:13:28 +08:00
|
|
|
|
|
|
|
.use-arm_build:
|
|
|
|
variables:
|
|
|
|
TAG: *arm_build
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/arm_build:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2019-11-12 01:13:28 +08:00
|
|
|
needs:
|
|
|
|
- arm_build
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2020-06-08 04:03:34 +08:00
|
|
|
# Debian 10 based x86 baremetal image base
|
|
|
|
arm_test-base:
|
|
|
|
extends:
|
|
|
|
- .fdo.container-build@debian
|
|
|
|
- .container
|
|
|
|
variables:
|
2020-12-04 00:54:05 +08:00
|
|
|
MESA_IMAGE_TAG: &arm_test-base "2020-12-03-expect"
|
2020-06-08 04:03:34 +08:00
|
|
|
|
|
|
|
.use-arm_test-base:
|
|
|
|
extends:
|
2020-12-07 16:51:16 +08:00
|
|
|
- .fdo.container-build@debian
|
|
|
|
- .use-base-image
|
2020-06-08 04:03:34 +08:00
|
|
|
variables:
|
2020-12-07 16:35:53 +08:00
|
|
|
MESA_BASE_IMAGE: "debian/arm_test-base"
|
|
|
|
MESA_BASE_TAG: *arm_test-base
|
2020-06-08 04:03:34 +08:00
|
|
|
needs:
|
|
|
|
- arm_test-base
|
|
|
|
|
2020-06-08 05:19:50 +08:00
|
|
|
# x86 image with ARM64 rootfs for baremetal testing.
|
|
|
|
arm64_test:
|
2020-06-08 04:03:34 +08:00
|
|
|
extends:
|
|
|
|
- .use-arm_test-base
|
2020-05-14 02:08:08 +08:00
|
|
|
variables:
|
2020-08-28 03:18:17 +08:00
|
|
|
MESA_IMAGE_TAG: &arm64_test "2020-12-19-build-piglit"
|
2020-05-14 02:08:08 +08:00
|
|
|
|
2020-06-08 05:19:50 +08:00
|
|
|
.use-arm64_test:
|
2020-05-14 02:08:08 +08:00
|
|
|
variables:
|
2020-06-08 05:19:50 +08:00
|
|
|
TAG: *arm64_test
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/arm64_test:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-05-14 02:08:08 +08:00
|
|
|
needs:
|
2020-06-08 05:19:50 +08:00
|
|
|
- arm64_test
|
2020-05-14 02:08:08 +08:00
|
|
|
|
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
|
|
|
# x86 image with armhf rootfs for baremetal testing
|
|
|
|
armhf_test:
|
|
|
|
extends:
|
|
|
|
- .use-arm_test-base
|
|
|
|
variables:
|
2020-08-28 03:18:17 +08:00
|
|
|
MESA_IMAGE_TAG: &armhf_test "2020-12-19-build-piglit"
|
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
|
|
|
|
|
|
|
.use-armhf_test:
|
|
|
|
variables:
|
|
|
|
TAG: *armhf_test
|
2020-12-09 00:18:47 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/armhf_test:${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
|
|
|
needs:
|
|
|
|
- armhf_test
|
|
|
|
|
2020-03-24 19:11:36 +08:00
|
|
|
# Native Windows docker builds
|
2020-05-20 05:01:47 +08:00
|
|
|
#
|
2020-03-24 19:11:36 +08:00
|
|
|
# Unlike the above Linux-based builds - including MinGW/SCons builds which
|
|
|
|
# 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:
|
|
|
|
variables:
|
2020-12-03 00:37:16 +08:00
|
|
|
WINDOWS_TAG: "2020-12-02"
|
2020-12-04 00:54:05 +08:00
|
|
|
WINDOWS_IMAGE: "$CI_REGISTRY_IMAGE/windows/x64_build:${WINDOWS_TAG}-${MESA_TEMPLATES_COMMIT}"
|
|
|
|
WINDOWS_UPSTREAM_IMAGE: "$CI_REGISTRY/$FDO_UPSTREAM_REPO/windows/x64_build:${WINDOWS_TAG}-${MESA_TEMPLATES_COMMIT}"
|
2020-03-24 19:11:36 +08:00
|
|
|
|
2020-11-27 01:30:52 +08:00
|
|
|
windows_build_vs2019:
|
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
|
2020-06-04 00:06:56 +08:00
|
|
|
timeout: 2h # 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:
|
|
|
|
- .\.gitlab-ci\windows\mesa_container.ps1 $CI_REGISTRY $CI_REGISTRY_USER $CI_REGISTRY_PASSWORD $WINDOWS_IMAGE $WINDOWS_UPSTREAM_IMAGE
|
2020-05-20 05:01:47 +08:00
|
|
|
|
2020-03-24 19:11:36 +08:00
|
|
|
.use-windows_build_vs2019:
|
|
|
|
extends: .windows-docker-vs2019
|
|
|
|
image: "$WINDOWS_IMAGE"
|
|
|
|
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 .
|
|
|
|
|
|
|
|
# login with the JWT token
|
|
|
|
- ci-fairy minio login $CI_JOB_JWT
|
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
|
|
|
|
# scons:
|
2019-07-26 18:20:41 +08:00
|
|
|
- build/*/config.log
|
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:
|
|
|
|
- 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
|
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
|
2019-11-14 00:43:41 +08:00
|
|
|
- .use-x86_build
|
2020-02-28 01:27:56 +08:00
|
|
|
stage: meson-x86_64
|
2019-12-13 18:02:16 +08:00
|
|
|
variables:
|
2020-10-06 08:49:00 +08:00
|
|
|
LLVM_VERSION: 10
|
2019-02-13 00:59:27 +08:00
|
|
|
script:
|
2019-05-03 16:49:43 +08:00
|
|
|
- .gitlab-ci/meson-build.sh
|
2019-01-20 19:26:53 +08:00
|
|
|
|
2019-01-23 23:46:10 +08:00
|
|
|
.scons-build:
|
2019-10-15 06:52:58 +08:00
|
|
|
extends:
|
2019-10-24 05:21:31 +08:00
|
|
|
- .build-linux
|
2019-11-14 00:43:41 +08:00
|
|
|
- .use-x86_build
|
2020-12-02 21:50:38 +08:00
|
|
|
stage: build-misc
|
2019-01-23 23:46:10 +08:00
|
|
|
script:
|
2020-06-27 01:59:41 +08:00
|
|
|
- env SCONSFLAGS="-j${FDO_CI_CONCURRENT:-4}" .gitlab-ci/scons-build.sh
|
2019-01-23 23:46:10 +08:00
|
|
|
|
2019-11-19 19:23:41 +08:00
|
|
|
meson-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
|
2020-07-03 16:04:20 +08:00
|
|
|
GALLIUM_DRIVERS: "swrast,virgl,radeonsi"
|
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: >
|
|
|
|
-D werror=true
|
2020-07-03 16:04:20 +08:00
|
|
|
UPLOAD_FOR_LAVA: 1
|
|
|
|
DEBIAN_ARCH: amd64
|
2019-11-19 19:23:41 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
|
2020-12-01 04:01:23 +08:00
|
|
|
meson-testing-asan:
|
|
|
|
extends:
|
|
|
|
- meson-testing
|
|
|
|
variables:
|
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D b_sanitize=address
|
|
|
|
UPLOAD_FOR_LAVA: ""
|
|
|
|
|
2020-09-29 06:40:13 +08:00
|
|
|
meson-clover-testing:
|
|
|
|
extends:
|
|
|
|
- .meson-build
|
|
|
|
- .ci-deqp-artifacts
|
|
|
|
variables:
|
|
|
|
UNWIND: "enabled"
|
|
|
|
LLVM_VERSION: 10
|
|
|
|
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: >
|
|
|
|
-D werror=true
|
2020-09-29 06:40:13 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
|
|
|
|
2020-03-12 19:29:40 +08:00
|
|
|
meson-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
|
2019-11-19 21:36:02 +08:00
|
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
|
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
|
2020-07-08 11:56:51 +08:00
|
|
|
-D werror=true
|
2019-10-24 00:42:53 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
- .gitlab-ci/run-shader-db.sh
|
2020-07-25 01:34:47 +08:00
|
|
|
- src/freedreno/.gitlab-ci/run-fdtools.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.
|
|
|
|
meson-release:
|
|
|
|
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
|
2020-12-03 09:10:27 +08:00
|
|
|
GALLIUM_DRIVERS: "nouveau,kmsro,freedreno,r300,svga,swrast,v3d,vc4,virgl,etnaviv,panfrost,lima,zink"
|
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
|
|
|
|
-D werror=true
|
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
|
2020-07-29 06:35:36 +08:00
|
|
|
meson-android:
|
2020-09-10 07:37:54 +08:00
|
|
|
extends:
|
|
|
|
- .meson-cross
|
|
|
|
- .use-android_build
|
2020-07-29 06:35:36 +08:00
|
|
|
variables:
|
|
|
|
UNWIND: "disabled"
|
|
|
|
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
|
2020-09-25 07:44:50 +08:00
|
|
|
-D platform-sdk-version=26
|
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: ""
|
|
|
|
script:
|
|
|
|
# arm64 build: Can't build v3d/vc4 because they require expat for v3d_decode.
|
|
|
|
- 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 VULKAN_DRIVERS=freedreno .gitlab-ci/meson-build.sh
|
|
|
|
# x86_64 build:
|
|
|
|
# Can't do Intel because gen_decoder.c currently requires libexpat, which
|
|
|
|
# is not a dependency that AOSP wants to accept. Can't do Radeon because
|
|
|
|
# it requires LLVM, which we don't have an Android build of.
|
|
|
|
# - PKG_CONFIG_PATH=/usr/local/lib/x86_64-linux-android/pkgconfig/ CROSS=x86_64-linux-android GALLIUM_DRIVERS=iris VULKAN_DRIVERS=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: >
|
|
|
|
-D glx=disabled
|
2020-05-20 05:01:47 +08:00
|
|
|
-D gbm=disabled
|
|
|
|
-D egl=enabled
|
2019-06-25 20:47:04 +08:00
|
|
|
-D platforms=[]
|
2019-07-04 02:10:32 +08:00
|
|
|
-D osmesa=false
|
2019-09-13 17:59:43 +08:00
|
|
|
GALLIUM_ST: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D dri3=disabled
|
|
|
|
-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
|
2020-01-31 01:21:15 +08:00
|
|
|
LLVM_VERSION: "8"
|
2019-09-13 17:59:43 +08:00
|
|
|
|
2019-10-09 01:46:11 +08:00
|
|
|
.meson-arm:
|
2019-11-12 01:13:28 +08:00
|
|
|
extends:
|
|
|
|
- .meson-cross
|
|
|
|
- .use-arm_build
|
2020-10-22 23:58:35 +08:00
|
|
|
needs:
|
|
|
|
- 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
|
|
|
|
|
|
|
|
meson-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
|
2019-10-09 01:48:41 +08:00
|
|
|
LLVM_VERSION: "7"
|
2020-02-25 02:31:33 +08:00
|
|
|
EXTRA_OPTION: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D llvm=disabled
|
2020-04-01 19:07:46 +08:00
|
|
|
UPLOAD_FOR_LAVA: 1
|
|
|
|
DEBIAN_ARCH: armhf
|
2019-12-17 18:50:14 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
2019-09-13 17:59:43 +08:00
|
|
|
|
|
|
|
meson-arm64:
|
2019-10-09 01:46:11 +08:00
|
|
|
extends:
|
|
|
|
- .meson-arm
|
|
|
|
- .ci-deqp-artifacts
|
2019-09-13 17:59:43 +08:00
|
|
|
variables:
|
2020-10-01 18:08:17 +08:00
|
|
|
VULKAN_DRIVERS: "freedreno,broadcom"
|
2020-02-25 02:31:33 +08:00
|
|
|
EXTRA_OPTION: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-D llvm=disabled
|
2020-04-01 19:07:46 +08:00
|
|
|
UPLOAD_FOR_LAVA: 1
|
|
|
|
DEBIAN_ARCH: arm64
|
2019-10-24 00:42:53 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
- .gitlab-ci/prepare-artifacts.sh
|
2019-09-13 17:59:43 +08:00
|
|
|
|
2020-02-20 23:37:48 +08:00
|
|
|
meson-arm64-build-test:
|
|
|
|
extends:
|
|
|
|
- .meson-arm
|
|
|
|
- .ci-deqp-artifacts
|
|
|
|
variables:
|
|
|
|
VULKAN_DRIVERS: "amd"
|
2020-08-03 22:19:38 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-Dtools=panfrost
|
2020-10-20 02:54:24 +08:00
|
|
|
-D werror=true
|
2020-02-20 23:37:48 +08:00
|
|
|
script:
|
|
|
|
- .gitlab-ci/meson-build.sh
|
|
|
|
|
2019-03-20 22:58:31 +08:00
|
|
|
meson-clang:
|
|
|
|
extends: .meson-build
|
|
|
|
variables:
|
2020-05-20 05:01:47 +08:00
|
|
|
UNWIND: "enabled"
|
2019-11-19 21:37:32 +08:00
|
|
|
DRI_LOADERS: >
|
|
|
|
-D glvnd=true
|
2019-03-20 22:58:31 +08:00
|
|
|
DRI_DRIVERS: "auto"
|
2020-09-22 18:00:18 +08:00
|
|
|
GALLIUM_DRIVERS: "iris,nouveau,kmsro,r300,r600,freedreno,swr,swrast,svga,v3d,vc4,virgl,etnaviv,panfrost,lima,zink,radeonsi,tegra"
|
2020-10-01 18:08:17 +08:00
|
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom
|
2020-10-06 08:49:00 +08:00
|
|
|
CC: "ccache clang-10"
|
|
|
|
CXX: "ccache clang++-10"
|
2019-03-20 22:58:31 +08:00
|
|
|
|
2020-11-27 01:30:52 +08:00
|
|
|
meson-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:
|
|
|
|
- _install/
|
2019-10-24 05:36:19 +08:00
|
|
|
|
2020-06-04 00:06:56 +08:00
|
|
|
test-d3d12-windows:
|
|
|
|
extends:
|
|
|
|
- .build-windows
|
|
|
|
- .use-windows_build_vs2019
|
2020-12-11 18:41:32 +08:00
|
|
|
- .windows-test-rules
|
2020-12-02 21:50:38 +08:00
|
|
|
stage: layered-backends
|
2020-06-04 00:06:56 +08:00
|
|
|
dependencies:
|
|
|
|
- meson-windows-vs2019
|
|
|
|
needs:
|
|
|
|
- meson-windows-vs2019
|
|
|
|
variables:
|
2020-12-02 18:28:31 +08:00
|
|
|
GIT_STRATEGY: none # testing doesn't build anything from source
|
2020-06-04 00:06:56 +08:00
|
|
|
GALLIUM_DRIVER: d3d12
|
|
|
|
PIGLIT_PROFILE: quick_gl
|
2020-12-16 03:28:22 +08:00
|
|
|
PIGLIT_OPTIONS: -x nv_copy_depth_to_color -x repeat-wait
|
2020-06-04 00:06:56 +08:00
|
|
|
script:
|
2020-12-02 18:28:31 +08:00
|
|
|
- . _install/piglit_run.ps1
|
2020-06-04 00:06:56 +08:00
|
|
|
artifacts:
|
|
|
|
when: on_failure
|
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
|
|
paths:
|
|
|
|
- summary/
|
|
|
|
|
2019-05-04 00:19:25 +08:00
|
|
|
scons-win64:
|
|
|
|
extends: .scons-build
|
|
|
|
variables:
|
2020-03-28 18:36:28 +08:00
|
|
|
SCONS_TARGET: platform=windows machine=x86_64 debug=1
|
2019-05-04 00:19:25 +08:00
|
|
|
SCONS_CHECK_COMMAND: "true"
|
2020-03-28 18:36:28 +08:00
|
|
|
allow_failure: true
|
2019-01-21 17:42:37 +08:00
|
|
|
|
2019-05-03 16:58:48 +08:00
|
|
|
meson-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: >
|
|
|
|
-D werror=true
|
2019-05-03 16:58:48 +08:00
|
|
|
script:
|
2019-08-21 17:45:25 +08:00
|
|
|
- LLVM_VERSION=8 .gitlab-ci/meson-build.sh
|
2020-10-06 08:49:00 +08:00
|
|
|
- LLVM_VERSION=9 .gitlab-ci/meson-build.sh
|
|
|
|
- .gitlab-ci/meson-build.sh
|
2019-09-06 23:04:47 +08:00
|
|
|
|
2019-05-04 00:19:25 +08:00
|
|
|
meson-vulkan:
|
|
|
|
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"
|
2020-10-01 18:08:17 +08:00
|
|
|
VULKAN_DRIVERS: intel,amd,freedreno,broadcom
|
2019-05-09 00:17:23 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D vulkan-overlay-layer=true
|
2020-12-01 17:19:57 +08:00
|
|
|
-D vulkan-device-select-layer=true
|
2020-06-03 21:25:12 +08:00
|
|
|
-D build-aco-tests=true
|
2019-12-17 13:23:02 +08:00
|
|
|
-D werror=true
|
2019-05-04 00:19:25 +08:00
|
|
|
|
2019-07-12 03:58:28 +08:00
|
|
|
meson-i386:
|
2020-06-02 01:08:30 +08:00
|
|
|
extends:
|
|
|
|
- .meson-cross
|
|
|
|
- .use-i386_build
|
2019-07-12 03:58:28 +08:00
|
|
|
variables:
|
2019-08-10 06:46:50 +08:00
|
|
|
CROSS: i386
|
2020-03-04 16:37:46 +08:00
|
|
|
VULKAN_DRIVERS: intel,amd
|
2020-03-12 19:31:05 +08:00
|
|
|
GALLIUM_DRIVERS: "iris,r300,radeonsi,swrast,virgl"
|
2019-07-12 03:58:28 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D vulkan-overlay-layer=true
|
2020-12-01 17:19:57 +08:00
|
|
|
-D vulkan-device-select-layer=true
|
2019-12-17 13:23:02 +08:00
|
|
|
-D werror=true
|
2019-07-12 03:58:28 +08:00
|
|
|
|
2020-01-31 01:21:15 +08:00
|
|
|
meson-s390x:
|
|
|
|
extends:
|
|
|
|
- .meson-cross
|
2020-06-02 01:08:30 +08:00
|
|
|
- .use-s390x_build
|
2020-03-19 01:41:43 +08:00
|
|
|
tags:
|
|
|
|
- kvm
|
2020-01-31 01:21:15 +08:00
|
|
|
variables:
|
|
|
|
CROSS: s390x
|
2020-05-23 22:07:53 +08:00
|
|
|
EXTRA_OPTION: >
|
|
|
|
-D werror=true
|
2020-01-31 01:21:15 +08:00
|
|
|
GALLIUM_DRIVERS: "swrast"
|
|
|
|
|
|
|
|
meson-ppc64el:
|
|
|
|
extends:
|
|
|
|
- meson-s390x
|
2020-06-02 01:08:30 +08:00
|
|
|
- .use-ppc64el_build
|
2020-01-31 01:21:15 +08:00
|
|
|
variables:
|
|
|
|
CROSS: ppc64el
|
2020-05-23 22:07:53 +08:00
|
|
|
EXTRA_OPTION: ""
|
2020-01-31 23:07:10 +08:00
|
|
|
GALLIUM_DRIVERS: "nouveau,radeonsi,swrast,virgl"
|
|
|
|
VULKAN_DRIVERS: "amd"
|
2020-01-31 01:21:15 +08:00
|
|
|
|
2019-10-12 00:04:14 +08:00
|
|
|
meson-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"
|
2019-09-20 01:21:51 +08:00
|
|
|
DRI_DRIVERS: ""
|
|
|
|
GALLIUM_DRIVERS: "swrast"
|
|
|
|
EXTRA_OPTION: >
|
2020-05-20 05:01:47 +08:00
|
|
|
-Dllvm=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:
|
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
|
|
|
|
2020-09-29 06:40:13 +08:00
|
|
|
.use-x86_test-gl:
|
2019-11-18 16:30:27 +08:00
|
|
|
extends:
|
|
|
|
- .test
|
|
|
|
variables:
|
|
|
|
TAG: *x86_test-gl
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/x86_test-gl:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2019-10-22 17:19:17 +08:00
|
|
|
needs:
|
2019-11-18 16:15:12 +08:00
|
|
|
- x86_test-gl
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2020-09-29 06:40:13 +08:00
|
|
|
.test-gl:
|
|
|
|
extends:
|
|
|
|
- .use-x86_test-gl
|
|
|
|
needs:
|
|
|
|
- x86_test-gl
|
|
|
|
- meson-testing
|
|
|
|
|
2019-11-18 16:30:27 +08:00
|
|
|
.test-vk:
|
|
|
|
extends:
|
|
|
|
- .test
|
|
|
|
variables:
|
|
|
|
TAG: *x86_test-vk
|
2020-12-04 00:54:05 +08:00
|
|
|
image: "$CI_REGISTRY_IMAGE/debian/x86_test-vk:${TAG}-${MESA_TEMPLATES_COMMIT}"
|
2019-11-18 16:30:27 +08:00
|
|
|
needs:
|
|
|
|
- meson-testing
|
|
|
|
- x86_test-vk
|
|
|
|
|
2020-09-29 06:40:13 +08:00
|
|
|
.test-cl:
|
|
|
|
extends:
|
|
|
|
- .use-x86_test-gl
|
|
|
|
needs:
|
|
|
|
- x86_test-gl
|
|
|
|
- meson-clover-testing
|
|
|
|
|
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:
|
|
|
|
- summary/
|
2019-10-22 23:16:52 +08:00
|
|
|
variables:
|
|
|
|
PIGLIT_NO_WINDOW: 1
|
|
|
|
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:
|
|
|
|
PIGLIT_PROFILES: replay
|
|
|
|
PIGLIT_REPLAY_UPLOAD_TO_MINIO: 1
|
|
|
|
PIGLIT_REPLAY_EXTRA_ARGS: --keep-image --db-path ${CI_PROJECT_DIR}/replayer-db/
|
|
|
|
PIGLIT_REPLAY_REFERENCE_IMAGES_BASE_URL: "/mesa-tracie-results/$CI_PROJECT_PATH"
|
|
|
|
PIGLIT_REPLAY_ARTIFACTS_BASE_URL: "/artifacts/$CI_PROJECT_PATH/$CI_PIPELINE_ID/$CI_JOB_ID"
|
|
|
|
PIGLIT_HTML_SUMMARY: 0
|
|
|
|
PIGLIT_JUNIT_RESULTS: 1
|
|
|
|
|
|
|
|
.llvmpipe-test:
|
|
|
|
extends:
|
|
|
|
- .llvmpipe-rules
|
|
|
|
variables:
|
|
|
|
LIBGL_ALWAYS_SOFTWARE: "true"
|
|
|
|
GALLIUM_DRIVER: "llvmpipe"
|
|
|
|
|
|
|
|
llvmpipe-piglit-cl:
|
|
|
|
extends:
|
2020-09-29 06:40:13 +08:00
|
|
|
- .test-cl
|
2020-08-19 21:42:56 +08:00
|
|
|
- .piglit-test
|
|
|
|
- .llvmpipe-test
|
2020-10-27 15:42:15 +08:00
|
|
|
- .llvmpipe-cl-rules
|
2020-09-29 06:40:13 +08:00
|
|
|
variables:
|
|
|
|
LP_CL: 1
|
|
|
|
LP_NUM_THREADS: 1
|
|
|
|
PIGLIT_PROFILES: cl
|
2020-08-19 21:42:56 +08:00
|
|
|
PIGLIT_RESULTS: "llvmpipe-cl"
|
2020-09-29 06:40:13 +08:00
|
|
|
PIGLIT_OPTIONS: >
|
2020-10-27 13:25:24 +08:00
|
|
|
-x bswap -x phatk -x clz-optimizations
|
2020-09-29 06:40:13 +08:00
|
|
|
script:
|
|
|
|
- install/piglit/run_cl.sh
|
|
|
|
|
2020-12-02 22:01:17 +08:00
|
|
|
llvmpipe-piglit-quick_gl:
|
2020-08-19 21:42:56 +08:00
|
|
|
extends:
|
|
|
|
- .test-gl
|
|
|
|
- .piglit-test
|
|
|
|
- .llvmpipe-test
|
2019-10-22 23:16:52 +08:00
|
|
|
variables:
|
|
|
|
LP_NUM_THREADS: 0
|
|
|
|
PIGLIT_OPTIONS: >
|
2019-12-03 17:45:28 +08:00
|
|
|
--process-isolation false
|
2019-12-05 08:13:38 +08:00
|
|
|
-x egl_ext_device_
|
|
|
|
-x egl_ext_platform_device
|
2020-01-22 07:23:39 +08:00
|
|
|
-x ext_timer_query@time-elapsed
|
2019-10-22 23:16:52 +08:00
|
|
|
-x glx-multithread-clearbuffer
|
|
|
|
-x glx-multithread-shader-compile
|
|
|
|
-x max-texture-size
|
|
|
|
-x maxsize
|
|
|
|
PIGLIT_PROFILES: quick_gl
|
2020-08-19 21:42:56 +08:00
|
|
|
PIGLIT_RESULTS: "llvmpipe-quick_gl"
|
2019-10-22 23:16:52 +08:00
|
|
|
|
2020-12-02 22:01:17 +08:00
|
|
|
llvmpipe-piglit-glslparser:
|
2020-08-19 21:42:56 +08:00
|
|
|
extends:
|
|
|
|
- .test-gl
|
|
|
|
- .piglit-test
|
|
|
|
- .llvmpipe-test
|
2019-12-03 17:45:28 +08:00
|
|
|
variables:
|
|
|
|
LP_NUM_THREADS: 0
|
|
|
|
PIGLIT_PROFILES: glslparser
|
2020-08-19 21:42:56 +08:00
|
|
|
PIGLIT_RESULTS: "llvmpipe-glslparser"
|
2019-12-03 17:45:28 +08:00
|
|
|
|
2020-12-02 22:01:17 +08:00
|
|
|
llvmpipe-piglit-quick_shader:
|
2020-08-19 21:42:56 +08:00
|
|
|
extends:
|
|
|
|
- .test-gl
|
|
|
|
- .piglit-test
|
|
|
|
- .llvmpipe-test
|
2019-10-22 23:16:52 +08:00
|
|
|
variables:
|
|
|
|
LP_NUM_THREADS: 1
|
2019-12-03 17:45:28 +08:00
|
|
|
PIGLIT_PROFILES: quick_shader
|
2020-08-19 21:42:56 +08:00
|
|
|
PIGLIT_RESULTS: "llvmpipe-quick_shader"
|
|
|
|
|
|
|
|
llvmpipe-traces:
|
|
|
|
extends:
|
|
|
|
- .test-gl
|
|
|
|
- .piglit-traces-test
|
|
|
|
- .llvmpipe-test
|
|
|
|
variables:
|
|
|
|
EGL_PLATFORM: "surfaceless"
|
|
|
|
PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-llvmpipe.yml"
|
|
|
|
PIGLIT_REPLAY_DEVICE_NAME: "gl-vmware-llvmpipe"
|
|
|
|
PIGLIT_RESULTS: "llvmpipe-replay"
|
|
|
|
|
2020-08-28 01:47:34 +08:00
|
|
|
.virgl-test:
|
2020-08-19 21:42:56 +08:00
|
|
|
extends:
|
|
|
|
- .test-gl
|
|
|
|
- .virgl-rules
|
|
|
|
variables:
|
|
|
|
LIBGL_ALWAYS_SOFTWARE: "true"
|
|
|
|
GALLIUM_DRIVER: "virpipe"
|
2020-08-28 01:47:34 +08:00
|
|
|
|
|
|
|
virgl-traces:
|
|
|
|
extends:
|
|
|
|
- .piglit-traces-test
|
|
|
|
- .virgl-test
|
|
|
|
variables:
|
2020-08-19 21:42:56 +08:00
|
|
|
EGL_PLATFORM: "surfaceless"
|
|
|
|
PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-virgl.yml"
|
|
|
|
PIGLIT_REPLAY_DEVICE_NAME: "gl-virgl"
|
|
|
|
PIGLIT_RESULTS: "virgl-replay"
|
|
|
|
MESA_GLES_VERSION_OVERRIDE: "3.1"
|
|
|
|
MESA_GLSL_VERSION_OVERRIDE: "310"
|
2019-10-22 23:16:52 +08:00
|
|
|
|
2020-11-14 20:39:24 +08:00
|
|
|
arm64-a630-traces:
|
|
|
|
extends:
|
|
|
|
- .piglit-traces-test
|
|
|
|
- .arm64-a630-test
|
|
|
|
variables:
|
|
|
|
BARE_METAL_TEST_SCRIPT: "/install/piglit/run.sh"
|
|
|
|
EGL_PLATFORM: "surfaceless"
|
|
|
|
PIGLIT_REPLAY_DESCRIPTION_FILE: "/install/traces-freedreno.yml"
|
|
|
|
PIGLIT_REPLAY_DEVICE_NAME: "freedreno-a630"
|
|
|
|
PIGLIT_RESULTS: "freedreno-a630-replay"
|
|
|
|
# This lets us run several more traces which don't use any features we're
|
|
|
|
# missing.
|
|
|
|
MESA_GLSL_VERSION_OVERRIDE: "460"
|
|
|
|
MESA_GL_VERSION_OVERRIDE: "4.6"
|
|
|
|
artifacts:
|
|
|
|
reports:
|
|
|
|
junit: results/junit.xml
|
|
|
|
|
2020-08-28 01:33:10 +08:00
|
|
|
radv-polaris10-traces:
|
|
|
|
extends:
|
|
|
|
- .piglit-traces-test
|
|
|
|
- .test-vk
|
|
|
|
- .test-radv
|
|
|
|
- .test-manual
|
|
|
|
variables:
|
|
|
|
PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-radv.yml"
|
|
|
|
PIGLIT_REPLAY_DEVICE_NAME: "vk-amd-polaris10"
|
|
|
|
PIGLIT_RESULTS: "radv-polaris10-replay"
|
|
|
|
tags:
|
|
|
|
- polaris10
|
|
|
|
|
|
|
|
radv-raven-traces:
|
|
|
|
extends:
|
|
|
|
- .piglit-traces-test
|
|
|
|
- .test-vk
|
|
|
|
- .test-radv
|
|
|
|
- .test-manual
|
|
|
|
variables:
|
|
|
|
PIGLIT_REPLAY_DESCRIPTION_FILE: "${CI_PROJECT_DIR}/install/traces-radv.yml"
|
|
|
|
PIGLIT_REPLAY_DEVICE_NAME: "vk-amd-raven"
|
|
|
|
PIGLIT_RESULTS: "radv-raven-replay"
|
|
|
|
tags:
|
|
|
|
- raven
|
|
|
|
|
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
|
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-04 01:17:12 +08:00
|
|
|
llvmpipe-gles2:
|
2019-06-29 07:35:32 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles2
|
2020-06-27 01:59:41 +08:00
|
|
|
# Don't use threads inside llvmpipe, we've already got all cores
|
|
|
|
# busy at the deqp-runner level.
|
ci: Use cts_runner for our dEQP runs.
This runner is a little project by Bas, written in C++, that spawns
threads that then loop grabbing chunks of the (randomly shuffled but
consistently so) test list and hand it to a dEQP instance. As the
remaining list gets shorter, so do the chunks, so hopefully the
threads all complete effectively at once. It also handles restarting
after crashes automatically. I've extended the runner a bit to do
what I was doing in the bash scripts before, like the skip list and
expected failures handling. This project should also be a good
baseline for extending to handle retesting of intermittent failures.
By switching to it, we can have the swrast tests just take up one job
slot on the shared runners and keep their allotment of CPUs busy,
instead of taking up job slots with single-threaded dEQP jobs. It
will also let us (eventually, once I reprovision) switch the freedreno
runners over to threading within the job instead of running concurrent
jobs, so that memory scribbles in one pipeline don't affect unrelated
pipelines, and I can experiment with their parallelism (particularly
on a306 where we are frequently backed up) without trashing other
people's jobs.
What we lose in this process is per-test output in the log (not a big
loss, I think, since we summarize fails at the end and reducing log
length keeps chrome from choking on our logs so badly). We also drop
the renderer sanity checking, since it's not saving qpa files for us
to go poke through. Given that all the drivers involved have fail
lists, if we got the wrong renderer somehow, we'd get a job failure
anyway.
v2: Rebase on droppong of the autoscale cluster and the arm64
build/test split. Use a script to deduplicate the cts-runner
build.
v3: Rebase on the amd64 build/test container split.
Acked-by: Daniel Stone <daniels@collabora.com> (v1)
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> (v2)
2019-11-05 02:54:41 +08:00
|
|
|
LP_NUM_THREADS: 0
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: llvmpipe
|
2020-04-18 03:39:32 +08:00
|
|
|
DEQP_EXPECTED_RENDERER: llvmpipe
|
2019-10-31 03:39:08 +08:00
|
|
|
extends:
|
2020-08-28 01:47:34 +08:00
|
|
|
- .test-gl
|
|
|
|
- .deqp-test
|
|
|
|
- .llvmpipe-test
|
2019-08-10 01:32:40 +08:00
|
|
|
|
2020-03-04 01:17:12 +08:00
|
|
|
softpipe-gles2:
|
2019-10-31 03:39:08 +08:00
|
|
|
extends:
|
|
|
|
- llvmpipe-gles2
|
|
|
|
- .softpipe-rules
|
2019-08-10 01:32:40 +08:00
|
|
|
variables:
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: softpipe
|
2019-08-10 01:32:40 +08:00
|
|
|
GALLIUM_DRIVER: "softpipe"
|
2020-04-18 03:39:32 +08:00
|
|
|
DEQP_EXPECTED_RENDERER: softpipe
|
2019-08-10 01:32:40 +08:00
|
|
|
|
2020-03-04 01:17:12 +08:00
|
|
|
softpipe-gles3:
|
2019-08-10 01:32:40 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles3
|
2020-03-04 01:17:12 +08:00
|
|
|
extends: softpipe-gles2
|
2019-11-06 02:31:29 +08:00
|
|
|
|
2020-03-04 01:17:12 +08:00
|
|
|
softpipe-gles31:
|
2020-07-21 22:36:28 +08:00
|
|
|
parallel: 2
|
2019-11-06 02:31:29 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles31
|
2020-03-04 01:17:12 +08:00
|
|
|
extends: softpipe-gles2
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2020-08-26 04:43:27 +08:00
|
|
|
# Note that KHR-GL3* test sets include all tests from the previous
|
|
|
|
# version, so we only need to run one test list (unlike dEQP-GLES,
|
|
|
|
# where the test sets are separate).
|
|
|
|
softpipe-gl:
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gl33
|
|
|
|
extends:
|
|
|
|
- softpipe-gles2
|
|
|
|
|
2020-05-12 16:18:48 +08:00
|
|
|
virgl-gles2-on-gl:
|
2020-04-01 15:17:25 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles2
|
|
|
|
DEQP_NO_SAVE_RESULTS: 1
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: virgl-gl
|
2020-06-27 01:59:41 +08:00
|
|
|
# Don't use threads inside llvmpipe, we've already got all cores
|
|
|
|
# busy at the deqp-runner level.
|
2020-04-01 15:17:25 +08:00
|
|
|
LP_NUM_THREADS: 0
|
2020-05-12 16:18:48 +08:00
|
|
|
DEQP_OPTIONS: "--deqp-log-images=disable"
|
2020-04-18 03:39:32 +08:00
|
|
|
DEQP_EXPECTED_RENDERER: virgl
|
2020-04-01 15:17:25 +08:00
|
|
|
extends:
|
2020-08-28 01:47:34 +08:00
|
|
|
- .deqp-test
|
|
|
|
- .virgl-test
|
2020-04-01 15:17:25 +08:00
|
|
|
|
2020-05-12 16:18:48 +08:00
|
|
|
virgl-gles3-on-gl:
|
2020-04-01 15:17:25 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles3
|
2020-05-12 16:18:48 +08:00
|
|
|
DEQP_RUNNER_OPTIONS: "--timeout 180"
|
|
|
|
extends: virgl-gles2-on-gl
|
2020-04-01 15:17:25 +08:00
|
|
|
|
2020-05-12 16:18:48 +08:00
|
|
|
virgl-gles31-on-gl:
|
2020-07-21 22:36:28 +08:00
|
|
|
parallel: 2
|
2020-04-21 20:51:59 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles31
|
|
|
|
MESA_GLES_VERSION_OVERRIDE: "3.1"
|
|
|
|
MESA_GLSL_VERSION_OVERRIDE: "310"
|
2020-06-04 10:10:40 +08:00
|
|
|
MESA_EXTENSION_OVERRIDE: "-GL_OES_tessellation_shader"
|
2020-05-12 16:18:48 +08:00
|
|
|
extends: virgl-gles3-on-gl
|
2020-04-21 20:51:59 +08:00
|
|
|
|
2020-05-13 15:46:06 +08:00
|
|
|
virgl-gl30-on-gl:
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gl30
|
|
|
|
extends: virgl-gles2-on-gl
|
|
|
|
|
|
|
|
virgl-gl31-on-gl:
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gl31
|
|
|
|
extends: virgl-gles2-on-gl
|
|
|
|
|
|
|
|
virgl-gl32-on-gl:
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gl32
|
|
|
|
extends: virgl-gles2-on-gl
|
|
|
|
|
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
|
|
|
|
# mesa/mesamaster) but should be present on pipelines in personal
|
|
|
|
# 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
|
2020-03-20 02:45:01 +08:00
|
|
|
|
2020-05-12 16:18:48 +08:00
|
|
|
virgl-gles2-on-gles:
|
|
|
|
variables:
|
|
|
|
VIRGL_HOST_API: GLES
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: virgl-gles
|
2020-05-12 16:18:48 +08:00
|
|
|
extends:
|
|
|
|
- virgl-gles2-on-gl
|
|
|
|
- .test-manual
|
|
|
|
|
|
|
|
virgl-gles3-on-gles:
|
|
|
|
variables:
|
|
|
|
VIRGL_HOST_API: GLES
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: virgl-gles
|
2020-05-12 16:18:48 +08:00
|
|
|
extends:
|
|
|
|
- virgl-gles3-on-gl
|
|
|
|
- .test-manual
|
|
|
|
|
|
|
|
virgl-gles31-on-gles:
|
|
|
|
variables:
|
|
|
|
VIRGL_HOST_API: GLES
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: virgl-gles
|
2020-05-12 16:18:48 +08:00
|
|
|
extends:
|
|
|
|
- virgl-gles31-on-gl
|
|
|
|
- .test-manual
|
|
|
|
|
2020-11-15 03:50:18 +08:00
|
|
|
.arm64-a630-test:
|
2019-11-12 01:13:28 +08:00
|
|
|
extends:
|
2020-11-15 03:50:18 +08:00
|
|
|
- .freedreno-test
|
2019-06-29 07:35:32 +08:00
|
|
|
variables:
|
2020-05-16 02:22:37 +08:00
|
|
|
BM_KERNEL: /lava-files/cheza-kernel
|
|
|
|
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 root=/dev/nfs rw nfsrootdebug nfsroot=,tcp,nfsvers=4.2 init=/init"
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: freedreno-a630
|
2020-11-15 03:50:18 +08:00
|
|
|
BM_DTB: /lava-files/db820c.dtb
|
2020-06-09 06:36:16 +08:00
|
|
|
GIT_STRATEGY: none
|
2020-04-18 03:39:32 +08:00
|
|
|
DEQP_EXPECTED_RENDERER: FD630
|
2019-06-29 07:35:32 +08:00
|
|
|
tags:
|
2020-05-16 02:22:37 +08:00
|
|
|
- google-freedreno-cheza
|
|
|
|
script:
|
2020-06-09 06:36:16 +08:00
|
|
|
- ./install/bare-metal/cros-servo.sh
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2020-11-15 03:50:18 +08:00
|
|
|
arm64_a630_gles2:
|
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a630-test
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gles2
|
|
|
|
|
2020-02-13 03:31:24 +08:00
|
|
|
arm64_a630_gles31:
|
2020-11-15 03:50:18 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a630-test
|
2019-06-29 07:35:32 +08:00
|
|
|
variables:
|
2019-09-12 00:55:43 +08:00
|
|
|
DEQP_VER: gles31
|
2019-06-29 07:35:32 +08:00
|
|
|
|
2020-02-13 03:31:24 +08:00
|
|
|
arm64_a630_gles3:
|
2020-11-15 03:50:18 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a630-test
|
2019-06-29 07:35:32 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles3
|
|
|
|
|
2020-08-28 00:28:53 +08:00
|
|
|
arm64_a630_gl:
|
2020-11-15 03:50:18 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a630-test
|
2020-08-28 00:28:53 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gl30
|
|
|
|
|
2020-11-07 06:06:26 +08:00
|
|
|
arm64_a630_gles_others:
|
2020-11-15 03:50:18 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a630-test
|
2020-09-02 08:14:51 +08:00
|
|
|
variables:
|
2020-11-07 06:06:26 +08:00
|
|
|
BARE_METAL_TEST_SCRIPT: "/install/bare-metal/arm64_a630_gles_others.sh"
|
2020-09-02 08:14:51 +08:00
|
|
|
|
2020-07-14 22:58:56 +08:00
|
|
|
arm64_a630_vk:
|
2020-11-15 03:50:18 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test-freedreno-vk
|
|
|
|
- .arm64-a630-test
|
2020-10-01 01:20:22 +08:00
|
|
|
parallel: 2
|
2020-05-26 03:57:25 +08:00
|
|
|
variables:
|
2020-10-01 01:20:22 +08:00
|
|
|
DEQP_FRACTION: 10
|
2020-05-26 03:57:25 +08:00
|
|
|
# Force binning in the main run, which makes sure we render at
|
|
|
|
# least 2 bins. This is the path that impacts the most different
|
|
|
|
# features. However, we end up with flaky results in
|
|
|
|
# dEQP-VK.binding_model.*.geometry and dEQP-VK.glsl.*_vertex.
|
|
|
|
TU_DEBUG: forcebin
|
|
|
|
|
|
|
|
# Do a separate sysmem pass over the testcases that really affect sysmem
|
|
|
|
# rendering. This is currently very flaky, leave it as an option for devs
|
|
|
|
# to click play on in their branches.
|
2020-07-17 05:20:22 +08:00
|
|
|
arm64_a630_vk_sysmem:
|
2020-05-26 03:57:25 +08:00
|
|
|
extends:
|
2020-11-15 03:50:18 +08:00
|
|
|
- .baremetal-deqp-test-freedreno-vk
|
|
|
|
- .arm64-a630-test
|
2020-05-26 03:57:25 +08:00
|
|
|
variables:
|
2020-10-01 01:20:22 +08:00
|
|
|
DEQP_FRACTION: 15
|
2020-05-26 03:57:25 +08:00
|
|
|
DEQP_CASELIST_FILTER: "dEQP-VK.renderpass.*"
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: freedreno-a630-bypass
|
2020-05-26 03:57:25 +08:00
|
|
|
TU_DEBUG: sysmem
|
|
|
|
|
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
|
2020-05-16 02:22:37 +08:00
|
|
|
artifacts:
|
|
|
|
when: always
|
|
|
|
name: "mesa_${CI_JOB_NAME}"
|
|
|
|
paths:
|
|
|
|
- results/
|
|
|
|
- serial*.txt
|
2020-03-04 06:38:09 +08:00
|
|
|
|
2020-11-15 03:50:18 +08:00
|
|
|
.freedreno-test:
|
2020-03-04 06:38:09 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-test
|
2020-06-08 05:19:50 +08:00
|
|
|
- .use-arm64_test
|
2020-03-19 00:51:03 +08:00
|
|
|
- .freedreno-rules
|
2020-03-04 03:44:45 +08:00
|
|
|
variables:
|
2020-03-04 06:38:09 +08:00
|
|
|
BM_ROOTFS: /lava-files/rootfs-arm64
|
2020-05-02 00:57:00 +08:00
|
|
|
FLAKES_CHANNEL: "#freedreno-ci"
|
2020-03-04 06:38:09 +08:00
|
|
|
script:
|
2020-06-09 06:36:16 +08:00
|
|
|
- ./install/bare-metal/fastboot.sh
|
2020-03-04 06:38:09 +08:00
|
|
|
needs:
|
2020-06-08 05:19:50 +08:00
|
|
|
- arm64_test
|
2020-03-04 06:38:09 +08:00
|
|
|
- meson-arm64
|
2020-03-04 03:44:45 +08:00
|
|
|
tags:
|
2020-03-04 06:38:09 +08:00
|
|
|
- google-freedreno-db410c
|
|
|
|
|
2020-11-15 03:50:18 +08:00
|
|
|
.baremetal-deqp-test:
|
|
|
|
variables:
|
|
|
|
BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
|
|
|
|
DEQP_SKIPS: deqp-default-skips.txt
|
|
|
|
DEQP_PARALLEL: 0 # Default to number of CPUs
|
|
|
|
|
|
|
|
.baremetal-deqp-test-freedreno-vk:
|
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
variables:
|
|
|
|
DEQP_VER: vk
|
|
|
|
VK_DRIVER: freedreno
|
|
|
|
|
|
|
|
.arm64-a306-test:
|
|
|
|
extends:
|
|
|
|
- .freedreno-test
|
|
|
|
variables:
|
|
|
|
BM_KERNEL: /lava-files/Image.gz
|
|
|
|
BM_DTB: /lava-files/apq8016-sbc.dtb
|
|
|
|
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8"
|
|
|
|
GPU_VERSION: freedreno-a307
|
|
|
|
DEQP_EXPECTED_RENDERER: FD307
|
|
|
|
|
|
|
|
arm64_a306_gles2:
|
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a306-test
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gles2
|
|
|
|
|
2020-05-16 02:20:44 +08:00
|
|
|
# Fractional run, single threaded, due to flaky results
|
2020-03-20 02:45:01 +08:00
|
|
|
arm64_a306_gles3:
|
2020-03-04 06:38:09 +08:00
|
|
|
extends:
|
2020-11-15 03:50:18 +08:00
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a306-test
|
2020-03-04 06:38:09 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles3
|
2020-04-23 02:30:38 +08:00
|
|
|
DEQP_PARALLEL: 1
|
2020-11-07 07:55:24 +08:00
|
|
|
DEQP_FRACTION: 25
|
2020-03-04 03:44:45 +08:00
|
|
|
|
2020-05-16 07:15:07 +08:00
|
|
|
# Fractional runs with debug options. Note that since we're not
|
|
|
|
# hitting the iommu faults, we can run in parallel (derive from gles2, not gles3).
|
|
|
|
arm64_a306_gles3_options:
|
2020-11-15 03:50:18 +08:00
|
|
|
extends:
|
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a306-test
|
2020-05-16 07:15:07 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles3
|
|
|
|
script:
|
|
|
|
# Check that the non-constbuf UBO case works.
|
2020-06-09 06:36:16 +08:00
|
|
|
- DEQP_RUN_SUFFIX=-nouboopt IR3_SHADER_DEBUG=nouboopt DEQP_CASELIST_FILTER="functional.*ubo" ./install/bare-metal/fastboot.sh
|
2020-05-16 07:15:07 +08:00
|
|
|
|
2020-11-15 03:50:18 +08:00
|
|
|
.arm64-a530-test:
|
2020-03-04 06:38:09 +08:00
|
|
|
extends:
|
2020-11-15 03:50:18 +08:00
|
|
|
- .freedreno-test
|
2020-03-04 06:38:09 +08:00
|
|
|
variables:
|
|
|
|
BM_KERNEL: /lava-files/db820c-kernel
|
|
|
|
BM_DTB: /lava-files/db820c.dtb
|
2020-05-20 07:33:10 +08:00
|
|
|
# Disable SMP because only CPU 0 is at a freq higher than 19mhz on
|
|
|
|
# current upstream kernel.
|
|
|
|
BM_CMDLINE: "ip=dhcp console=ttyMSM0,115200n8 nosmp"
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: freedreno-a530
|
2020-04-18 03:39:32 +08:00
|
|
|
DEQP_EXPECTED_RENDERER: FD530
|
2020-03-04 06:38:09 +08:00
|
|
|
tags:
|
|
|
|
- google-freedreno-db820c
|
|
|
|
|
2020-10-17 08:20:11 +08:00
|
|
|
arm64_a530_gles2:
|
|
|
|
extends:
|
2020-11-15 03:50:18 +08:00
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a530-test
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gles2
|
2020-10-17 08:20:11 +08:00
|
|
|
parallel: 2
|
|
|
|
|
2020-03-04 06:38:09 +08:00
|
|
|
arm64_a530_gles3:
|
|
|
|
extends:
|
2020-11-15 03:50:18 +08:00
|
|
|
- .baremetal-deqp-test
|
|
|
|
- .arm64-a530-test
|
2020-03-04 06:38:09 +08:00
|
|
|
variables:
|
|
|
|
DEQP_VER: gles3
|
2020-04-23 02:30:38 +08:00
|
|
|
DEQP_PARALLEL: 1
|
2020-11-07 07:55:24 +08:00
|
|
|
DEQP_FRACTION: 40
|
2020-03-04 06:38:09 +08:00
|
|
|
|
2020-04-23 03:08:06 +08:00
|
|
|
arm64_a530_gles31:
|
|
|
|
extends:
|
|
|
|
- arm64_a530_gles3
|
|
|
|
variables:
|
|
|
|
DEQP_VER: gles31
|
2020-11-07 07:55:24 +08:00
|
|
|
DEQP_FRACTION: 10
|
2020-04-23 03:08:06 +08:00
|
|
|
|
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
|
|
|
vc4-rpi3-gles2:armhf:
|
|
|
|
extends:
|
|
|
|
- .baremetal-test
|
|
|
|
- .use-armhf_test
|
|
|
|
- .vc4-rules
|
|
|
|
parallel: 4
|
|
|
|
variables:
|
|
|
|
BARE_METAL_TEST_SCRIPT: "/install/deqp-runner.sh"
|
|
|
|
BM_BOOTFS: /boot/armhf
|
|
|
|
BM_KERNEL_MODULES: vc4
|
|
|
|
BM_ROOTFS: /lava-files/rootfs-armhf
|
|
|
|
BM_ROOTFS_EXTRA: /modules/armhf
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: vc4-rpi3
|
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
|
|
|
DEQP_EXPECTED_RENDERER: VC4
|
|
|
|
DEQP_VER: gles2
|
|
|
|
script:
|
|
|
|
- ./install/bare-metal/poe-powered.sh
|
|
|
|
needs:
|
|
|
|
- armhf_test
|
|
|
|
- meson-armhf
|
|
|
|
tags:
|
|
|
|
- igalia-rpi3
|
|
|
|
|
2020-08-19 11:32:24 +08:00
|
|
|
lavapipe-vk:
|
|
|
|
stage: software-renderer
|
|
|
|
extends:
|
2020-08-28 01:47:34 +08:00
|
|
|
- .test-vk
|
2020-08-19 11:32:24 +08:00
|
|
|
- .llvmpipe-rules
|
|
|
|
- .deqp-test-vk
|
|
|
|
variables:
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: lvp
|
2020-08-19 11:32:24 +08:00
|
|
|
VK_DRIVER: lvp
|
|
|
|
DEQP_FRACTION: 10
|
|
|
|
|
2019-11-13 18:03:52 +08:00
|
|
|
# RADV CI
|
|
|
|
.test-radv:
|
2020-08-28 01:47:34 +08:00
|
|
|
extends:
|
|
|
|
- .test-vk
|
|
|
|
- .radv-rules
|
2020-12-02 21:50:38 +08:00
|
|
|
stage: amd
|
2019-11-13 18:03:52 +08:00
|
|
|
variables:
|
|
|
|
VK_DRIVER: radeon
|
2020-05-04 17:44:45 +08:00
|
|
|
ACO_DEBUG: validateir,validatera
|
2020-02-06 00:04:20 +08:00
|
|
|
|
2020-03-20 02:45:01 +08:00
|
|
|
# Can only be triggered manually on personal branches because RADV is the only
|
|
|
|
# driver that does Vulkan testing at the moment.
|
2019-11-13 18:03:52 +08:00
|
|
|
radv_polaris10_vkcts:
|
|
|
|
extends:
|
|
|
|
- .deqp-test-vk
|
2020-03-20 02:45:01 +08:00
|
|
|
- .test-radv
|
|
|
|
- .test-manual
|
2019-11-13 18:03:52 +08:00
|
|
|
variables:
|
2020-12-18 03:08:42 +08:00
|
|
|
GPU_VERSION: radv-polaris10
|
2019-11-13 18:03:52 +08:00
|
|
|
tags:
|
|
|
|
- polaris10
|
2020-01-08 23:46:46 +08:00
|
|
|
|
2020-03-06 15:36:14 +08:00
|
|
|
radv-fossils:
|
|
|
|
extends:
|
|
|
|
- .fossilize-test
|
|
|
|
- .test-radv
|
|
|
|
script:
|
2020-05-04 17:48:46 +08:00
|
|
|
# Pitcairn (GFX6)
|
|
|
|
- export RADV_FORCE_FAMILY="pitcairn"
|
|
|
|
- ./install/fossilize-runner.sh
|
|
|
|
# Bonaire (GFX7)
|
|
|
|
- export RADV_FORCE_FAMILY="bonaire"
|
|
|
|
- ./install/fossilize-runner.sh
|
|
|
|
# Polaris10 (GFX8)
|
2020-03-06 15:36:14 +08:00
|
|
|
- export RADV_FORCE_FAMILY="polaris10"
|
2020-03-24 19:58:30 +08:00
|
|
|
- ./install/fossilize-runner.sh
|
2020-05-04 17:48:46 +08:00
|
|
|
# Vega10 (GFX9)
|
2020-03-06 15:36:14 +08:00
|
|
|
- export RADV_FORCE_FAMILY="gfx900"
|
2020-03-24 19:58:30 +08:00
|
|
|
- ./install/fossilize-runner.sh
|
2020-05-04 17:48:46 +08:00
|
|
|
# Navi10 (GFX10)
|
2020-03-06 15:36:14 +08:00
|
|
|
- export RADV_FORCE_FAMILY="gfx1010"
|
2020-03-24 19:58:30 +08:00
|
|
|
- ./install/fossilize-runner.sh
|
2020-08-10 19:29:14 +08:00
|
|
|
# Sienna Cichlid (GFX10)
|
|
|
|
- export RADV_FORCE_FAMILY="gfx1030"
|
|
|
|
- ./install/fossilize-runner.sh
|