From 37ace710fa71b8ad8ff2ada60146d304492bc353 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Roukala=20=28n=C3=A9=20Peres=29?= Date: Sat, 15 Mar 2025 14:49:11 +0200 Subject: [PATCH] ci/ci-tron: switch to the upstream ci-tron template Up until now, every project using CI-Tron had to write their own job submission flow because CI-Tron itself was not providing any official way of interacting with it via GitLab. This however changed, and the solution is vastly superior to what we have been using in Mesa: * Ability to pass all the environment variables of the job to the DUT, so no need to remember to add variables in `export-gitlab-job-env-for-dut.sh` anymore * No dependency on Mesa code, which means no need to wait on python-artifacts and the ability to replicate a run by just copying the job description outputted by the job \o/ * Ability to have as many initrd, HTTP, and TFTP artifacts as wanted * Ability to expose a variable through a TFTP/HTTP endpoint or as an initrd * Ability to overwrite the platform environment (machine-specific FW) * Ability to have as many kernel cmdline variables, all merged when generating the final cmdline. This makes it easy to share some snippets of cmdline between jobs Transitioning from the custom to the generic template is however pretty involved. This commit does the minimum changes needed to switch to the new model, often simply replacing the B2C_ prefix with CI_TRON_. Further renaming of "b2c" prefixes into "ci-tron" is left for future commits. Co-authored-by: Eric Engestrom Part-of: --- .gitlab-ci.yml | 8 + .gitlab-ci/b2c/b2c.yml.jinja2.jinja2 | 155 ------------------ .gitlab-ci/b2c/generate_b2c.py | 40 ----- .../common/export-gitlab-job-env-for-dut.sh | 5 - .gitlab-ci/prepare-artifacts-python.sh | 1 - .gitlab-ci/test/gitlab-ci.yml | 140 +++++----------- src/amd/ci/gitlab-ci-inc.yml | 55 ++++--- src/amd/ci/gitlab-ci.yml | 51 +++--- src/etnaviv/ci/gitlab-ci.yml | 24 +-- src/freedreno/ci/gitlab-ci-inc.yml | 24 +-- src/freedreno/ci/gitlab-ci.yml | 16 +- src/gallium/drivers/i915/ci/gitlab-ci.yml | 4 +- src/gallium/drivers/r300/ci/gitlab-ci.yml | 8 +- src/gallium/drivers/zink/ci/gitlab-ci-inc.yml | 4 +- src/gallium/drivers/zink/ci/gitlab-ci.yml | 24 +-- src/nouveau/ci/gitlab-ci-inc.yml | 8 +- src/nouveau/ci/gitlab-ci.yml | 8 +- 17 files changed, 160 insertions(+), 415 deletions(-) delete mode 100644 .gitlab-ci/b2c/b2c.yml.jinja2.jinja2 delete mode 100755 .gitlab-ci/b2c/generate_b2c.py diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 558144d765d..00a99fb10f0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -126,6 +126,11 @@ variables: JOB_PRIORITY: 50 DATA_STORAGE_PATH: data_storage + CI_TRON_JOB_TEMPLATE_PROJECT: &ci-tron-template-project gfx-ci/ci-tron + CI_TRON_JOB_TEMPLATE_COMMIT: &ci-tron-template-commit e4ab9c5ecc941c7893d991cf723cde877b5dca8d + CI_TRON_JOB_TEMPLATE_PROJECT_URL: "https://gitlab.freedesktop.org/$CI_TRON_JOB_TEMPLATE_PROJECT" + + default: timeout: 1m # catch any jobs which don't specify a timeout id_tokens: @@ -197,6 +202,9 @@ include: - '/templates/debian.yml' - '/templates/fedora.yml' - '/templates/ci-fairy.yml' + - project: *ci-tron-template-project + ref: *ci-tron-template-commit + file: '/.gitlab-ci/dut.yml' - local: '.gitlab-ci/image-tags.yml' - local: '.gitlab-ci/lava/lava-gitlab-ci.yml' - local: '.gitlab-ci/container/gitlab-ci.yml' diff --git a/.gitlab-ci/b2c/b2c.yml.jinja2.jinja2 b/.gitlab-ci/b2c/b2c.yml.jinja2.jinja2 deleted file mode 100644 index f8a6e6cb721..00000000000 --- a/.gitlab-ci/b2c/b2c.yml.jinja2.jinja2 +++ /dev/null @@ -1,155 +0,0 @@ -version: 1 - -# Rules to match for a machine to qualify -target: - id: '{{ CI_RUNNER_DESCRIPTION }}' - -timeouts: - - first_console_activity: # This limits the time it can take to receive the first console log - minutes: {{ B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_MINUTES | default(0, true) }} - seconds: {{ B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_SECONDS | default(0, true) }} - retries: {{ B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_RETRIES }} - - console_activity: # Reset every time we receive a message from the logs - minutes: {{ B2C_TIMEOUT_CONSOLE_ACTIVITY_MINUTES | default(0, true) }} - seconds: {{ B2C_TIMEOUT_CONSOLE_ACTIVITY_SECONDS | default(0, true) }} - retries: {{ B2C_TIMEOUT_CONSOLE_ACTIVITY_RETRIES }} - - boot_cycle: - minutes: {{ B2C_TIMEOUT_BOOT_MINUTES | default(0, true) }} - seconds: {{ B2C_TIMEOUT_BOOT_SECONDS | default(0, true) }} - retries: {{ B2C_TIMEOUT_BOOT_RETRIES }} - - overall: # Maximum time the job can take, not overrideable by the "continue" deployment - minutes: {{ B2C_TIMEOUT_OVERALL_MINUTES | default(0, true) }} - seconds: {{ B2C_TIMEOUT_OVERALL_SECONDS | default(0, true) }} - retries: 0 - # no retries possible here - - watchdogs: - boot: - minutes: {{ B2C_TIMEOUT_BOOT_WD_MINUTES | default(0, true) }} - seconds: {{ B2C_TIMEOUT_BOOT_WD_SECONDS | default(0, true) }} - retries: {{ B2C_TIMEOUT_BOOT_WD_RETRIES | default(0, true) }} - -console_patterns: - session_end: - regex: >- - {{ B2C_SESSION_END_REGEX }} -{% if B2C_SESSION_REBOOT_REGEX %} - session_reboot: - regex: >- - {{ B2C_SESSION_REBOOT_REGEX }} -{% endif %} - job_success: - regex: >- - {{ B2C_JOB_SUCCESS_REGEX }} -{% if B2C_JOB_WARN_REGEX %} - job_warn: - regex: >- - {{ B2C_JOB_WARN_REGEX }} -{% endif %} - -{% if B2C_BOOT_WD_START_REGEX and B2C_BOOT_WD_STOP_REGEX %} - watchdogs: - boot: - start: - regex: >- - {{ B2C_BOOT_WD_START_REGEX }} - reset: - regex: >- - {{ B2C_BOOT_WD_RESET_REGEX | default(B2C_BOOT_WD_START_REGEX, true) }} - stop: - regex: >- - {{ B2C_BOOT_WD_STOP_REGEX }} -{% endif %} - -# Environment to deploy -deployment: - # Initial boot - start: - storage: -{% if B2C_IMAGESTORE_PLATFORM %} - imagestore: - public: - # List of images that should be pulled into the image store ahead of execution - images: - mars: - name: "{{ B2C_MACHINE_REGISTRATION_IMAGE }}" - platform: "{{ B2C_IMAGESTORE_PLATFORM }}" - tls_verify: false - {% set machine_registration_image="{% raw %}{{ job.imagestore.public.mars.image_id }}{% endraw %}" %} - telegraf: - name: "{{ B2C_TELEGRAF_IMAGE }}" - platform: "{{ B2C_IMAGESTORE_PLATFORM }}" - tls_verify: false - {% set telegraf_image="{% raw %}{{ job.imagestore.public.telegraf.image_id }}{% endraw %}" %} - image_under_test: - name: "{{ B2C_IMAGE_UNDER_TEST }}" - platform: "{{ B2C_IMAGESTORE_PLATFORM }}" - tls_verify: false - {% set image_under_test="{% raw %}{{ job.imagestore.public.image_under_test.image_id }}{% endraw %}" %} - nbd: - storage: - max_connections: 5 - size: 10G -{% endif %} - - http: - - path: "/install.tar.zst" - url: "{{ B2C_INSTALL_TARBALL_URL }}" - - path: "/b2c-extra-args" - data: > - b2c.pipefail b2c.poweroff_delay={{ B2C_POWEROFF_DELAY }} - b2c.minio="gateway,{{ '{{' }} minio_url }},{{ '{{' }} job_bucket_access_key }},{{ '{{' }} job_bucket_secret_key }}" - b2c.volume="{{ '{{' }} job_bucket }}-results,mirror=gateway/{{ '{{' }} job_bucket }},pull_on=pipeline_start,push_on=changes,overwrite{% for excl in B2C_JOB_VOLUME_EXCLUSIONS.split(',') %},exclude={{ excl }}{% endfor %},remove,expiration=pipeline_end,preserve" - {% for volume in B2C_VOLUMES %} - b2c.volume={{ volume }} - {% endfor %} - b2c.run_service="--privileged --tls-verify=false --pid=host {{ B2C_TELEGRAF_IMAGE }}" b2c.hostname=dut-{{ '{{' }} machine.full_name }} - b2c.run="-ti --tls-verify=false {{ B2C_MACHINE_REGISTRATION_IMAGE }} {% if B2C_MARS_SETUP_TAGS %}setup --tags {{ B2C_MARS_SETUP_TAGS }}{% else %}check{% endif %}" - b2c.run="-v {{ '{{' }} job_bucket }}-results:{{ CI_PROJECT_DIR }} -w {{ CI_PROJECT_DIR }} {% for mount_volume in B2C_MOUNT_VOLUMES %} -v {{ mount_volume }}{% endfor %} --tls-verify=false --entrypoint bash {{ B2C_IMAGE_UNDER_TEST }} -euc 'curl --fail -q {{ '{{' }} job.http.url }}/install.tar.zst | tar --zstd -x; {{ B2C_CONTAINER_CMD }}'" - kernel: -{% if B2C_KERNEL_URL %} - url: '{{ B2C_KERNEL_URL }}' -{% endif %} - - # NOTE: b2c.cache_device should not be here, but this works around - # a limitation of b2c which will be removed in the next release - cmdline: > - SALAD.machine_id={{ '{{' }} machine_id }} - console={{ '{{' }} local_tty_device }},115200 - b2c.ntp_peer=10.42.0.1 - b2c.extra_args_url={{ '{{' }} job.http.url }}/b2c-extra-args - {% if B2C_IMAGESTORE_PLATFORM is defined %} - {{ '{{' }} imagestore.mount("public").nfs.to_b2c_filesystem("publicimgstore") }} - b2c.storage="additionalimagestores=publicimgstore" - b2c.nbd=/dev/nbd0,host=ci-gateway,port={% raw %}{{ '{{' }} job.nbd.storage.tcp_port }}{% endraw %},connections=5 - b2c.cache_device=/dev/nbd0 - {% else %} - b2c.cache_device=auto - {% endif %} - {% if B2C_KERNEL_CMDLINE_EXTRAS is defined %} - {{ B2C_KERNEL_CMDLINE_EXTRAS }} - {% endif %} - -{% if B2C_INITRAMFS_URL or B2C_FIRMWARE_URL %} - initramfs: -{% if B2C_FIRMWARE_URL %} - - url: '{{ B2C_FIRMWARE_URL }}' -{% endif %} -{% if B2C_INITRAMFS_URL %} - - url: '{{ B2C_INITRAMFS_URL }}' -{% endif %} -{% endif %} - -{% if B2C_DTB_URL %} - dtb: - url: '{{ B2C_DTB_URL }}' -{% if B2C_DTB_MATCH %} - format: - archive: - match: "{{ B2C_DTB_MATCH }}" -{% endif %} -{% endif %} diff --git a/.gitlab-ci/b2c/generate_b2c.py b/.gitlab-ci/b2c/generate_b2c.py deleted file mode 100755 index 001720ad266..00000000000 --- a/.gitlab-ci/b2c/generate_b2c.py +++ /dev/null @@ -1,40 +0,0 @@ -#!/usr/bin/env python3 - -# Copyright © 2022 Valve Corporation -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice (including the next -# paragraph) shall be included in all copies or substantial portions of the -# Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -# IN THE SOFTWARE. - -from jinja2 import Environment, FileSystemLoader -from os import environ, path - - -# Pass through all the CI and B2C environment variables -values = { - key: environ[key] - for key in environ if key.startswith("B2C_") or key.startswith("CI_") -} - -env = Environment(loader=FileSystemLoader(path.dirname(environ['B2C_JOB_TEMPLATE'])), - trim_blocks=True, lstrip_blocks=True) - -template = env.get_template(path.basename(environ['B2C_JOB_TEMPLATE'])) - -with open(path.splitext(path.basename(environ['B2C_JOB_TEMPLATE']))[0], "w") as f: - f.write(template.render(values)) diff --git a/.gitlab-ci/common/export-gitlab-job-env-for-dut.sh b/.gitlab-ci/common/export-gitlab-job-env-for-dut.sh index 82fe8096075..735588fedb0 100755 --- a/.gitlab-ci/common/export-gitlab-job-env-for-dut.sh +++ b/.gitlab-ci/common/export-gitlab-job-env-for-dut.sh @@ -1,7 +1,6 @@ #!/bin/bash VARS=( - ACO_DEBUG ANGLE_TAG ANGLE_TRACE_FILES_TAG ANV_DEBUG @@ -114,9 +113,6 @@ VARS=( PIGLIT_TRACES_FILE PIPELINE_ARTIFACTS_BASE RADEON_DEBUG - RADV_DEBUG - radv_enable_float16_gfx8 - RADV_PERFTEST S3_HOST S3_JWT_FILE S3_RESULTS_UPLOAD @@ -126,7 +122,6 @@ VARS=( VIRGL_HOST_API VIRGL_RENDER_SERVER VK_DRIVER - vk_require_etc2 WAFFLE_PLATFORM ZINK_DEBUG ZINK_DESCRIPTORS diff --git a/.gitlab-ci/prepare-artifacts-python.sh b/.gitlab-ci/prepare-artifacts-python.sh index 8b0e6d6a718..58b6add96ba 100755 --- a/.gitlab-ci/prepare-artifacts-python.sh +++ b/.gitlab-ci/prepare-artifacts-python.sh @@ -15,7 +15,6 @@ mkdir -p artifacts/ cp -Rp .gitlab-ci/report-flakes.py artifacts/ cp -Rp .gitlab-ci/setup-test-env.sh artifacts/ cp -Rp .gitlab-ci/common artifacts/ci-common -cp -Rp .gitlab-ci/b2c artifacts/ cp -Rp .gitlab-ci/bare-metal artifacts/ cp -Rp .gitlab-ci/lava artifacts/ cp -Rp .gitlab-ci/bin/*_logger.py artifacts/ diff --git a/.gitlab-ci/test/gitlab-ci.yml b/.gitlab-ci/test/gitlab-ci.yml index 46fc19989a5..481be545993 100644 --- a/.gitlab-ci/test/gitlab-ci.yml +++ b/.gitlab-ci/test/gitlab-ci.yml @@ -379,123 +379,53 @@ yaml-toml-shell-py-test: HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" FDO_CI_CONCURRENT: 0 # Default to number of CPUs -# For Valve's bare-metal testing farm jobs. +# For CI-tron based testing farm jobs. .b2c-test: - # It would be nice to use ci-templates within Mesa CI for this job's - # image:, but the integration is not possible for the current - # use-case. Within this job, two containers are managed. 1) the - # gitlab runner container from which the job is submitted to the - # DUT, and 2) the test container (e.g. debian/x86_64_test-vk) within - # which the test cases will run on the DUT. Since ci-templates and - # the associated image setting macros in this file rely on variables - # like FDO_DISTRIBUTION_TAG for *the* image, there is no way to - # depend on more than one image per job. So, the job container is - # built as part of the CI in the boot2container project. - image: registry.freedesktop.org/gfx-ci/ci-tron/mesa-trigger:2024-01-05.1 + extends: + - .ci-tron-b2c-job-v1 timeout: 1h 40m variables: - # No need to pull the whole git repo, the artifacts from python-artifacts - # contain everything we need. GIT_STRATEGY: none # boot2container initrd configuration parameters. B2C_VERSION: v0.9.14 - B2C_JOB_SUCCESS_REGEX: 'hwci: mesa: pass, exit_code: 0\r$' - B2C_LOG_LEVEL: 6 - B2C_POWEROFF_DELAY: 15 - B2C_SESSION_END_REGEX: '^.*It''s now safe to turn off your computer\r$' - B2C_SESSION_REBOOT_REGEX: '' - B2C_TIMEOUT_BOOT_MINUTES: 45 - B2C_TIMEOUT_BOOT_RETRIES: 0 - B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_MINUTES: 2 - B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_RETRIES: 3 - B2C_TIMEOUT_CONSOLE_ACTIVITY_MINUTES: 5 - B2C_TIMEOUT_OVERALL_MINUTES: 90 - B2C_TIMEOUT_CONSOLE_ACTIVITY_RETRIES: 0 - B2C_JOB_VOLUME_EXCLUSIONS: "*.shader_cache,install/*,*/install/*,*/vkd3d-proton.cache*,vkd3d-proton.cache*,*.qpa" - B2C_MACHINE_REGISTRATION_IMAGE: "registry.freedesktop.org/gfx-ci/ci-tron/machine-registration:latest" - B2C_TELEGRAF_IMAGE: "registry.freedesktop.org/gfx-ci/ci-tron/telegraf:latest" - B2C_KERNEL_CMDLINE_EXTRAS: "" - # As noted in the top description, we make a distinction between the - # container used by gitlab-runner to queue the work, and the container - # used by the DUTs/test machines. To make this distinction quite clear, - # we rename the variable. - B2C_IMAGE_UNDER_TEST: "$MESA_IMAGE" + SCRIPTS_DIR: install - B2C_INSTALL_TARBALL_URL: "https://${PIPELINE_ARTIFACTS_BASE}/${S3_ARTIFACT_NAME}.tar.zst" - B2C_CONTAINER_CMD: "./install/common/init-stage2.sh" + CI_TRON_PATTERN__JOB_SUCCESS__REGEX: 'hwci: mesa: pass, exit_code: 0\r$' + CI_TRON_PATTERN__SESSION_END__REGEX: '^.*It''s now safe to turn off your computer\r$' - CI_B2C_ARTIFACTS: "./artifacts/b2c" - CI_COMMON_SCRIPTS: "./artifacts/ci-common" - B2C_JOB_TEMPLATE: "${CI_B2C_ARTIFACTS}/b2c.yml.jinja2.jinja2" - JOB_FOLDER: "job_folder" + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 45 + 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_TIMEOUT__OVERALL__MINUTES: 90 + + 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 - needs: - - job: python-artifacts - artifacts: true - !reference [.required-for-hardware-jobs, needs] tags: - farm:$RUNNER_FARM_LOCATION - - $B2C_MARS_SETUP_TAGS + - $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: - # We don't want the tarball unpacking of .test, but will take the JWT bits. - - !reference [default, before_script] - - | - set -eux + set -eu - section_start b2c_kernel_boot "Booting hardware device" + eval "$S3_JWT_FILE_SCRIPT" - [ -d "$CI_B2C_ARTIFACTS" ] || exit 1 - [ -d "$CI_COMMON_SCRIPTS" ] || exit 1 - - # Pull all our images through our proxy registry - B2C_IMAGE_UNDER_TEST=${B2C_IMAGE_UNDER_TEST//registry.freedesktop.org/{{ fdo_proxy_registry \}\}} - B2C_MACHINE_REGISTRATION_IMAGE=${B2C_MACHINE_REGISTRATION_IMAGE//registry.freedesktop.org/{{ fdo_proxy_registry \}\}} - B2C_TELEGRAF_IMAGE=${B2C_TELEGRAF_IMAGE//registry.freedesktop.org/{{ fdo_proxy_registry \}\}} - - # The Valve CI gateway receives jobs in a YAML format. Create a - # job description from the CI environment. - python3 "$CI_B2C_ARTIFACTS"/generate_b2c.py - - cat b2c.yml.jinja2 - - rm -rf ${JOB_FOLDER} || true - mkdir -v ${JOB_FOLDER} - - # Create a script to regenerate the CI environment when this job - # begins running on the remote DUT. - set +x - "$CI_COMMON_SCRIPTS"/export-gitlab-job-env-for-dut.sh > ${JOB_FOLDER}/set-job-env-vars.sh - echo "export SCRIPTS_DIR=./install" >> ${JOB_FOLDER}/set-job-env-vars.sh - echo "Variables passed through:" - cat ${JOB_FOLDER}/set-job-env-vars.sh - set -x - - script: | - slugify () { - echo "$1" | sed -r s/[~\^]+//g | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z - } - - # Submit the job to Valve's CI gateway service with the CI - # provisioned job_folder. - PYTHONUNBUFFERED=1 \ - executorctl run \ - --machine-id "$CI_RUNNER_DESCRIPTION" \ - --job-id $(slugify "$CI_JOB_NAME") \ - --share-directory "$JOB_FOLDER" \ - --wait \ - b2c.yml.jinja2 - - after_script: - # Keep the results path the same as baremetal and LAVA - - mkdir -p "${JOB_FOLDER}"/results - - mv "${JOB_FOLDER}"/results ./ - - !reference [default, after_script] + # 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 @@ -513,8 +443,14 @@ yaml-toml-shell-py-test: extends: - .b2c-test variables: - B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/gfx-ci/ci-tron/-/package_files/519/download' # Linux 6.1 - B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/${B2C_VERSION}/downloads/initramfs.linux_amd64.cpio.xz' + 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/ci-tron/-/package_files/519/download' # Linux 6.1 + + # 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" .b2c-x86_64-test-vk: @@ -569,8 +505,8 @@ yaml-toml-shell-py-test: extends: - .b2c-test variables: - B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/${B2C_VERSION}/downloads/initramfs.linux_arm64.cpio.xz' - B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/${B2C_VERSION}/downloads/linux-arm64' + 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" .b2c-arm64-test-vk: @@ -599,8 +535,8 @@ yaml-toml-shell-py-test: extends: - .b2c-test variables: - B2C_INITRAMFS_URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/${B2C_VERSION}/downloads/initramfs.linux_arm.cpio.xz' - B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/${B2C_VERSION}/downloads/linux-arm' + 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" .b2c-arm32-test-vk: diff --git a/src/amd/ci/gitlab-ci-inc.yml b/src/amd/ci/gitlab-ci-inc.yml index f8766b719c8..e76f158f3c0 100644 --- a/src/amd/ci/gitlab-ci-inc.yml +++ b/src/amd/ci/gitlab-ci-inc.yml @@ -299,7 +299,7 @@ MESA_VK_IGNORE_CONFORMANCE_WARNING: 1 # Enable ETC2 emulation on non-native platforms (RENOIR,RDNA+, GFX6-8 dGPUs) vk_require_etc2: 'true' - B2C_JOB_WARN_REGEX: '\*ERROR\* ring .* timeout' + CI_TRON_PATTERN__JOB_WARN__REGEX: '\*ERROR\* ring .* timeout' .b2c-test-radv-vk: extends: @@ -307,36 +307,38 @@ - .radv-valve-rules - .test-radv variables: - B2C_KERNEL_URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci # 6.6 + CI_TRON_KERNEL__URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci # 6.6 + .tahiti-test-valve: variables: FDO_CI_CONCURRENT: 24 RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: amdgpu:codename:TAHITI - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:TAHITI + CI_TRON__B2C_SWAP_SIZE: '16g' .hawaii-test-valve: variables: FDO_CI_CONCURRENT: 24 RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: amdgpu:codename:HAWAII - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:HAWAII + CI_TRON__B2C_SWAP_SIZE: '16g' .kabini-test-valve: variables: RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: amdgpu:codename:KABINI - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=8g' + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:KABINI + CI_TRON__B2C_SWAP_SIZE: '8g' .polaris10-test-valve: variables: FDO_CI_CONCURRENT: 16 - B2C_TIMEOUT_BOOT_RETRIES: 4 - B2C_MARS_SETUP_TAGS: amdgpu:codename:POLARIS10 + CI_TRON_TIMEOUT__BOOT_CYCLE__RETRIES: 4 + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:POLARIS10 + CI_TRON__B2C_SWAP_SIZE: '16g' # (2022-01) tsc=unstable was added in response to this message in kmsg, # TSC found unstable after boot, most likely due to broken BIOS. Use 'tsc=unstable'. - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g tsc=unstable' + CI_TRON_KERNEL_CMDLINE__TSC_WORKAROUND: 'tsc=unstable' .polaris10-test-valve-mupuf: extends: .polaris10-test-valve @@ -351,16 +353,16 @@ .vega10-test-valve: variables: RUNNER_FARM_LOCATION: keywords - B2C_MARS_SETUP_TAGS: amdgpu:codename:VEGA10 + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:VEGA10 FDO_CI_CONCURRENT: 16 - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON__B2C_SWAP_SIZE: '16g' .renoir-test-valve: variables: RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: amdgpu:codename:RENOIR + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:RENOIR FDO_CI_CONCURRENT: 16 - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON__B2C_SWAP_SIZE: '16g' .navi10-test-valve: variables: @@ -368,8 +370,9 @@ # machine is using non-MSI IRQs and is generating a lot of # IRQs. This tends to confuse the interrupt controller and breaks # MSI IRQs leading to GPU hangs on amdgpu. - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g noapic' - B2C_MARS_SETUP_TAGS: amdgpu:codename:NAVI10 + CI_TRON_KERNEL_CMDLINE__APIC_WORKAROUND: 'noapic' + CI_TRON__B2C_SWAP_SIZE: '16g' + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:NAVI10 .navi10-test-valve-mupuf: extends: @@ -388,34 +391,34 @@ .navi21-test-valve: variables: RUNNER_FARM_LOCATION: keywords - B2C_MARS_SETUP_TAGS: amdgpu:codename:NAVI21 + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:NAVI21 FDO_CI_CONCURRENT: 32 - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON__B2C_SWAP_SIZE: '16g' .vangogh-test-valve: variables: RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: amdgpu:codename:VANGOGH + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:VANGOGH FDO_CI_CONCURRENT: 8 - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON__B2C_SWAP_SIZE: '16g' tags: - farm:$RUNNER_FARM_LOCATION - - $B2C_MARS_SETUP_TAGS + - $CI_TRON_DUT_SETUP_TAGS - $CI_TRON_JOB_PRIORITY_TAG .raphael-test-valve: variables: RUNNER_FARM_LOCATION: keywords - B2C_MARS_SETUP_TAGS: amdgpu:codename:RAPHAEL + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:RAPHAEL FDO_CI_CONCURRENT: 32 - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON__B2C_SWAP_SIZE: '16g' .navi31-test-valve: variables: RUNNER_FARM_LOCATION: keywords - B2C_MARS_SETUP_TAGS: amdgpu:codename:NAVI31 + CI_TRON_DUT_SETUP_TAGS: amdgpu:codename:NAVI31 FDO_CI_CONCURRENT: 32 - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' + CI_TRON__B2C_SWAP_SIZE: '16g' ############### Fluster tests ############### .radeonsi-vaapi-fluster-rules: diff --git a/src/amd/ci/gitlab-ci.yml b/src/amd/ci/gitlab-ci.yml index 58b0e7c5f95..2a392057c7e 100644 --- a/src/amd/ci/gitlab-ci.yml +++ b/src/amd/ci/gitlab-ci.yml @@ -168,9 +168,8 @@ radeonsi-raven-vaapi-fluster: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-kabini - B2C_TIMEOUT_BOOT_MINUTES: 710 - B2C_TIMEOUT_OVERALL_MINUTES: 710 - B2C_TIMEOUT_BOOT_RETRIES: 0 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 710 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 710 radv-tahiti-vkcts: extends: @@ -181,9 +180,8 @@ radv-tahiti-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-tahiti - B2C_TIMEOUT_BOOT_MINUTES: 50 - B2C_TIMEOUT_OVERALL_MINUTES: 50 - B2C_TIMEOUT_BOOT_RETRIES: 0 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 50 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 50 RADV_PERFTEST: video_decode,video_encode radv-hawaii-vkcts: @@ -195,9 +193,8 @@ radv-hawaii-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-hawaii - B2C_TIMEOUT_BOOT_MINUTES: 50 - B2C_TIMEOUT_OVERALL_MINUTES: 50 - B2C_TIMEOUT_BOOT_RETRIES: 0 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 50 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 50 RADV_PERFTEST: video_decode,video_encode radv-polaris10-vkcts: @@ -209,8 +206,8 @@ radv-polaris10-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-polaris10 - B2C_TIMEOUT_BOOT_MINUTES: 70 - B2C_TIMEOUT_OVERALL_MINUTES: 70 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 70 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 70 RADV_PERFTEST: video_decode,video_encode radv_enable_float16_gfx8: true @@ -223,8 +220,8 @@ radv-vega10-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-vega10 - B2C_TIMEOUT_BOOT_MINUTES: 70 - B2C_TIMEOUT_OVERALL_MINUTES: 70 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 70 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 70 RADV_PERFTEST: transfer_queue,video_decode,video_encode radv-renoir-vkcts: @@ -236,8 +233,8 @@ radv-renoir-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-renoir - B2C_TIMEOUT_BOOT_MINUTES: 130 - B2C_TIMEOUT_OVERALL_MINUTES: 130 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 130 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 130 RADV_PERFTEST: transfer_queue,video_decode,video_encode FDO_CI_CONCURRENT: 12 # HACK: Reduce the memory pressure @@ -262,8 +259,8 @@ radv-navi21-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-navi21 - B2C_TIMEOUT_BOOT_MINUTES: 30 - B2C_TIMEOUT_OVERALL_MINUTES: 30 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 30 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 30 RADV_PERFTEST: transfer_queue radv-vangogh-vkcts: @@ -277,8 +274,8 @@ radv-vangogh-vkcts: DEQP_SUITE: radv-valve GPU_VERSION: radv-vangogh RADV_PERFTEST: transfer_queue - B2C_TIMEOUT_BOOT_MINUTES: 85 - B2C_TIMEOUT_OVERALL_MINUTES: 89 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 85 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 89 radeonsi-vangogh-glcts-full: extends: @@ -290,8 +287,8 @@ radeonsi-vangogh-glcts-full: variables: GPU_VERSION: radeonsi-vangogh DEQP_SUITE: radeonsi-vangogh - B2C_TIMEOUT_BOOT_MINUTES: 85 - B2C_TIMEOUT_OVERALL_MINUTES: 89 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 85 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 89 radeonsi-vangogh-glcts: extends: @@ -300,8 +297,8 @@ radeonsi-vangogh-glcts: timeout: 30m variables: DEQP_FRACTION: 4 - B2C_TIMEOUT_BOOT_MINUTES: 28 - B2C_TIMEOUT_OVERALL_MINUTES: 29 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 28 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 29 radv-raphael-vkcts: extends: @@ -312,8 +309,8 @@ radv-raphael-vkcts: variables: DEQP_SUITE: radv-valve GPU_VERSION: radv-raphael - B2C_TIMEOUT_BOOT_MINUTES: 35 - B2C_TIMEOUT_OVERALL_MINUTES: 40 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 35 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 40 RADV_PERFTEST: transfer_queue,video_decode,video_encode radv-navi31-vkcts: @@ -328,8 +325,8 @@ radv-navi31-vkcts: GPU_VERSION: radv-navi31 RADV_DEBUG: nomeshshader # Disable mesh shaders until task shaders stop hanging RADV_PERFTEST: transfer_queue,video_decode,video_encode - B2C_TIMEOUT_BOOT_MINUTES: 20 - B2C_TIMEOUT_OVERALL_MINUTES: 20 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 20 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 20 ############### Fossilize radv-fossils: diff --git a/src/etnaviv/ci/gitlab-ci.yml b/src/etnaviv/ci/gitlab-ci.yml index 016abac6978..189ac4c2ace 100644 --- a/src/etnaviv/ci/gitlab-ci.yml +++ b/src/etnaviv/ci/gitlab-ci.yml @@ -32,17 +32,19 @@ when: manual .austriancoder-ci-tron: + extends: + - .ci-tron-b2c-diskless-v1 variables: RUNNER_FARM_LOCATION: austriancoder - B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_SECONDS: 30 - B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_RETRIES: 3 - B2C_MARS_SETUP_TAGS: "$VIVANTE_MODEL_TAG,$VIVANTE_REVISION_TAG" + 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: - B2C_IMAGESTORE_PLATFORM: linux/arm/v7 + 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" @@ -77,7 +79,7 @@ - .austriancoder-ci-tron variables: FDO_CI_CONCURRENT: 4 - B2C_IMAGESTORE_PLATFORM: linux/arm/v7 + 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" @@ -92,7 +94,7 @@ - .austriancoder-ci-tron variables: FDO_CI_CONCURRENT: 4 - B2C_IMAGESTORE_PLATFORM: linux/arm64/v8 + 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" @@ -123,7 +125,7 @@ gc2000-gles2: # Disable reporting, since DUTs don't have internet access FLAKES_CHANNEL: "" HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - B2C_TIMEOUT_OVERALL_MINUTES: 28 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 28 timeout: 30m # Disabled until the 168 fails get addressed @@ -138,7 +140,7 @@ gc2000-gles2: DEQP_FRACTION: 100 FDO_CI_CONCURRENT: 1 HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - B2C_TIMEOUT_OVERALL_MINUTES: 28 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 28 timeout: 30m gc2000-piglit: @@ -147,7 +149,7 @@ gc2000-piglit: - .test-piglit variables: DEQP_SUITE: etnaviv-gc2000-piglit - B2C_TIMEOUT_OVERALL_MINUTES: 25 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 25 parallel: 2 timeout: 30m @@ -160,7 +162,7 @@ gc3000-gles2: DEQP_SUITE: etnaviv-gc3000 FLAKES_CHANNEL: "" HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - B2C_TIMEOUT_OVERALL_MINUTES: 28 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 28 timeout: 30m gc7000-imx8mq-gles2: @@ -172,7 +174,7 @@ gc7000-imx8mq-gles2: DEQP_SUITE: etnaviv-gc7000 FLAKES_CHANNEL: "" HWCI_TEST_SCRIPT: "/install/deqp-runner.sh" - B2C_TIMEOUT_OVERALL_MINUTES: 28 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 28 timeout: 30m gc7000-imx8mp-gles2: diff --git a/src/freedreno/ci/gitlab-ci-inc.yml b/src/freedreno/ci/gitlab-ci-inc.yml index e3385ae9075..2694caf08b9 100644 --- a/src/freedreno/ci/gitlab-ci-inc.yml +++ b/src/freedreno/ci/gitlab-ci-inc.yml @@ -357,17 +357,17 @@ variables: FDO_CI_CONCURRENT: 8 RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: dt_gpu:codename:a750 - B2C_KERNEL_URL: 'https://fs.mupuf.org/hdk8650/2025-01-23-msm-gpu-fault-fixes-msm-next-6dbabc6/linux-arm64' - B2C_FIRMWARE_URL: 'https://fs.mupuf.org/hdk8650/sm8650-hdk-firmware.cpio.xz' - B2C_DTB_URL: 'https://fs.mupuf.org/hdk8650/2025-01-23-msm-gpu-fault-fixes-msm-next-6dbabc6/linux-arm64.dtbs.cpio.xz' - B2C_DTB_MATCH: 'boot/dtbs/qcom/sm8650-hdk.dtb' - B2C_KERNEL_CMDLINE_EXTRAS: 'b2c.swap=16g' - B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_SECONDS: 30 - B2C_TIMEOUT_FIRST_CONSOLE_ACTIVITY_RETRIES: 3 - B2C_TIMEOUT_BOOT_WD_SECONDS: 20 - B2C_TIMEOUT_BOOT_WD_RETRIES: 5 - B2C_BOOT_WD_START_REGEX: 'VB: RWDeviceState: Succeed using devinfo!' # A line repeated during firmware boot - B2C_BOOT_WD_STOP_REGEX: 'CPU features: detected:' # A line repeated during Linux boot + CI_TRON_DUT_SETUP_TAGS: dt_gpu:codename:a750 + CI_TRON_KERNEL__URL: 'https://fs.mupuf.org/hdk8650/2025-01-23-msm-gpu-fault-fixes-msm-next-6dbabc6/linux-arm64' + CI_TRON_INITRAMFS_CATEGORY__50_PLATFORM__0__URL: 'https://fs.mupuf.org/hdk8650/sm8650-hdk-firmware.cpio.xz' + CI_TRON_DTB__0__URL: 'https://fs.mupuf.org/hdk8650/2025-01-23-msm-gpu-fault-fixes-msm-next-6dbabc6/linux-arm64.dtbs.cpio.xz' + CI_TRON_DTB__0__FORMAT__0__ARCHIVE__MATCH: 'boot/dtbs/qcom/sm8650-hdk.dtb' + CI_TRON__B2C_SWAP_SIZE: '16g' + CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__MINUTES: 0.5 + CI_TRON_TIMEOUT__FIRST_CONSOLE_ACTIVITY__RETRIES: 3 + CI_TRON_WATCHDOG__FIRMWARE_TO_LINUX__MINUTES: 0.3 + CI_TRON_WATCHDOG__FIRMWARE_TO_LINUX__RETRIES: 5 + CI_TRON_WATCHDOG__FIRMWARE_TO_LINUX__START_REGEX: 'VB: RWDeviceState: Succeed using devinfo!' # A line repeated during firmware boot + CI_TRON_WATCHDOG__FIRMWARE_TO_LINUX__STOP_REGEX: 'CPU features: detected:' # A line repeated during Linux boot GPU_VERSION: freedreno-a750 VK_DRIVER: freedreno diff --git a/src/freedreno/ci/gitlab-ci.yml b/src/freedreno/ci/gitlab-ci.yml index 2a6ac312103..920e74bf9fd 100644 --- a/src/freedreno/ci/gitlab-ci.yml +++ b/src/freedreno/ci/gitlab-ci.yml @@ -448,8 +448,8 @@ a750-angle: - .test-angle timeout: 25m # base runtime 10min total, 7min of testing variables: - B2C_TIMEOUT_BOOT_MINUTES: 17 - B2C_TIMEOUT_OVERALL_MINUTES: 20 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 17 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 20 DEQP_SUITE: tu-angle HWCI_TEST_SCRIPT: ./install/deqp-runner.sh @@ -460,8 +460,8 @@ a750-gl: - .valve-freedreno-manual-rules timeout: 30m # base runtime 11min total, 8min of testing variables: - B2C_TIMEOUT_BOOT_MINUTES: 22 - B2C_TIMEOUT_OVERALL_MINUTES: 25 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 22 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 25 HWCI_TEST_SCRIPT: install/deqp-runner.sh DEQP_SUITE: freedreno-a750 @@ -487,8 +487,8 @@ a750-vk: - .valve-turnip-manual-rules timeout: 75m # base runtime 54min total, 51min of testing variables: - B2C_TIMEOUT_BOOT_MINUTES: 65 - B2C_TIMEOUT_OVERALL_MINUTES: 70 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 65 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 70 DEQP_SUITE: freedreno-a750-vk HWCI_TEST_SCRIPT: ./install/deqp-runner.sh @@ -499,8 +499,8 @@ a750-vkd3d: - .valve-turnip-manual-rules timeout: 15m # base runtime 3min variables: - B2C_TIMEOUT_OVERALL_MINUTES: 12 - B2C_TIMEOUT_BOOT_MINUTES: 10 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 12 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 10 HWCI_TEST_SCRIPT: install/vkd3d-runner.sh GPU_VERSION: freedreno-a750 FDO_CI_CONCURRENT: 1 diff --git a/src/gallium/drivers/i915/ci/gitlab-ci.yml b/src/gallium/drivers/i915/ci/gitlab-ci.yml index e4757508a15..242a8c115f2 100644 --- a/src/gallium/drivers/i915/ci/gitlab-ci.yml +++ b/src/gallium/drivers/i915/ci/gitlab-ci.yml @@ -10,8 +10,8 @@ include: FDO_CI_CONCURRENT: 2 GPU_VERSION: i915-g33 RUNNER_FARM_LOCATION: ondracka - B2C_KERNEL_URL: https://gitlab.freedesktop.org/gfx-ci/boot2container/-/releases/v0.9.12.3/downloads/linux-x86_64 - B2C_MARS_SETUP_TAGS: intelgpu:codename:G33 + 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/r300/ci/gitlab-ci.yml b/src/gallium/drivers/r300/ci/gitlab-ci.yml index d11aa0ecb45..2bb6f5ec1d4 100644 --- a/src/gallium/drivers/r300/ci/gitlab-ci.yml +++ b/src/gallium/drivers/r300/ci/gitlab-ci.yml @@ -9,19 +9,19 @@ include: FDO_CI_CONCURRENT: 2 RUNNER_FARM_LOCATION: ondracka # 6.6.8 kernel with radeon driver. - B2C_KERNEL_URL: 'https://gitlab.freedesktop.org/ondracka/boot2container/-/wikis/uploads/1733cfc7cc114d08ec785044b24314f3/linux-x86_64' + CI_TRON_KERNEL__URL: 'https://gitlab.freedesktop.org/ondracka/boot2container/-/wikis/uploads/1733cfc7cc114d08ec785044b24314f3/linux-x86_64' .ondracka-rv530: extends: - .ondracka-generic variables: - B2C_MARS_SETUP_TAGS: radeon:codename:RV530 + CI_TRON_DUT_SETUP_TAGS: radeon:codename:RV530 .ondracka-rv380: extends: - .ondracka-generic variables: - B2C_MARS_SETUP_TAGS: radeon:codename:RV380 + CI_TRON_DUT_SETUP_TAGS: radeon:codename:RV380 r300-rv530-deqp-gles2: extends: @@ -60,7 +60,7 @@ r300-rv410-deqp-piglit: DEQP_SUITE: r300-rv410 GPU_VERSION: r300-rv410 PIGLIT_PLATFORM: gbm - B2C_MARS_SETUP_TAGS: radeon:codename:RV410 + CI_TRON_DUT_SETUP_TAGS: radeon:codename:RV410 r300-rv530-piglit: extends: diff --git a/src/gallium/drivers/zink/ci/gitlab-ci-inc.yml b/src/gallium/drivers/zink/ci/gitlab-ci-inc.yml index 004b9b55fc1..4c1d93f6a4f 100644 --- a/src/gallium/drivers/zink/ci/gitlab-ci-inc.yml +++ b/src/gallium/drivers/zink/ci/gitlab-ci-inc.yml @@ -257,8 +257,8 @@ variables: DEQP_SUITE: zink-radv HWCI_TEST_SCRIPT: ./install/deqp-runner.sh - B2C_KERNEL_URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci # 6.6 - B2C_TIMEOUT_OVERALL_MINUTES: 20 + CI_TRON_KERNEL__URL: https://fs.mupuf.org/linux-6.6-b2c-radv-ci # 6.6 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 20 # Disable reporting, since DUTs don't have internet access FLAKES_CHANNEL: "" diff --git a/src/gallium/drivers/zink/ci/gitlab-ci.yml b/src/gallium/drivers/zink/ci/gitlab-ci.yml index 05785b22dc6..2e0cade3716 100644 --- a/src/gallium/drivers/zink/ci/gitlab-ci.yml +++ b/src/gallium/drivers/zink/ci/gitlab-ci.yml @@ -192,8 +192,8 @@ zink-tu-a750: - .test-piglit timeout: 25m # base runtime 11min total, 9min of testing variables: - B2C_TIMEOUT_BOOT_MINUTES: 18 - B2C_TIMEOUT_OVERALL_MINUTES: 20 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 18 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 20 DEQP_SUITE: zink-tu-a750 GPU_VERSION: zink-tu-a750 HWCI_START_WESTON: 1 @@ -207,8 +207,8 @@ zink-nvk-ga106-valve: - .nvk-ga106-valve variables: GPU_VERSION: zink-nvk-ga106 - B2C_TIMEOUT_BOOT_MINUTES: 50 - B2C_TIMEOUT_OVERALL_MINUTES: 55 # usual run time: 35min + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 50 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 55 # usual run time: 35min zink-radv-polaris10-valve: extends: @@ -219,7 +219,7 @@ zink-radv-polaris10-valve: variables: GPU_VERSION: zink-radv-polaris10 ZINK_DEBUG: quiet - B2C_TIMEOUT_OVERALL_MINUTES: 30 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 30 zink-radv-navi10-valve: extends: @@ -228,7 +228,7 @@ zink-radv-navi10-valve: - .zink-radv-manual-rules timeout: 40m variables: - B2C_TIMEOUT_OVERALL_MINUTES: 30 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 30 GPU_VERSION: zink-radv-navi10 zink-radv-vangogh-valve: @@ -240,10 +240,10 @@ zink-radv-vangogh-valve: - .zink-radv-rules variables: GPU_VERSION: zink-radv-vangogh - B2C_SESSION_REBOOT_REGEX: 'BUG: kernel NULL pointer dereference, address' - B2C_TIMEOUT_BOOT_RETRIES: 1 - B2C_TIMEOUT_BOOT_MINUTES: 30 - B2C_TIMEOUT_OVERALL_MINUTES: 30 + CI_TRON_PATTERN__SESSION_REBOOT__REGEX: 'BUG: kernel NULL pointer dereference, address' + CI_TRON_TIMEOUT__BOOT_CYCLE__RETRIES: 1 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 30 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 30 FDO_CI_CONCURRENT: 6 ZINK_DEBUG: vvl # Override the list of tags to drop `ci-tron:priority:low` @@ -259,6 +259,6 @@ zink-radv-navi31-valve: timeout: 1h 20m variables: GPU_VERSION: zink-radv-navi31 - B2C_TIMEOUT_BOOT_MINUTES: 75 - B2C_TIMEOUT_OVERALL_MINUTES: 75 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 75 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 75 ZINK_DEBUG: vvl diff --git a/src/nouveau/ci/gitlab-ci-inc.yml b/src/nouveau/ci/gitlab-ci-inc.yml index b1a6fcf4312..b368f7145d7 100644 --- a/src/nouveau/ci/gitlab-ci-inc.yml +++ b/src/nouveau/ci/gitlab-ci-inc.yml @@ -50,8 +50,8 @@ GPU_VERSION: nvk-ga106 FDO_CI_CONCURRENT: 16 RUNNER_FARM_LOCATION: mupuf - B2C_MARS_SETUP_TAGS: nvidia:codename:GA106 - B2C_JOB_WARN_REGEX: 'nouveau .+ job timeout|NMI backtrace for cpu \d+' + CI_TRON_DUT_SETUP_TAGS: nvidia:codename:GA106 + CI_TRON_PATTERN__JOB_WARN__REGEX: 'nouveau .+ job timeout|NMI backtrace for cpu \d+' # Default kernel is missing the GA106 GSP # 1 - clone b2c # 2 - apply all patches in patches/linux/* to your kernel @@ -59,6 +59,6 @@ # 4 - make linux LINUX_SRC=~/linux-nvk GOARCH=amd64 FEATURES=common,network,sensors,serial_adapters,ucode,nouveau # This is https://gitlab.freedesktop.org/gfxstrand/linux/-/commits/nvk # at d6820f36f375ece63226b26568be3a893985dc60 nouveau: set placement to original placement on uvmm validate. - B2C_KERNEL_URL: 'https://static.engestrom.ch/linux-6.8-nvk-ga106' + CI_TRON_KERNEL__URL: 'https://static.engestrom.ch/linux-6.8-nvk-ga106' # GSP is not loaded by default - B2C_KERNEL_CMDLINE_EXTRAS: 'nouveau.config=NvGspRm=1' + CI_TRON_KERNEL_CMDLINE__NOUVEAU_LOAD_GSP: 'nouveau.config=NvGspRm=1' diff --git a/src/nouveau/ci/gitlab-ci.yml b/src/nouveau/ci/gitlab-ci.yml index 5bad5bcebbc..afd8ce8b7bc 100644 --- a/src/nouveau/ci/gitlab-ci.yml +++ b/src/nouveau/ci/gitlab-ci.yml @@ -9,8 +9,8 @@ nvk-ga106-vkcts-valve: - .nvk-valve-manual-rules timeout: 120m # current runtime is ~70min variables: - B2C_TIMEOUT_BOOT_MINUTES: 110 - B2C_TIMEOUT_OVERALL_MINUTES: 115 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 110 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 115 nvk-ga106-vkd3d-valve: extends: @@ -21,7 +21,7 @@ nvk-ga106-vkd3d-valve: timeout: 15m # base runtime 7min variables: HWCI_TEST_SCRIPT: install/vkd3d-runner.sh - B2C_TIMEOUT_BOOT_MINUTES: 10 - B2C_TIMEOUT_OVERALL_MINUTES: 12 + CI_TRON_TIMEOUT__BOOT_CYCLE__MINUTES: 10 + CI_TRON_TIMEOUT__OVERALL__MINUTES: 12 # Random tests fail/crash when trying to run them in parallel FDO_CI_CONCURRENT: 1