From 323aaa3b6ed7a797b582b2713800f7056a6bdfb4 Mon Sep 17 00:00:00 2001 From: Cristian Ciocaltea Date: Fri, 31 Dec 2021 13:58:25 +0200 Subject: [PATCH] ci: Disable the old CI configuration Temporarily disable the old CI configuration file and replace it with the one belonging to the reworked CI infrastructure. The project CI/CD settings should be updated in order to switch 'CI/CD configuration file' from 'ci/.gitlab-ci.yml' to the default '.gitlab-ci.yml', for consistency with Mesa CI. Note the 'ci/' folder becomes obsolete in favor of '.gitlab-ci/' and could be removed once all needed functionality has been migrated to the new setup. Signed-off-by: Cristian Ciocaltea Reviewed-by: Tomeu Vizoso Reviewed-by: Rohan Garg --- ci/.gitlab-ci.yml | 267 ++++++++++++++++++++++++++++--------- ci/.gitlab-ci.yml.disabled | 125 +++++++++++++++++ 2 files changed, 327 insertions(+), 65 deletions(-) create mode 100644 ci/.gitlab-ci.yml.disabled diff --git a/ci/.gitlab-ci.yml b/ci/.gitlab-ci.yml index 1159f4f..99300e0 100644 --- a/ci/.gitlab-ci.yml +++ b/ci/.gitlab-ci.yml @@ -1,125 +1,262 @@ +# +# !!!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_DISTRIBUTION_TAG: "2021-06-08" - FDO_DISTRIBUTION_VERSION: bullseye FDO_UPSTREAM_REPO: "virgl/virglrenderer" - TEST_IMAGE: "$CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG" + 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: 4a73f030d0602042cfa44ed94dc5e744b52f57aa - file: '/templates/debian.yml' + 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 -build docker image: - stage: build - extends: .fdo.container-ifnot-exists@debian - stage: build +.set-image: variables: - GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image - FDO_DISTRIBUTION_EXEC: 'bash ci/build-container.sh' - only: - - branches - - tags - - merge_requests - - schedules + 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}" -.tests_base: - image: $TEST_IMAGE +debian/x86_build: + stage: build + extends: + - .set-image-base-tag variables: - NUM_THREADS: 4 + MESA_IMAGE_PATH: ${DEBIAN_X86_BUILD_IMAGE_PATH} + MESA_IMAGE_TAG: ${DEBIAN_BUILD_TAG} + MINIO_ARTIFACT_NAME: virgl-amd64 script: - - ci/run_tests.sh $TEST_SUITE - - echo -e "\nThat's all folks\n" + - .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/ -.make_check_base: - stage: sanity test - extends: .tests_base - mesa check meson: - variables: - TEST_SUITE: '--make-check-meson' extends: .make_check_base + variables: + TEST_SUITE: make-check-meson make check clang-fuzzer: - variables: - TEST_SUITE: '--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: - variables: - TEST_SUITE: '--make-check-trace-stderr' extends: .make_check_base + variables: + TEST_SUITE: make-check-trace-stderr + EXTRA_OPTION: "-D tracing=stderr" make check venus: - variables: - TEST_SUITE: '--make-check-venus' extends: .make_check_base + variables: + TEST_SUITE: make-check-venus + EXTRA_OPTION: "-D venus-experimental=true" + +# +# Piglit & dEQP test jobs +# -.tests: +.use-gl-test-image: stage: test - extends: .tests_base + 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 -piglit - gl host: +.gl-virt-test: + extends: + - .use-gl-test-image variables: - TEST_SUITE: '--piglit-gl' - extends: .tests + GALLIUM_DRIVER: virgl + CROSVM_GALLIUM_DRIVER: llvmpipe + GALLIVM_PERF: nopt -piglit - gles host: +.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: - TEST_SUITE: '--piglit-gles' - extends: .tests + <<: *piglit-host-variables + TEST_SCRIPT: "install/piglit/piglit-runner.sh" + parallel: 2 + +# Host runners (virpipe/vtest) -cts gl - gl host: +debian/x86_test/deqp-gl-host: + extends: + - .deqp-host variables: - TEST_SUITE: '--deqp-gl-gl-tests' - extends: .tests + DEQP_SUITE: virgl-gl + GPU_VERSION: virgl-gl -cts gles2 - gl host: +debian/x86_test/deqp-gles-host: + extends: + - .deqp-host variables: - TEST_SUITE: '--deqp-gl-gles2-tests' - extends: .tests + VIRGL_HOST_API: GLES + DEQP_SUITE: virgl-gles + GPU_VERSION: virgl-gles -cts gles3 - gl host: +debian/x86_test/piglit-gl-host: + extends: + - .piglit-host variables: - TEST_SUITE: '--deqp-gl-gles3-tests' - extends: .tests + GPU_VERSION: virgl-gl -cts gles31 - gl host: +debian/x86_test/piglit-gles-host: + extends: + - .piglit-host variables: - TEST_SUITE: '--deqp-gl-gles31-tests' - extends: .tests + 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. +# -cts gl - gles host: +.debian/x86_test/deqp-gl-virt: + extends: + - .deqp-virt variables: - TEST_SUITE: '--deqp-gles-gl-tests' - extends: .tests + 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" -cts gles2 - gles host: +.debian/x86_test/deqp-gles-virt: + extends: + - .deqp-virt variables: - TEST_SUITE: '--deqp-gles-gles2-tests' - extends: .tests + 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" -cts gles3 - gles host: +.debian/x86_test/piglit-gl-virt: + extends: + - .piglit-virt variables: - TEST_SUITE: '--deqp-gles-gles3-tests' - extends: .tests + GPU_VERSION: virgl-gl + CROSVM_GPU_ARGS: *deqp-gl-crosvm-gpu-args -cts gles31 - gles host: +# FIXME: This is quite unstable because (new) flaky tests continue to show up +.debian/x86_test/piglit-gles-virt: + extends: + - .piglit-virt variables: - TEST_SUITE: '--deqp-gles-gles31-tests' - extends: .tests + VIRGL_HOST_API: GLES + GPU_VERSION: virgl-gles + CROSVM_GPU_ARGS: *deqp-gles-crosvm-gpu-args diff --git a/ci/.gitlab-ci.yml.disabled b/ci/.gitlab-ci.yml.disabled new file mode 100644 index 0000000..1159f4f --- /dev/null +++ b/ci/.gitlab-ci.yml.disabled @@ -0,0 +1,125 @@ +variables: + FDO_DISTRIBUTION_TAG: "2021-06-08" + FDO_DISTRIBUTION_VERSION: bullseye + FDO_UPSTREAM_REPO: "virgl/virglrenderer" + TEST_IMAGE: "$CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG" + +include: + - project: 'freedesktop/ci-templates' + ref: 4a73f030d0602042cfa44ed94dc5e744b52f57aa + file: '/templates/debian.yml' + +stages: + - build + - sanity test + - test + +build docker image: + stage: build + extends: .fdo.container-ifnot-exists@debian + stage: build + variables: + GIT_STRATEGY: none # no need to pull the whole tree for rebuilding the image + FDO_DISTRIBUTION_EXEC: 'bash ci/build-container.sh' + only: + - branches + - tags + - merge_requests + - schedules + +.tests_base: + image: $TEST_IMAGE + variables: + NUM_THREADS: 4 + script: + - ci/run_tests.sh $TEST_SUITE + - echo -e "\nThat's all folks\n" + only: + - branches + - tags + - merge_requests + - schedules + + artifacts: + when: always + paths: + - results/ + +.make_check_base: + stage: sanity test + extends: .tests_base + +mesa check meson: + variables: + TEST_SUITE: '--make-check-meson' + extends: .make_check_base + +make check clang-fuzzer: + variables: + TEST_SUITE: '--make-check-clang-fuzzer' + extends: .make_check_base + +make check trace-stderr: + variables: + TEST_SUITE: '--make-check-trace-stderr' + extends: .make_check_base + +make check venus: + variables: + TEST_SUITE: '--make-check-venus' + extends: .make_check_base + +.tests: + stage: test + extends: .tests_base + +piglit - gl host: + variables: + TEST_SUITE: '--piglit-gl' + extends: .tests + +piglit - gles host: + variables: + TEST_SUITE: '--piglit-gles' + extends: .tests + +cts gl - gl host: + variables: + TEST_SUITE: '--deqp-gl-gl-tests' + extends: .tests + +cts gles2 - gl host: + variables: + TEST_SUITE: '--deqp-gl-gles2-tests' + extends: .tests + +cts gles3 - gl host: + variables: + TEST_SUITE: '--deqp-gl-gles3-tests' + extends: .tests + +cts gles31 - gl host: + variables: + TEST_SUITE: '--deqp-gl-gles31-tests' + extends: .tests + + +cts gl - gles host: + variables: + TEST_SUITE: '--deqp-gles-gl-tests' + extends: .tests + +cts gles2 - gles host: + variables: + TEST_SUITE: '--deqp-gles-gles2-tests' + extends: .tests + +cts gles3 - gles host: + variables: + TEST_SUITE: '--deqp-gles-gles3-tests' + extends: .tests + +cts gles31 - gles host: + variables: + TEST_SUITE: '--deqp-gles-gles31-tests' + extends: .tests