You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
virglrenderer/ci/.gitlab-ci.yml

263 lines
5.9 KiB

#
# !!!WARNING!!!
#
# This is just a copy of "/.gitlab-ci.yml" to be used until
# "CI/CD configuration file" in project CI/CD settings will
# be changed from "ci/.gitlab-ci.yml" to ".gitlab-ci.yml".
#
# Additionally, the "/ci" folder becomes deprecated in favor
# of "/.gitlab-ci". This makes Virglrenderer CI setup consistent
# with Mesa CI.
#
variables:
FDO_UPSTREAM_REPO: "virgl/virglrenderer"
MESA_TEMPLATES_COMMIT: &ci-templates-commit 290b79e0e78eab67a83766f4e9691be554fc4afd
MESA_BASE_TAG: ${DEBIAN_BASE_TAG}
#
# IMPORTANT!
#
# Use the Pipeline ID corresponding to the Mesa Git rev provided below.
# If multiple pipeline runs are available, please choose the one having
# at least the 'debian-testing' job in 'Build-x86_64' stage completed.
#
MESA_PIPELINE_ID: 487328
MESA_PROJECT_PATH: mesa/mesa
MINIO_HOST: minio-packet.freedesktop.org
# Per-pipeline artifact storage on MinIO
PIPELINE_ARTIFACTS_BASE: ${MINIO_HOST}/artifacts/${CI_PROJECT_PATH}/${CI_PIPELINE_ID}
CI_REGISTRY_IMAGE: "registry.freedesktop.org/${MESA_PROJECT_PATH}"
include:
- project: 'freedesktop/ci-templates'
ref: 79c325922670137e8f0a4dc5f6f097e0eb57c1af
file:
- '/templates/ci-fairy.yml'
- project: 'freedesktop/ci-templates'
ref: *ci-templates-commit
file:
- '/templates/debian.yml'
- '/templates/fedora.yml'
- project: 'mesa/mesa'
# IMPORTANT: Use a recent Mesa Git revision
ref: 51f6288a2d2fa78e723b99a90133f5ebd782bc4a
file:
- '/.gitlab-ci/image-tags.yml'
stages:
- build
- sanity test
- test
.set-image:
variables:
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_TEMPLATES_COMMIT}"
image: "$MESA_IMAGE"
.set-image-base-tag:
extends:
- .set-image
variables:
MESA_IMAGE: "$CI_REGISTRY_IMAGE/${MESA_IMAGE_PATH}:${MESA_IMAGE_TAG}--${MESA_BASE_TAG}--${MESA_TEMPLATES_COMMIT}"
debian/x86_build:
stage: build
extends:
- .set-image-base-tag
variables:
MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_IMAGE_PATH}
MESA_IMAGE_TAG: ${DEBIAN_BUILD_TAG}
MINIO_ARTIFACT_NAME: virgl-amd64
script:
- .gitlab-ci/meson/build.sh
artifacts:
name: "virgl_${CI_JOB_NAME}"
when: always
paths:
- install/
- results/
only:
- branches
- tags
- merge_requests
- schedules
#
# Sanity test jobs
#
.make_check_base:
stage: sanity test
extends: debian/x86_build
artifacts:
when: always
paths:
- results/
mesa check meson:
extends: .make_check_base
variables:
TEST_SUITE: make-check-meson
make check clang-fuzzer:
extends: .make_check_base
variables:
TEST_SUITE: make-check-clang-fuzzer
CC: clang
EXTRA_OPTION: "-D fuzzer=true"
make check trace-stderr:
extends: .make_check_base
variables:
TEST_SUITE: make-check-trace-stderr
EXTRA_OPTION: "-D tracing=stderr"
make check venus:
extends: .make_check_base
variables:
TEST_SUITE: make-check-venus
EXTRA_OPTION: "-D venus-experimental=true"
#
# Piglit & dEQP test jobs
#
.use-gl-test-image:
stage: test
extends:
- .set-image-base-tag
variables:
MESA_IMAGE_PATH: ${DEBIAN_X86_TEST_IMAGE_PATH}
MESA_IMAGE_TAG: ${DEBIAN_X86_TEST_GL_TAG}
script:
- .gitlab-ci/container/debian/x86_test.sh
artifacts:
name: "virgl_${CI_JOB_NAME}"
when: always
paths:
- results/
reports:
junit: results/junit.xml
needs:
- debian/x86_build
only:
- branches
- tags
- merge_requests
- schedules
.gl-host-test:
extends:
- .use-gl-test-image
variables:
GALLIUM_DRIVER: virpipe
GALLIVM_PERF: nopt
.gl-virt-test:
extends:
- .use-gl-test-image
variables:
GALLIUM_DRIVER: virgl
CROSVM_GALLIUM_DRIVER: llvmpipe
GALLIVM_PERF: nopt
.deqp-host:
extends:
- .gl-host-test
parallel: 3
.piglit-host:
extends:
- .gl-host-test
variables: &piglit-host-variables
PIGLIT_PLATFORM: surfaceless_egl
PIGLIT_NO_WINDOW: 1
PIGLIT_PROFILES: gpu
parallel: 2
.deqp-virt:
extends:
- .gl-virt-test
variables:
TEST_SCRIPT: "install/deqp-runner.sh"
parallel: 3
.piglit-virt:
extends:
- .deqp-virt
variables:
<<: *piglit-host-variables
TEST_SCRIPT: "install/piglit/piglit-runner.sh"
parallel: 2
# Host runners (virpipe/vtest)
debian/x86_test/deqp-gl-host:
extends:
- .deqp-host
variables:
DEQP_SUITE: virgl-gl
GPU_VERSION: virgl-gl
debian/x86_test/deqp-gles-host:
extends:
- .deqp-host
variables:
VIRGL_HOST_API: GLES
DEQP_SUITE: virgl-gles
GPU_VERSION: virgl-gles
debian/x86_test/piglit-gl-host:
extends:
- .piglit-host
variables:
GPU_VERSION: virgl-gl
debian/x86_test/piglit-gles-host:
extends:
- .piglit-host
variables:
VIRGL_HOST_API: GLES
GPU_VERSION: virgl-gles
# Virt runners (virgl/crosvm)
#
# FIXME: Although functional, all jobs below are currently disabled (hidden)
# since they require some updates on the expectation files and probably some
# performance optimizations.
#
.debian/x86_test/deqp-gl-virt:
extends:
- .deqp-virt
variables:
DEQP_SUITE: virgl-gl
GPU_VERSION: virgl-gl
CROSVM_GPU_ARGS: &deqp-gl-crosvm-gpu-args "gles=false,backend=virglrenderer,egl=true,surfaceless=true,width=1024,height=768"
.debian/x86_test/deqp-gles-virt:
extends:
- .deqp-virt
variables:
VIRGL_HOST_API: GLES
DEQP_SUITE: virgl-gles
GPU_VERSION: virgl-gles
CROSVM_GPU_ARGS: &deqp-gles-crosvm-gpu-args "gles=true,backend=virglrenderer,egl=true,surfaceless=true,width=1024,height=768"
.debian/x86_test/piglit-gl-virt:
extends:
- .piglit-virt
variables:
GPU_VERSION: virgl-gl
CROSVM_GPU_ARGS: *deqp-gl-crosvm-gpu-args
# FIXME: This is quite unstable because (new) flaky tests continue to show up
.debian/x86_test/piglit-gles-virt:
extends:
- .piglit-virt
variables:
VIRGL_HOST_API: GLES
GPU_VERSION: virgl-gles
CROSVM_GPU_ARGS: *deqp-gles-crosvm-gpu-args