From 6ba1b61395383dadfa00669375a94eb8cd6b4031 Mon Sep 17 00:00:00 2001 From: Sergi Blanch-Torne Date: Mon, 9 Jun 2025 11:47:25 +0200 Subject: [PATCH] ci: separate hidden jobs to -inc yml files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Almost all the gitlab-ci.yml files in Mesa have their hidden jobs defined in an include file. This may have started with !25238 with the idea to simplify the re-use of hidden jobs by other projects. But we missed the .gitlab-ci directory. Signed-off-by: Sergi Blanch-Torne Acked-by: Martin Roukala (né Peres) Reviewed-by: Eric Engestrom Reviewed-by: Valentine Burley Part-of: --- .gitlab-ci/build/gitlab-ci-inc.yml | 83 +++ .gitlab-ci/build/gitlab-ci.yml | 85 +-- .gitlab-ci/test/gitlab-ci-inc.yml | 525 ++++++++++++++++++ .gitlab-ci/test/gitlab-ci.yml | 525 +----------------- docs/gitlab-ci-inc.yml | 18 + docs/gitlab-ci.yml | 19 +- src/etnaviv/ci/gitlab-ci-inc.yml | 117 ++++ src/etnaviv/ci/gitlab-ci.yml | 118 +--- .../drivers/d3d12/ci/gitlab-ci-inc.yml | 43 ++ src/gallium/drivers/d3d12/ci/gitlab-ci.yml | 44 +- src/gallium/drivers/i915/ci/gitlab-ci-inc.yml | 12 + src/gallium/drivers/i915/ci/gitlab-ci.yml | 12 +- src/gallium/drivers/lima/ci/gitlab-ci-inc.yml | 22 + src/gallium/drivers/lima/ci/gitlab-ci.yml | 23 +- .../frontends/rusticl/ci/gitlab-ci-inc.yml | 15 + .../frontends/rusticl/ci/gitlab-ci.yml | 15 +- 16 files changed, 850 insertions(+), 826 deletions(-) create mode 100644 .gitlab-ci/build/gitlab-ci-inc.yml create mode 100644 .gitlab-ci/test/gitlab-ci-inc.yml create mode 100644 docs/gitlab-ci-inc.yml create mode 100644 src/etnaviv/ci/gitlab-ci-inc.yml create mode 100644 src/gallium/drivers/d3d12/ci/gitlab-ci-inc.yml create mode 100644 src/gallium/drivers/i915/ci/gitlab-ci-inc.yml create mode 100644 src/gallium/drivers/lima/ci/gitlab-ci-inc.yml create mode 100644 src/gallium/frontends/rusticl/ci/gitlab-ci-inc.yml diff --git a/.gitlab-ci/build/gitlab-ci-inc.yml b/.gitlab-ci/build/gitlab-ci-inc.yml new file mode 100644 index 00000000000..560a3a4ca41 --- /dev/null +++ b/.gitlab-ci/build/gitlab-ci-inc.yml @@ -0,0 +1,83 @@ +.meson-build-for-tests: + extends: + - .build-linux + stage: build-for-tests + script: + - &meson-build timeout --verbose ${BUILD_JOB_TIMEOUT_OVERRIDE:-$BUILD_JOB_TIMEOUT} bash --login .gitlab-ci/meson/build.sh + - .gitlab-ci/prepare-artifacts.sh + +.meson-build-only: + extends: + - .meson-build-for-tests + - .build-only-delayed-rules + stage: build-only + script: + - *meson-build + +# Shared between windows and Linux +.build-common: + extends: .build-rules + # Cancel job if a newer commit is pushed to the same branch + interruptible: true + variables: + # Build jobs are typically taking between 5-12 minutes, depending on how + # much they build and how many new Rust compilers we have to build twice. + # Allow 25 minutes as a reasonable margin: beyond this point, something + # has gone badly wrong, and we should try again to see if we can get + # something from it. + # + # Some jobs not in the critical path use a higher timeout, particularly + # when building with ASan or UBSan. + BUILD_JOB_TIMEOUT: 12m + RUN_MESON_TESTS: "true" + timeout: 16m + # We don't want to download any previous job's artifacts + dependencies: [] + artifacts: + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + when: always + paths: + - _build/meson-logs/*.txt + - _build/meson-logs/strace + - _build/.ninja_log + - artifacts + +.build-run-long: + variables: + BUILD_JOB_TIMEOUT: 18m + timeout: 25m + + +# Just Linux +.build-linux: + extends: .build-common + variables: + C_ARGS: > + -Wno-error=deprecated-declarations + CCACHE_COMPILERCHECK: "content" + CCACHE_COMPRESS: "true" + CCACHE_DIR: /cache/mesa/ccache + # Use ccache transparently, and print stats before/after + before_script: + - !reference [default, before_script] + - | + export PATH="/usr/lib/ccache:$PATH" + export CCACHE_BASEDIR="$PWD" + if test -x /usr/bin/ccache; then + section_start ccache_before "ccache stats before build" + ccache --show-stats + section_end ccache_before + fi + after_script: + - if test -x /usr/bin/ccache; then ccache --show-stats | grep "Hits:"; fi + - !reference [default, after_script] + +.build-windows: + extends: + - .build-common + - .windows-docker-tags + cache: + key: ${CI_JOB_NAME} + paths: + - subprojects/packagecache + diff --git a/.gitlab-ci/build/gitlab-ci.yml b/.gitlab-ci/build/gitlab-ci.yml index c4c088245a8..5bfd09cf648 100644 --- a/.gitlab-ci/build/gitlab-ci.yml +++ b/.gitlab-ci/build/gitlab-ci.yml @@ -1,86 +1,5 @@ -# Shared between windows and Linux -.build-common: - extends: .build-rules - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - variables: - # Build jobs are typically taking between 5-12 minutes, depending on how - # much they build and how many new Rust compilers we have to build twice. - # Allow 25 minutes as a reasonable margin: beyond this point, something - # has gone badly wrong, and we should try again to see if we can get - # something from it. - # - # Some jobs not in the critical path use a higher timeout, particularly - # when building with ASan or UBSan. - BUILD_JOB_TIMEOUT: 12m - RUN_MESON_TESTS: "true" - timeout: 16m - # We don't want to download any previous job's artifacts - dependencies: [] - artifacts: - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - when: always - paths: - - _build/meson-logs/*.txt - - _build/meson-logs/strace - - _build/.ninja_log - - artifacts - -.build-run-long: - variables: - BUILD_JOB_TIMEOUT: 18m - timeout: 25m - - -# Just Linux -.build-linux: - extends: .build-common - variables: - C_ARGS: > - -Wno-error=deprecated-declarations - CCACHE_COMPILERCHECK: "content" - CCACHE_COMPRESS: "true" - CCACHE_DIR: /cache/mesa/ccache - # Use ccache transparently, and print stats before/after - before_script: - - !reference [default, before_script] - - | - export PATH="/usr/lib/ccache:$PATH" - export CCACHE_BASEDIR="$PWD" - if test -x /usr/bin/ccache; then - section_start ccache_before "ccache stats before build" - ccache --show-stats - section_end ccache_before - fi - after_script: - - if test -x /usr/bin/ccache; then ccache --show-stats | grep "Hits:"; fi - - !reference [default, after_script] - -.build-windows: - extends: - - .build-common - - .windows-docker-tags - cache: - key: ${CI_JOB_NAME} - paths: - - subprojects/packagecache - -.meson-build-for-tests: - extends: - - .build-linux - stage: build-for-tests - script: - - &meson-build timeout --verbose ${BUILD_JOB_TIMEOUT_OVERRIDE:-$BUILD_JOB_TIMEOUT} bash --login .gitlab-ci/meson/build.sh - - .gitlab-ci/prepare-artifacts.sh - -.meson-build-only: - extends: - - .meson-build-for-tests - - .build-only-delayed-rules - stage: build-only - script: - - *meson-build - +include: + - local: '.gitlab-ci/build/gitlab-ci-inc.yml' debian-x86_64: extends: diff --git a/.gitlab-ci/test/gitlab-ci-inc.yml b/.gitlab-ci/test/gitlab-ci-inc.yml new file mode 100644 index 00000000000..d294da80f28 --- /dev/null +++ b/.gitlab-ci/test/gitlab-ci-inc.yml @@ -0,0 +1,525 @@ +.test: + # Cancel job if a newer commit is pushed to the same branch + interruptible: true + variables: + GIT_STRATEGY: none # testing doesn't build anything from source + # `before_script:` is only used by test jobs on generic fdo runners + # it's overwritten by hardware test jobs + before_script: + - !reference [.download_s3, before_script] + - section_start ldd_section "Checking ldd on driver build" + - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \; + - section_end ldd_section + artifacts: + when: always + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + paths: + - results/ + rules: + - !reference [.common-rules, rules] + - !reference [.never-post-merge-rules, rules] + +.formatting-check: + # Cancel job if a newer commit is pushed to the same branch + interruptible: true + stage: code-validation + extends: + - .use-debian/arm64_build + variables: + GIT_STRATEGY: fetch + timeout: 10m + script: + - git diff --color=always --exit-code # Fails if there are diffs + tags: + - $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64 + +.test-gl: + extends: + - .test + - .use-debian/x86_64_test-gl + needs: + - job: debian/x86_64_test-gl + optional: true + - job: debian-x86_64 + - !reference [.required-for-hardware-jobs, needs] + variables: + DEBIAN_ARCH: amd64 + S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized + +.test-vk: + extends: + - .test + - .use-debian/x86_64_test-vk + needs: + - job: debian-x86_64 + - job: debian/x86_64_test-vk + optional: true + - !reference [.required-for-hardware-jobs, needs] + variables: + DEBIAN_ARCH: amd64 + S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized + +.test-cl: + extends: + - .test + - .use-debian/x86_64_test-gl + needs: + - job: debian/x86_64_test-gl + optional: true + - !reference [.required-for-hardware-jobs, needs] + variables: + S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized + +.test-android: + extends: + - .test + - .use-debian/x86_64_test-android + variables: + # This is for the guest artifacts from debian-android which will be + # downloaded explicitly by cuttlefish-runner.sh + S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug + S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized + # Set the default Vulkan driver to lavapipe for some preliminary checks + # that Cuttlefish always performs before starting the VM. This can be + # overwritten depending on the physical machine running the job. + VK_DRIVER: "lvp" + needs: + - job: debian-x86_64 + artifacts: true # On the host we want the Linux build + - job: debian-android + artifacts: false # The Android build will be downloaded later + - job: debian/x86_64_test-android + artifacts: false + optional: true + - !reference [.required-for-hardware-jobs, needs] + timeout: 20m + script: + - ./install/cuttlefish-runner.sh + artifacts: + paths: + - results/ + +.test-android-cts: + variables: + ANDROID_CTS_TAG: ${CONDITIONAL_BUILD_ANDROID_CTS_TAG} + +.test-angle: + variables: + ANGLE_TAG: ${CONDITIONAL_BUILD_ANGLE_TAG} + +.test-crosvm: + variables: + CROSVM_TAG: ${CONDITIONAL_BUILD_CROSVM_TAG} + +.test-fluster: + variables: + FLUSTER_TAG: ${CONDITIONAL_BUILD_FLUSTER_TAG} + FLUSTER_RESULTS: "${GPU_VERSION}-${FLUSTER_CODEC}" + HWCI_TEST_SCRIPT: install/fluster-runner.sh + +.test-piglit: + variables: + PIGLIT_TAG: ${CONDITIONAL_BUILD_PIGLIT_TAG} + +.test-vkd3d-proton: + variables: + VKD3D_PROTON_TAG: ${CONDITIONAL_BUILD_VKD3D_PROTON_TAG} + HWCI_TEST_SCRIPT: install/vkd3d-runner.sh + +.piglit-traces-test: + artifacts: + when: on_failure + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + reports: + junit: results/junit.xml + paths: + - results/ + exclude: + - results/*.shader_cache + extends: + - .test-piglit + variables: + # until we overcome Infrastructure issues, give traces extra 5 min before timeout + DEVICE_HANGING_TIMEOUT_SEC: 600 + PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=${S3_TRACIE_PUBLIC_BUCKET} --jwt-file=${S3_JWT_FILE} + PIGLIT_NO_WINDOW: 1 + HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh" + script: + - section_start variables "Variables passed through:" + - filter_env_vars + - section_end variables + - install/piglit/piglit-traces.sh + +.deqp-test: + script: + - rm -rf results # Clear out old results if the docker container was cached + - ./install/deqp-runner.sh + artifacts: + exclude: + - results/*.shader_cache + reports: + junit: results/junit.xml + +.fossilize-test: + script: + - ./install/fossilize-runner.sh + artifacts: + when: on_failure + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + paths: + - results/ + +.download_s3: + before_script: + - !reference [default, before_script] + # Use this instead of gitlab's artifacts download because it hits packet.net + # instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to + # improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for + # setup). + - section_start artifacts_download "Downloading artifacts from s3" + # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY + - rm -rf install + - (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x) + - section_end artifacts_download + +.baremetal-test: + extends: + - .test + # Cancel job if a newer commit is pushed to the same branch + interruptible: true + before_script: + - !reference [.download_s3, before_script] + variables: + BM_ROOTFS: /rootfs-${DEBIAN_ARCH} + artifacts: + when: always + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + paths: + - results/ + - serial*.txt + exclude: + - results/*.shader_cache + reports: + junit: results/junit.xml + +# ARM testing of bare-metal boards attached to an x86 gitlab-runner system +.baremetal-test-arm32-gl: + extends: + - .baremetal-test + - .use-debian/baremetal_arm32_test-gl + variables: + DEBIAN_ARCH: armhf + S3_ARTIFACT_NAME: mesa-arm32-default-debugoptimized + needs: + - job: debian/baremetal_arm32_test-gl + optional: true + - job: debian-arm32 + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system +.baremetal-test-arm64-gl: + extends: + - .baremetal-test + - .use-debian/baremetal_arm64_test-gl + variables: + DEBIAN_ARCH: arm64 + S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized + needs: + - job: debian/baremetal_arm64_test-gl + optional: true + - job: debian-arm64 + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system +.baremetal-test-arm64-vk: + extends: + - .baremetal-test + - .use-debian/baremetal_arm64_test-vk + variables: + DEBIAN_ARCH: arm64 + S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized + needs: + - job: debian/baremetal_arm64_test-vk + optional: true + - job: debian-arm64 + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +# ARM32/64 testing of bare-metal boards attached to an x86 gitlab-runner system, using an asan mesa build +.baremetal-arm32-asan-test-gl: + variables: + S3_ARTIFACT_NAME: mesa-arm32-asan-debugoptimized + DEQP_FORCE_ASAN: 1 + needs: + - job: debian/baremetal_arm32_test-gl + optional: true + - job: debian-arm32-asan + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +.baremetal-arm64-asan-test-gl: + variables: + S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized + DEQP_FORCE_ASAN: 1 + needs: + - job: debian/baremetal_arm64_test-gl + optional: true + - job: debian-arm64-asan + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +.baremetal-arm64-asan-test-vk: + variables: + S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized + DEQP_FORCE_ASAN: 1 + needs: + - job: debian/baremetal_arm64_test-vk + optional: true + - job: debian-arm64-asan + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +.baremetal-arm64-ubsan-test-gl: + extends: + - .baremetal-test + - .use-debian/baremetal_arm64_test-gl + variables: + S3_ARTIFACT_NAME: mesa-arm64-ubsan-debugoptimized + needs: + - job: debian/baremetal_arm64_test-gl + optional: true + - job: debian-arm64-ubsan + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +.baremetal-arm64-ubsan-test-vk: + extends: + - .baremetal-test + - .use-debian/baremetal_arm64_test-vk + variables: + S3_ARTIFACT_NAME: mesa-arm64-ubsan-debugoptimized + needs: + - job: debian/baremetal_arm64_test-vk + optional: true + - job: debian-arm64-ubsan + artifacts: false + - !reference [.required-for-hardware-jobs, needs] + +.baremetal-deqp-test: + variables: + HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" + FDO_CI_CONCURRENT: 0 # Default to number of CPUs + +# For CI-tron based testing farm jobs. +.ci-tron-test: + extends: + - .ci-tron-b2c-job-v1 + variables: + GIT_STRATEGY: none + B2C_VERSION: v0.9.15.1 # Linux 6.13.7 + + SCRIPTS_DIR: install + + CI_TRON_PATTERN__JOB_SUCCESS__REGEX: 'hwci: mesa: exit_code: 0\r$' + CI_TRON_PATTERN__SESSION_END__REGEX: '^.*It''s now safe to turn off your computer\r$' + + CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__MINUTES: 2 + CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__RETRIES: 3 + CI_TRON_TIMEOUT__CONSOLE_ACTIVITY__MINUTES: 5 + + CI_TRON__B2C_ARTIFACT_EXCLUSION: "*.shader_cache,install/*,*/install/*,*/vkd3d-proton.cache*,vkd3d-proton.cache*,*.qpa" + CI_TRON_HTTP_ARTIFACT__INSTALL__PATH: "/install.tar.zst" + CI_TRON_HTTP_ARTIFACT__INSTALL__URL: "https://$PIPELINE_ARTIFACTS_BASE/$S3_ARTIFACT_NAME.tar.zst" + + CI_TRON__B2C_MACHINE_REGISTRATION_CMD: "setup --tags $CI_TRON_DUT_SETUP_TAGS" + CI_TRON__B2C_IMAGE_UNDER_TEST: $MESA_IMAGE + CI_TRON__B2C_EXEC_CMD: "curl --silent --fail-with-body {{ job.http.url }}$CI_TRON_HTTP_ARTIFACT__INSTALL__PATH | tar --zstd --extract && $SCRIPTS_DIR/common/init-stage2.sh" + + # Assume by default this is running deqp, as that's almost always true + HWCI_TEST_SCRIPT: install/deqp-runner.sh + + # Keep the job script in the artifacts + CI_TRON_JOB_SCRIPT_PATH: results/job_script.sh + needs: + - !reference [.required-for-hardware-jobs, needs] + tags: + - farm:$RUNNER_FARM_LOCATION + - $CI_TRON_DUT_SETUP_TAGS + + # Override the default before_script, as it is not compatible with the CI-tron environment. We just keep the clearing + # of the JWT token for security reasons + before_script: + - | + set -eu + + eval "$S3_JWT_FILE_SCRIPT" + + for var in CI_TRON_DUT_SETUP_TAGS; do + if [[ -z "$(eval echo \${$var:-})" ]]; then + echo "The required variable '$var' is missing" + exit 1 + fi + done + + # Open a section that will be closed by b2c + echo -e "\n\e[0Ksection_start:`date +%s`:b2c_kernel_boot[collapsed=true]\r\e[0K\e[0;36m[$(cut -d ' ' -f1 /proc/uptime)]: Submitting the CI-tron job and booting the DUT\e[0m\n" + + # Anything our job places in results/ will be collected by the + # Gitlab coordinator for status presentation. results/junit.xml + # will be parsed by the UI for more detailed explanations of + # test execution. + artifacts: + when: always + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + paths: + - results + reports: + junit: results/**/junit.xml + +.ci-tron-x86_64-test: + extends: + - .ci-tron-test + variables: + CI_TRON_INITRAMFS__B2C__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/initramfs.linux_amd64.cpio.xz' + CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64' + + # Set the following variables if you need AMD, Intel, or NVIDIA support + # CI_TRON_INITRAMFS__DEPMOD__URL: "https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64.depmod.cpio.xz" + # CI_TRON_INITRAMFS__GPU__URL: "https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64.gpu.cpio" + # CI_TRON_INITRAMFS__GPU__FORMAT__0__ARCHIVE__KEEP__0__PATH: "(lib/(modules|firmware/amdgpu)/.*)" + + S3_ARTIFACT_NAME: "mesa-x86_64-default-debugoptimized" + +.ci-tron-x86_64-test-vk: + extends: + - .use-debian/x86_64_test-vk + - .ci-tron-x86_64-test + needs: + - job: debian/x86_64_test-vk + artifacts: false + optional: true + - job: debian-x86_64 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-x86_64-test-vk-manual: + extends: + - .use-debian/x86_64_test-vk + - .ci-tron-x86_64-test + variables: + S3_ARTIFACT_NAME: "debian-build-x86_64" + needs: + - job: debian/x86_64_test-vk + artifacts: false + optional: true + - job: debian-build-x86_64 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-x86_64-test-gl: + extends: + - .use-debian/x86_64_test-gl + - .ci-tron-x86_64-test + needs: + - job: debian/x86_64_test-gl + artifacts: false + optional: true + - job: debian-x86_64 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-x86_64-test-gl-manual: + extends: + - .use-debian/x86_64_test-gl + - .ci-tron-x86_64-test + variables: + S3_ARTIFACT_NAME: "debian-build-x86_64" + needs: + - job: debian/x86_64_test-gl + artifacts: false + optional: true + - job: debian-build-x86_64 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-arm64-test: + extends: + - .ci-tron-test + variables: + CI_TRON_INITRAMFS__B2C__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/initramfs.linux_arm64.cpio.xz' + CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-arm64' + S3_ARTIFACT_NAME: "mesa-arm64-default-debugoptimized" + +.ci-tron-arm64-test-vk: + extends: + - .use-debian/arm64_test-vk + - .ci-tron-arm64-test + needs: + - job: debian/arm64_test-vk + artifacts: false + optional: true + - job: debian-arm64 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-arm64-test-gl: + extends: + - .use-debian/arm64_test-gl + - .ci-tron-arm64-test + needs: + - job: debian/arm64_test-gl + artifacts: false + optional: true + - job: debian-arm64 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-arm32-test: + extends: + - .ci-tron-test + variables: + CI_TRON_INITRAMFS__B2C__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/initramfs.linux_arm.cpio.xz' + CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-arm' + S3_ARTIFACT_NAME: "mesa-arm32-default-debugoptimized" + +.ci-tron-arm32-test-vk: + extends: + - .use-debian/arm32_test-vk + - .ci-tron-arm32-test + needs: + - job: debian/arm32_test-vk + artifacts: false + optional: true + - job: debian-arm32 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-arm32-test-gl: + extends: + - .use-debian/arm32_test-gl + - .ci-tron-arm32-test + needs: + - job: debian/arm32_test-gl + artifacts: false + optional: true + - job: debian-arm32 + artifacts: false + - !reference [.ci-tron-test, needs] + +.ci-tron-arm32-test-asan-gl: + extends: + - .use-debian/arm32_test-gl + - .ci-tron-arm32-test + variables: + S3_ARTIFACT_NAME: "mesa-arm32-asan-debugoptimized" + DEQP_FORCE_ASAN: 1 + needs: + - job: debian/arm32_test-gl + artifacts: false + optional: true + - job: debian-arm32-asan + artifacts: false + - !reference [.ci-tron-test, needs] + diff --git a/.gitlab-ci/test/gitlab-ci.yml b/.gitlab-ci/test/gitlab-ci.yml index 2076e2c385a..ed8a335ea2a 100644 --- a/.gitlab-ci/test/gitlab-ci.yml +++ b/.gitlab-ci/test/gitlab-ci.yml @@ -1,37 +1,5 @@ -.test: - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - variables: - GIT_STRATEGY: none # testing doesn't build anything from source - # `before_script:` is only used by test jobs on generic fdo runners - # it's overwritten by hardware test jobs - before_script: - - !reference [.download_s3, before_script] - - section_start ldd_section "Checking ldd on driver build" - - LD_LIBRARY_PATH=install/lib find install/lib -name "*.so" -print -exec ldd {} \; - - section_end ldd_section - artifacts: - when: always - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - paths: - - results/ - rules: - - !reference [.common-rules, rules] - - !reference [.never-post-merge-rules, rules] - -.formatting-check: - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - stage: code-validation - extends: - - .use-debian/arm64_build - variables: - GIT_STRATEGY: fetch - timeout: 10m - script: - - git diff --color=always --exit-code # Fails if there are diffs - tags: - - $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64 +include: + - local: '.gitlab-ci/test/gitlab-ci-inc.yml' rustfmt: extends: @@ -121,492 +89,3 @@ yaml-toml-shell-py-test: tags: - $FDO_RUNNER_JOB_PRIORITY_TAG_AARCH64 -.test-gl: - extends: - - .test - - .use-debian/x86_64_test-gl - needs: - - job: debian/x86_64_test-gl - optional: true - - job: debian-x86_64 - - !reference [.required-for-hardware-jobs, needs] - variables: - DEBIAN_ARCH: amd64 - S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized - -.test-vk: - extends: - - .test - - .use-debian/x86_64_test-vk - needs: - - job: debian-x86_64 - - job: debian/x86_64_test-vk - optional: true - - !reference [.required-for-hardware-jobs, needs] - variables: - DEBIAN_ARCH: amd64 - S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized - -.test-cl: - extends: - - .test - - .use-debian/x86_64_test-gl - needs: - - job: debian/x86_64_test-gl - optional: true - - !reference [.required-for-hardware-jobs, needs] - variables: - S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized - -.test-android: - extends: - - .test - - .use-debian/x86_64_test-android - variables: - # This is for the guest artifacts from debian-android which will be - # downloaded explicitly by cuttlefish-runner.sh - S3_ANDROID_ARTIFACT_NAME: mesa-x86_64-android-debug - S3_ARTIFACT_NAME: mesa-x86_64-default-debugoptimized - # Set the default Vulkan driver to lavapipe for some preliminary checks - # that Cuttlefish always performs before starting the VM. This can be - # overwritten depending on the physical machine running the job. - VK_DRIVER: "lvp" - needs: - - job: debian-x86_64 - artifacts: true # On the host we want the Linux build - - job: debian-android - artifacts: false # The Android build will be downloaded later - - job: debian/x86_64_test-android - artifacts: false - optional: true - - !reference [.required-for-hardware-jobs, needs] - timeout: 20m - script: - - ./install/cuttlefish-runner.sh - artifacts: - paths: - - results/ - -.test-android-cts: - variables: - ANDROID_CTS_TAG: ${CONDITIONAL_BUILD_ANDROID_CTS_TAG} - -.test-angle: - variables: - ANGLE_TAG: ${CONDITIONAL_BUILD_ANGLE_TAG} - -.test-crosvm: - variables: - CROSVM_TAG: ${CONDITIONAL_BUILD_CROSVM_TAG} - -.test-fluster: - variables: - FLUSTER_TAG: ${CONDITIONAL_BUILD_FLUSTER_TAG} - FLUSTER_RESULTS: "${GPU_VERSION}-${FLUSTER_CODEC}" - HWCI_TEST_SCRIPT: install/fluster-runner.sh - -.test-piglit: - variables: - PIGLIT_TAG: ${CONDITIONAL_BUILD_PIGLIT_TAG} - -.test-vkd3d-proton: - variables: - VKD3D_PROTON_TAG: ${CONDITIONAL_BUILD_VKD3D_PROTON_TAG} - HWCI_TEST_SCRIPT: install/vkd3d-runner.sh - -.piglit-traces-test: - artifacts: - when: on_failure - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - reports: - junit: results/junit.xml - paths: - - results/ - exclude: - - results/*.shader_cache - extends: - - .test-piglit - variables: - # until we overcome Infrastructure issues, give traces extra 5 min before timeout - DEVICE_HANGING_TIMEOUT_SEC: 600 - PIGLIT_REPLAY_EXTRA_ARGS: --db-path ${CI_PROJECT_DIR}/replayer-db/ --minio_bucket=${S3_TRACIE_PUBLIC_BUCKET} --jwt-file=${S3_JWT_FILE} - PIGLIT_NO_WINDOW: 1 - HWCI_TEST_SCRIPT: "/install/piglit/piglit-traces.sh" - script: - - section_start variables "Variables passed through:" - - filter_env_vars - - section_end variables - - install/piglit/piglit-traces.sh - -.deqp-test: - script: - - rm -rf results # Clear out old results if the docker container was cached - - ./install/deqp-runner.sh - artifacts: - exclude: - - results/*.shader_cache - reports: - junit: results/junit.xml - -.fossilize-test: - script: - - ./install/fossilize-runner.sh - artifacts: - when: on_failure - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - paths: - - results/ - -.download_s3: - before_script: - - !reference [default, before_script] - # Use this instead of gitlab's artifacts download because it hits packet.net - # instead of fd.o. Set FDO_HTTP_CACHE_URI to an http cache for your test lab to - # improve it even more (see https://docs.mesa3d.org/ci/bare-metal.html for - # setup). - - section_start artifacts_download "Downloading artifacts from s3" - # Note: Build dir (and thus install) may be dirty due to GIT_STRATEGY - - rm -rf install - - (set -x; curl -L --retry 4 -f --retry-all-errors --retry-delay 60 ${FDO_HTTP_CACHE_URI:-}https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst | tar --zstd -x) - - section_end artifacts_download - -.baremetal-test: - extends: - - .test - # Cancel job if a newer commit is pushed to the same branch - interruptible: true - before_script: - - !reference [.download_s3, before_script] - variables: - BM_ROOTFS: /rootfs-${DEBIAN_ARCH} - artifacts: - when: always - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - paths: - - results/ - - serial*.txt - exclude: - - results/*.shader_cache - reports: - junit: results/junit.xml - -# ARM testing of bare-metal boards attached to an x86 gitlab-runner system -.baremetal-test-arm32-gl: - extends: - - .baremetal-test - - .use-debian/baremetal_arm32_test-gl - variables: - DEBIAN_ARCH: armhf - S3_ARTIFACT_NAME: mesa-arm32-default-debugoptimized - needs: - - job: debian/baremetal_arm32_test-gl - optional: true - - job: debian-arm32 - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system -.baremetal-test-arm64-gl: - extends: - - .baremetal-test - - .use-debian/baremetal_arm64_test-gl - variables: - DEBIAN_ARCH: arm64 - S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized - needs: - - job: debian/baremetal_arm64_test-gl - optional: true - - job: debian-arm64 - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -# ARM64 testing of bare-metal boards attached to an x86 gitlab-runner system -.baremetal-test-arm64-vk: - extends: - - .baremetal-test - - .use-debian/baremetal_arm64_test-vk - variables: - DEBIAN_ARCH: arm64 - S3_ARTIFACT_NAME: mesa-arm64-default-debugoptimized - needs: - - job: debian/baremetal_arm64_test-vk - optional: true - - job: debian-arm64 - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -# ARM32/64 testing of bare-metal boards attached to an x86 gitlab-runner system, using an asan mesa build -.baremetal-arm32-asan-test-gl: - variables: - S3_ARTIFACT_NAME: mesa-arm32-asan-debugoptimized - DEQP_FORCE_ASAN: 1 - needs: - - job: debian/baremetal_arm32_test-gl - optional: true - - job: debian-arm32-asan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-arm64-asan-test-gl: - variables: - S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized - DEQP_FORCE_ASAN: 1 - needs: - - job: debian/baremetal_arm64_test-gl - optional: true - - job: debian-arm64-asan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-arm64-asan-test-vk: - variables: - S3_ARTIFACT_NAME: mesa-arm64-asan-debugoptimized - DEQP_FORCE_ASAN: 1 - needs: - - job: debian/baremetal_arm64_test-vk - optional: true - - job: debian-arm64-asan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-arm64-ubsan-test-gl: - extends: - - .baremetal-test - - .use-debian/baremetal_arm64_test-gl - variables: - S3_ARTIFACT_NAME: mesa-arm64-ubsan-debugoptimized - needs: - - job: debian/baremetal_arm64_test-gl - optional: true - - job: debian-arm64-ubsan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-arm64-ubsan-test-vk: - extends: - - .baremetal-test - - .use-debian/baremetal_arm64_test-vk - variables: - S3_ARTIFACT_NAME: mesa-arm64-ubsan-debugoptimized - needs: - - job: debian/baremetal_arm64_test-vk - optional: true - - job: debian-arm64-ubsan - artifacts: false - - !reference [.required-for-hardware-jobs, needs] - -.baremetal-deqp-test: - variables: - HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - FDO_CI_CONCURRENT: 0 # Default to number of CPUs - -# For CI-tron based testing farm jobs. -.ci-tron-test: - extends: - - .ci-tron-b2c-job-v1 - variables: - GIT_STRATEGY: none - B2C_VERSION: v0.9.15.1 # Linux 6.13.7 - - SCRIPTS_DIR: install - - CI_TRON_PATTERN__JOB_SUCCESS__REGEX: 'hwci: mesa: exit_code: 0\r$' - CI_TRON_PATTERN__SESSION_END__REGEX: '^.*It''s now safe to turn off your computer\r$' - - CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__MINUTES: 2 - CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__RETRIES: 3 - CI_TRON_TIMEOUT__CONSOLE_ACTIVITY__MINUTES: 5 - - CI_TRON__B2C_ARTIFACT_EXCLUSION: "*.shader_cache,install/*,*/install/*,*/vkd3d-proton.cache*,vkd3d-proton.cache*,*.qpa" - CI_TRON_HTTP_ARTIFACT__INSTALL__PATH: "/install.tar.zst" - CI_TRON_HTTP_ARTIFACT__INSTALL__URL: "https://$PIPELINE_ARTIFACTS_BASE/$S3_ARTIFACT_NAME.tar.zst" - - CI_TRON__B2C_MACHINE_REGISTRATION_CMD: "setup --tags $CI_TRON_DUT_SETUP_TAGS" - CI_TRON__B2C_IMAGE_UNDER_TEST: $MESA_IMAGE - CI_TRON__B2C_EXEC_CMD: "curl --silent --fail-with-body {{ job.http.url }}$CI_TRON_HTTP_ARTIFACT__INSTALL__PATH | tar --zstd --extract && $SCRIPTS_DIR/common/init-stage2.sh" - - # Assume by default this is running deqp, as that's almost always true - HWCI_TEST_SCRIPT: install/deqp-runner.sh - - # Keep the job script in the artifacts - CI_TRON_JOB_SCRIPT_PATH: results/job_script.sh - needs: - - !reference [.required-for-hardware-jobs, needs] - tags: - - farm:$RUNNER_FARM_LOCATION - - $CI_TRON_DUT_SETUP_TAGS - - # Override the default before_script, as it is not compatible with the CI-tron environment. We just keep the clearing - # of the JWT token for security reasons - before_script: - - | - set -eu - - eval "$S3_JWT_FILE_SCRIPT" - - for var in CI_TRON_DUT_SETUP_TAGS; do - if [[ -z "$(eval echo \${$var:-})" ]]; then - echo "The required variable '$var' is missing" - exit 1 - fi - done - - # Open a section that will be closed by b2c - echo -e "\n\e[0Ksection_start:`date +%s`:b2c_kernel_boot[collapsed=true]\r\e[0K\e[0;36m[$(cut -d ' ' -f1 /proc/uptime)]: Submitting the CI-tron job and booting the DUT\e[0m\n" - - # Anything our job places in results/ will be collected by the - # Gitlab coordinator for status presentation. results/junit.xml - # will be parsed by the UI for more detailed explanations of - # test execution. - artifacts: - when: always - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - paths: - - results - reports: - junit: results/**/junit.xml - -.ci-tron-x86_64-test: - extends: - - .ci-tron-test - variables: - CI_TRON_INITRAMFS__B2C__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/initramfs.linux_amd64.cpio.xz' - CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64' - - # Set the following variables if you need AMD, Intel, or NVIDIA support - # CI_TRON_INITRAMFS__DEPMOD__URL: "https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64.depmod.cpio.xz" - # CI_TRON_INITRAMFS__GPU__URL: "https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-x86_64.gpu.cpio" - # CI_TRON_INITRAMFS__GPU__FORMAT__0__ARCHIVE__KEEP__0__PATH: "(lib/(modules|firmware/amdgpu)/.*)" - - S3_ARTIFACT_NAME: "mesa-x86_64-default-debugoptimized" - -.ci-tron-x86_64-test-vk: - extends: - - .use-debian/x86_64_test-vk - - .ci-tron-x86_64-test - needs: - - job: debian/x86_64_test-vk - artifacts: false - optional: true - - job: debian-x86_64 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-x86_64-test-vk-manual: - extends: - - .use-debian/x86_64_test-vk - - .ci-tron-x86_64-test - variables: - S3_ARTIFACT_NAME: "debian-build-x86_64" - needs: - - job: debian/x86_64_test-vk - artifacts: false - optional: true - - job: debian-build-x86_64 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-x86_64-test-gl: - extends: - - .use-debian/x86_64_test-gl - - .ci-tron-x86_64-test - needs: - - job: debian/x86_64_test-gl - artifacts: false - optional: true - - job: debian-x86_64 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-x86_64-test-gl-manual: - extends: - - .use-debian/x86_64_test-gl - - .ci-tron-x86_64-test - variables: - S3_ARTIFACT_NAME: "debian-build-x86_64" - needs: - - job: debian/x86_64_test-gl - artifacts: false - optional: true - - job: debian-build-x86_64 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-arm64-test: - extends: - - .ci-tron-test - variables: - CI_TRON_INITRAMFS__B2C__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/initramfs.linux_arm64.cpio.xz' - CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-arm64' - S3_ARTIFACT_NAME: "mesa-arm64-default-debugoptimized" - -.ci-tron-arm64-test-vk: - extends: - - .use-debian/arm64_test-vk - - .ci-tron-arm64-test - needs: - - job: debian/arm64_test-vk - artifacts: false - optional: true - - job: debian-arm64 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-arm64-test-gl: - extends: - - .use-debian/arm64_test-gl - - .ci-tron-arm64-test - needs: - - job: debian/arm64_test-gl - artifacts: false - optional: true - - job: debian-arm64 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-arm32-test: - extends: - - .ci-tron-test - variables: - CI_TRON_INITRAMFS__B2C__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/initramfs.linux_arm.cpio.xz' - CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/$B2C_VERSION/downloads/linux-arm' - S3_ARTIFACT_NAME: "mesa-arm32-default-debugoptimized" - -.ci-tron-arm32-test-vk: - extends: - - .use-debian/arm32_test-vk - - .ci-tron-arm32-test - needs: - - job: debian/arm32_test-vk - artifacts: false - optional: true - - job: debian-arm32 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-arm32-test-gl: - extends: - - .use-debian/arm32_test-gl - - .ci-tron-arm32-test - needs: - - job: debian/arm32_test-gl - artifacts: false - optional: true - - job: debian-arm32 - artifacts: false - - !reference [.ci-tron-test, needs] - -.ci-tron-arm32-test-asan-gl: - extends: - - .use-debian/arm32_test-gl - - .ci-tron-arm32-test - variables: - S3_ARTIFACT_NAME: "mesa-arm32-asan-debugoptimized" - DEQP_FORCE_ASAN: 1 - needs: - - job: debian/arm32_test-gl - artifacts: false - optional: true - - job: debian-arm32-asan - artifacts: false - - !reference [.ci-tron-test, needs] diff --git a/docs/gitlab-ci-inc.yml b/docs/gitlab-ci-inc.yml new file mode 100644 index 00000000000..b5058f272d5 --- /dev/null +++ b/docs/gitlab-ci-inc.yml @@ -0,0 +1,18 @@ +.docs-base: + timeout: 10m + extends: + - .build-linux + - .use-alpine/x86_64_build + artifacts: + expose_as: 'Documentation preview' + paths: + - public/ + script: + - meson setup _build -D prefix=$(pwd) --auto-features=disabled + -D vulkan-drivers="" -D gallium-drivers="" -D platforms=[] -D glx=disabled + -D video-codecs="" -D html-docs=enabled -D html-docs-path=public + -D werror=true + - meson compile -C _build + - meson install -C _build + - echo "Documentation website preview is available at $ARTIFACTS_BASE_URL/public/index.html" + diff --git a/docs/gitlab-ci.yml b/docs/gitlab-ci.yml index 3f2a5c45a56..968c9ec5861 100644 --- a/docs/gitlab-ci.yml +++ b/docs/gitlab-ci.yml @@ -1,20 +1,5 @@ -.docs-base: - timeout: 10m - extends: - - .build-linux - - .use-alpine/x86_64_build - artifacts: - expose_as: 'Documentation preview' - paths: - - public/ - script: - - meson setup _build -D prefix=$(pwd) --auto-features=disabled - -D vulkan-drivers="" -D gallium-drivers="" -D platforms=[] -D glx=disabled - -D video-codecs="" -D html-docs=enabled -D html-docs-path=public - -D werror=true - - meson compile -C _build - - meson install -C _build - - echo "Documentation website preview is available at $ARTIFACTS_BASE_URL/public/index.html" +include: + - local: 'docs/gitlab-ci-inc.yml' deploy-docs: extends: .docs-base diff --git a/src/etnaviv/ci/gitlab-ci-inc.yml b/src/etnaviv/ci/gitlab-ci-inc.yml new file mode 100644 index 00000000000..b307ae2bbf5 --- /dev/null +++ b/src/etnaviv/ci/gitlab-ci-inc.yml @@ -0,0 +1,117 @@ +.etnaviv-rules: + stage: etnaviv + rules: + - !reference [.test, rules] + - !reference [.austriancoder-farm-rules, rules] + - !reference [.gl-rules, rules] + - changes: &etnaviv_file_list + - src/etnaviv/* + - src/etnaviv/ci/gitlab-ci.yml + - src/etnaviv/ci/deqp-$DEQP_SUITE.toml + - src/etnaviv/ci/$GPU_VERSION-fails.txt + - src/etnaviv/ci/$GPU_VERSION-flakes.txt + - src/etnaviv/ci/$GPU_VERSION-skips.txt + - src/etnaviv/drm/**/* + - src/etnaviv/drm-shim/**/* + - src/etnaviv/isa/**/* + - src/gallium/drivers/etnaviv/**/* + - src/gallium/winsys/etnaviv/**/* + - src/gallium/auxiliary/renderonly/**/* + - src/gallium/winsys/kmsro/**/* + when: on_success + +.etnaviv-manual-rules: + stage: etnaviv-nightly + extends: .no-auto-retry + rules: + - !reference [.test, rules] + - !reference [.austriancoder-farm-manual-rules, rules] + - !reference [.gl-manual-rules, rules] + - changes: + *etnaviv_file_list + when: manual + +.austriancoder-ci-tron: + extends: + - .ci-tron-b2c-diskless-v1 + variables: + RUNNER_FARM_LOCATION: austriancoder + CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__MINUTES: 0.5 + CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__RETRIES: 3 + CI_TRON_DUT_SETUP_TAGS: "$VIVANTE_MODEL_TAG,$VIVANTE_REVISION_TAG" + +.austriancoder-imx6q-cubox-i:arm32: + extends: + - .austriancoder-ci-tron + variables: + CI_TRON__B2C_DISKLESS_IMAGESTORE_PLATFORM: linux/arm/v7 + VIVANTE_MODEL_TAG: "vivante:model:2000" + VIVANTE_REVISION_TAG: "vivante:revision:5108" + GPU_VERSION: "etnaviv-gc2000-r5108" + +# 1 device (2025-01-30) +.austriancoder-imx6q-cubox-i-2cores:arm32: + extends: + - .austriancoder-imx6q-cubox-i:arm32 + variables: + FDO_CI_CONCURRENT: 2 + tags: + - farm:$RUNNER_FARM_LOCATION + - cpu:cores:2 + - $VIVANTE_MODEL_TAG + - $VIVANTE_REVISION_TAG + +# 4 devices (2025-01-30) +.austriancoder-imx6q-cubox-i-4cores:arm32: + extends: + - .austriancoder-imx6q-cubox-i:arm32 + variables: + FDO_CI_CONCURRENT: 4 + tags: + - farm:$RUNNER_FARM_LOCATION + - cpu:cores:4 + - $VIVANTE_MODEL_TAG + - $VIVANTE_REVISION_TAG + +# 2 devices (2025-02-28) +.austriancoder-imx6qp-nitrogen6_max:arm32: + extends: + - .austriancoder-ci-tron + variables: + FDO_CI_CONCURRENT: 4 + CI_TRON__B2C_DISKLESS_IMAGESTORE_PLATFORM: linux/arm/v7 + VIVANTE_MODEL_TAG: "vivante:model:3000" + VIVANTE_REVISION_TAG: "vivante:revision:5450" + GPU_VERSION: "etnaviv-gc3000-r5450" + tags: + - farm:$RUNNER_FARM_LOCATION + - $VIVANTE_MODEL_TAG + - $VIVANTE_REVISION_TAG + +# 1 devices (2025-02-26) +.austriancoder-imx8mq-nitrogen:arm64: + extends: + - .austriancoder-ci-tron + variables: + FDO_CI_CONCURRENT: 4 + CI_TRON__B2C_DISKLESS_IMAGESTORE_PLATFORM: linux/arm64/v8 + VIVANTE_MODEL_TAG: "vivante:model:7000" + VIVANTE_REVISION_TAG: "vivante:revision:6214" + GPU_VERSION: "etnaviv-gc7000-r6214" + tags: + - farm:$RUNNER_FARM_LOCATION + - $VIVANTE_MODEL_TAG + - $VIVANTE_REVISION_TAG + +# 1 devices (2025-02-26) +# Status: https://lava.pengutronix.de/scheduler/device_type/imx8mp-tqma8mpql-mba8mpxl +.pengutronix-imx8mp-mba8mpxl:arm64: + variables: + DEVICE_TYPE: imx8mp-tqma8mpql-mba8mpxl + DTB: $DEVICE_TYPE + FARM: pengutronix + GPU_VERSION: "etnaviv-gc7000-r6204" + BOOT_METHOD: barebox + RUNNER_TAG: mesa-ci-x86-64-lava-imx8mp-tqma8mpql-mba8mpxl + VISIBILITY_GROUP: "mesa-ci" + diff --git a/src/etnaviv/ci/gitlab-ci.yml b/src/etnaviv/ci/gitlab-ci.yml index 48afd927b9e..40985ff2b1e 100644 --- a/src/etnaviv/ci/gitlab-ci.yml +++ b/src/etnaviv/ci/gitlab-ci.yml @@ -1,119 +1,5 @@ -.etnaviv-rules: - stage: etnaviv - rules: - - !reference [.test, rules] - - !reference [.austriancoder-farm-rules, rules] - - !reference [.gl-rules, rules] - - changes: &etnaviv_file_list - - src/etnaviv/* - - src/etnaviv/ci/gitlab-ci.yml - - src/etnaviv/ci/deqp-$DEQP_SUITE.toml - - src/etnaviv/ci/$GPU_VERSION-fails.txt - - src/etnaviv/ci/$GPU_VERSION-flakes.txt - - src/etnaviv/ci/$GPU_VERSION-skips.txt - - src/etnaviv/drm/**/* - - src/etnaviv/drm-shim/**/* - - src/etnaviv/isa/**/* - - src/gallium/drivers/etnaviv/**/* - - src/gallium/winsys/etnaviv/**/* - - src/gallium/auxiliary/renderonly/**/* - - src/gallium/winsys/kmsro/**/* - when: on_success - -.etnaviv-manual-rules: - stage: etnaviv-nightly - extends: .no-auto-retry - rules: - - !reference [.test, rules] - - !reference [.austriancoder-farm-manual-rules, rules] - - !reference [.gl-manual-rules, rules] - - changes: - *etnaviv_file_list - when: manual - -.austriancoder-ci-tron: - extends: - - .ci-tron-b2c-diskless-v1 - variables: - RUNNER_FARM_LOCATION: austriancoder - CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__MINUTES: 0.5 - CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__RETRIES: 3 - CI_TRON_DUT_SETUP_TAGS: "$VIVANTE_MODEL_TAG,$VIVANTE_REVISION_TAG" - -.austriancoder-imx6q-cubox-i:arm32: - extends: - - .austriancoder-ci-tron - variables: - CI_TRON__B2C_DISKLESS_IMAGESTORE_PLATFORM: linux/arm/v7 - VIVANTE_MODEL_TAG: "vivante:model:2000" - VIVANTE_REVISION_TAG: "vivante:revision:5108" - GPU_VERSION: "etnaviv-gc2000-r5108" - -# 1 device (2025-01-30) -.austriancoder-imx6q-cubox-i-2cores:arm32: - extends: - - .austriancoder-imx6q-cubox-i:arm32 - variables: - FDO_CI_CONCURRENT: 2 - tags: - - farm:$RUNNER_FARM_LOCATION - - cpu:cores:2 - - $VIVANTE_MODEL_TAG - - $VIVANTE_REVISION_TAG - -# 4 devices (2025-01-30) -.austriancoder-imx6q-cubox-i-4cores:arm32: - extends: - - .austriancoder-imx6q-cubox-i:arm32 - variables: - FDO_CI_CONCURRENT: 4 - tags: - - farm:$RUNNER_FARM_LOCATION - - cpu:cores:4 - - $VIVANTE_MODEL_TAG - - $VIVANTE_REVISION_TAG - -# 2 devices (2025-02-28) -.austriancoder-imx6qp-nitrogen6_max:arm32: - extends: - - .austriancoder-ci-tron - variables: - FDO_CI_CONCURRENT: 4 - CI_TRON__B2C_DISKLESS_IMAGESTORE_PLATFORM: linux/arm/v7 - VIVANTE_MODEL_TAG: "vivante:model:3000" - VIVANTE_REVISION_TAG: "vivante:revision:5450" - GPU_VERSION: "etnaviv-gc3000-r5450" - tags: - - farm:$RUNNER_FARM_LOCATION - - $VIVANTE_MODEL_TAG - - $VIVANTE_REVISION_TAG - -# 1 devices (2025-02-26) -.austriancoder-imx8mq-nitrogen:arm64: - extends: - - .austriancoder-ci-tron - variables: - FDO_CI_CONCURRENT: 4 - CI_TRON__B2C_DISKLESS_IMAGESTORE_PLATFORM: linux/arm64/v8 - VIVANTE_MODEL_TAG: "vivante:model:7000" - VIVANTE_REVISION_TAG: "vivante:revision:6214" - GPU_VERSION: "etnaviv-gc7000-r6214" - tags: - - farm:$RUNNER_FARM_LOCATION - - $VIVANTE_MODEL_TAG - - $VIVANTE_REVISION_TAG - -# 1 devices (2025-02-26) -# Status: https://lava.pengutronix.de/scheduler/device_type/imx8mp-tqma8mpql-mba8mpxl -.pengutronix-imx8mp-mba8mpxl:arm64: - variables: - DEVICE_TYPE: imx8mp-tqma8mpql-mba8mpxl - DTB: $DEVICE_TYPE - FARM: pengutronix - GPU_VERSION: "etnaviv-gc7000-r6204" - BOOT_METHOD: barebox - RUNNER_TAG: mesa-ci-x86-64-lava-imx8mp-tqma8mpql-mba8mpxl - VISIBILITY_GROUP: "mesa-ci" +include: + - local: 'src/etnaviv/ci/gitlab-ci-inc.yml' gc2000-gles2: extends: diff --git a/src/gallium/drivers/d3d12/ci/gitlab-ci-inc.yml b/src/gallium/drivers/d3d12/ci/gitlab-ci-inc.yml new file mode 100644 index 00000000000..8e00fad9c2a --- /dev/null +++ b/src/gallium/drivers/d3d12/ci/gitlab-ci-inc.yml @@ -0,0 +1,43 @@ +.d3d12-test: + extends: + - .use-windows_test_msvc + - .glon12-test-rules + stage: layered-backends + dependencies: + - windows-msvc + needs: + - job: windows-msvc + - job: windows_test_msvc + optional: true + - !reference [.required-for-hardware-jobs, needs] + variables: + GIT_STRATEGY: none # testing doesn't build anything from source + GALLIUM_DRIVER: d3d12 + WGL_DISABLE_ERROR_DIALOGS: "true" + D3D12_AGILITY_RELATIVE_PATH: "D3D12\\" + D3D12_AGILITY_SDK_VERSION: 614 + +.d3d12-test-piglit: + extends: + - .d3d12-test + - .test-piglit + script: + - . _install/piglit_run.ps1 + # temporarily restrict to GSt runners until we discover why GL testing is + # so slow on the Microsoft runners + tags: + - windows + - docker + - "2022" + - mesa + - gstreamer-windows + timeout: 12m + artifacts: + when: on_failure + name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" + paths: + - logs/ + variables: + PIGLIT_SKIPS: d3d12-skips.txt + PIGLIT_FLAKES: d3d12-flakes.txt + diff --git a/src/gallium/drivers/d3d12/ci/gitlab-ci.yml b/src/gallium/drivers/d3d12/ci/gitlab-ci.yml index c2bd7a810ea..08145331779 100644 --- a/src/gallium/drivers/d3d12/ci/gitlab-ci.yml +++ b/src/gallium/drivers/d3d12/ci/gitlab-ci.yml @@ -1,45 +1,5 @@ -.d3d12-test: - extends: - - .use-windows_test_msvc - - .glon12-test-rules - stage: layered-backends - dependencies: - - windows-msvc - needs: - - job: windows-msvc - - job: windows_test_msvc - optional: true - - !reference [.required-for-hardware-jobs, needs] - variables: - GIT_STRATEGY: none # testing doesn't build anything from source - GALLIUM_DRIVER: d3d12 - WGL_DISABLE_ERROR_DIALOGS: "true" - D3D12_AGILITY_RELATIVE_PATH: "D3D12\\" - D3D12_AGILITY_SDK_VERSION: 614 - -.d3d12-test-piglit: - extends: - - .d3d12-test - - .test-piglit - script: - - . _install/piglit_run.ps1 - # temporarily restrict to GSt runners until we discover why GL testing is - # so slow on the Microsoft runners - tags: - - windows - - docker - - "2022" - - mesa - - gstreamer-windows - timeout: 12m - artifacts: - when: on_failure - name: "${CI_PROJECT_NAME}_${CI_JOB_NAME_SLUG}" - paths: - - logs/ - variables: - PIGLIT_SKIPS: d3d12-skips.txt - PIGLIT_FLAKES: d3d12-flakes.txt +include: + - local: 'src/gallium/drivers/d3d12/ci/gitlab-ci-inc.yml' test-d3d12-quick_gl: extends: diff --git a/src/gallium/drivers/i915/ci/gitlab-ci-inc.yml b/src/gallium/drivers/i915/ci/gitlab-ci-inc.yml new file mode 100644 index 00000000000..e5178abdff2 --- /dev/null +++ b/src/gallium/drivers/i915/ci/gitlab-ci-inc.yml @@ -0,0 +1,12 @@ +# Manual test rules for using g33 in ondracka r300 farm. +.ondracka-g33-test: + extends: + - .ci-tron-x86_64-test-gl-manual # use debian-build-x86_64 rather than debian-x86_64 + - .i915g-manual-rules + variables: + FDO_CI_CONCURRENT: 2 + GPU_VERSION: i915-g33 + RUNNER_FARM_LOCATION: ondracka + CI_TRON_KERNEL__URL: https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/v0.9.12.3/downloads/linux-x86_64 + CI_TRON_DUT_SETUP_TAGS: intelgpu:codename:G33 + diff --git a/src/gallium/drivers/i915/ci/gitlab-ci.yml b/src/gallium/drivers/i915/ci/gitlab-ci.yml index b2ca3073fd7..feba13b4706 100644 --- a/src/gallium/drivers/i915/ci/gitlab-ci.yml +++ b/src/gallium/drivers/i915/ci/gitlab-ci.yml @@ -1,17 +1,7 @@ include: - local: 'src/intel/ci/gitlab-ci-inc.yml' + - local: 'src/gallium/drivers/i915/ci/gitlab-ci-inc.yml' -# Manual test rules for using g33 in ondracka r300 farm. -.ondracka-g33-test: - extends: - - .ci-tron-x86_64-test-gl-manual # use debian-build-x86_64 rather than debian-x86_64 - - .i915g-manual-rules - variables: - FDO_CI_CONCURRENT: 2 - GPU_VERSION: i915-g33 - RUNNER_FARM_LOCATION: ondracka - CI_TRON_KERNEL__URL: https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/v0.9.12.3/downloads/linux-x86_64 - CI_TRON_DUT_SETUP_TAGS: intelgpu:codename:G33 i915-g33: extends: diff --git a/src/gallium/drivers/lima/ci/gitlab-ci-inc.yml b/src/gallium/drivers/lima/ci/gitlab-ci-inc.yml new file mode 100644 index 00000000000..bbf9a915f15 --- /dev/null +++ b/src/gallium/drivers/lima/ci/gitlab-ci-inc.yml @@ -0,0 +1,22 @@ +.lima-rules: + stage: arm + rules: + - !reference [.test, rules] + - !reference [.lima-farm-rules, rules] + - !reference [.gl-rules, rules] + - changes: + - src/gallium/drivers/lima/**/* + - src/gallium/winsys/lima/**/* + - src/lima/**/* + when: on_success + +# 4 devices (2023-12-16) +.lava-meson-gxl-s805x-libretech-ac:arm64: + variables: + DEVICE_TYPE: meson-gxl-s805x-libretech-ac + DTB: meson-gxl-s805x-libretech-ac + FDO_CI_CONCURRENT: 4 + GPU_VERSION: lima + FARM: lima + RUNNER_TAG: mesa-ci-x86-64-lava-lima + diff --git a/src/gallium/drivers/lima/ci/gitlab-ci.yml b/src/gallium/drivers/lima/ci/gitlab-ci.yml index c79f7a1916d..0612206a49e 100644 --- a/src/gallium/drivers/lima/ci/gitlab-ci.yml +++ b/src/gallium/drivers/lima/ci/gitlab-ci.yml @@ -1,24 +1,5 @@ -.lima-rules: - stage: arm - rules: - - !reference [.test, rules] - - !reference [.lima-farm-rules, rules] - - !reference [.gl-rules, rules] - - changes: - - src/gallium/drivers/lima/**/* - - src/gallium/winsys/lima/**/* - - src/lima/**/* - when: on_success - -# 4 devices (2023-12-16) -.lava-meson-gxl-s805x-libretech-ac:arm64: - variables: - DEVICE_TYPE: meson-gxl-s805x-libretech-ac - DTB: meson-gxl-s805x-libretech-ac - FDO_CI_CONCURRENT: 4 - GPU_VERSION: lima - FARM: lima - RUNNER_TAG: mesa-ci-x86-64-lava-lima +include: + - local: 'src/gallium/drivers/lima/ci/gitlab-ci-inc.yml' lima-mali450-deqp:arm64: extends: diff --git a/src/gallium/frontends/rusticl/ci/gitlab-ci-inc.yml b/src/gallium/frontends/rusticl/ci/gitlab-ci-inc.yml new file mode 100644 index 00000000000..46798340d09 --- /dev/null +++ b/src/gallium/frontends/rusticl/ci/gitlab-ci-inc.yml @@ -0,0 +1,15 @@ +.rusticl-rules: + rules: + - !reference [.test, rules] + - changes: &rusticl_file_list + - src/gallium/frontends/rusticl/**/* + when: on_success + +.rusticl-manual-rules: + extends: .no-auto-retry + rules: + - !reference [.test, rules] + - !reference [.no_scheduled_pipelines-rules, rules] + - changes: *rusticl_file_list + when: manual + diff --git a/src/gallium/frontends/rusticl/ci/gitlab-ci.yml b/src/gallium/frontends/rusticl/ci/gitlab-ci.yml index 194c3c6c242..f28bee68eab 100644 --- a/src/gallium/frontends/rusticl/ci/gitlab-ci.yml +++ b/src/gallium/frontends/rusticl/ci/gitlab-ci.yml @@ -1,14 +1,3 @@ -.rusticl-rules: - rules: - - !reference [.test, rules] - - changes: &rusticl_file_list - - src/gallium/frontends/rusticl/**/* - when: on_success +include: + - local: 'src/gallium/frontends/rusticl/ci/gitlab-ci-inc.yml' -.rusticl-manual-rules: - extends: .no-auto-retry - rules: - - !reference [.test, rules] - - !reference [.no_scheduled_pipelines-rules, rules] - - changes: *rusticl_file_list - when: manual