ci: separate hidden jobs to -inc yml files

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 <sergi.blanch.torne@collabora.com>
Acked-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Valentine Burley <valentine.burley@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35427>
This commit is contained in:
Sergi Blanch-Torne
2025-06-09 11:47:25 +02:00
committed by Marge Bot
parent ff6925c34b
commit 6ba1b61395
16 changed files with 850 additions and 826 deletions

View File

@@ -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

View File

@@ -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:

View File

@@ -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]

View File

@@ -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]

18
docs/gitlab-ci-inc.yml Normal file
View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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:

View File

@@ -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

View File

@@ -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