drm/ci: Add jobs to validate devicetrees

Add jobs to run dt_binding_check and dtbs_check. If warnings are seen,
exit with a non-zero error code while configuring them as warning in
the GitLab CI pipeline.

Signed-off-by: Vignesh Raman <vignesh.raman@collabora.com>
Acked-by: Helen Koike <helen.fornazier@gmail.com>
Reviewed-by: Maxime Ripard <mripard@kernel.org>
Acked-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250623085033.39680-2-vignesh.raman@collabora.com
Signed-off-by: Maxime Ripard <mripard@kernel.org>
This commit is contained in:
Vignesh Raman
2025-06-23 14:20:27 +05:30
committed by Maxime Ripard
parent a629feabb5
commit deac70abb1
5 changed files with 106 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
.dt-check-base:
stage: static-checks
timeout: "30m"
variables:
GIT_DEPTH: 1
FF_USE_NEW_BASH_EVAL_STRATEGY: 'true'
SCHEMA: "display:gpu"
VENV_PATH: "/tmp/dtcheck-venv"
before_script:
- apt-get update -qq
# Minimum supported version of LLVM for building x86 kernels is 15.0.0.
# In mesa-ci containers, LLVM_VERSION is defined as a container-level property and is currently set to 19.
- apt-get install -y --no-install-recommends clang-${LLVM_VERSION} lld-${LLVM_VERSION} llvm-${LLVM_VERSION} python3-dev python3-venv python3-pip yamllint
- python3 -m venv "${VENV_PATH}"
- source "${VENV_PATH}/bin/activate"
- pip3 install dtschema
script:
- drivers/gpu/drm/ci/${SCRIPT_NAME}
artifacts:
when: on_failure
paths:
- ${ARTIFACT_FILE}
allow_failure:
exit_codes:
- 102
dtbs-check:arm32:
extends:
- .build:arm32
- .dt-check-base
variables:
SCRIPT_NAME: "dtbs-check.sh"
ARTIFACT_FILE: "dtbs-check.log"
dtbs-check:arm64:
extends:
- .build:arm64
- .dt-check-base
variables:
SCRIPT_NAME: "dtbs-check.sh"
ARTIFACT_FILE: "dtbs-check.log"
dt-binding-check:
extends:
- .build
- .use-debian/x86_64_build
- .dt-check-base
variables:
SCRIPT_NAME: "dt-binding-check.sh"
ARTIFACT_FILE: "dt-binding-check.log"

View File

@@ -0,0 +1,19 @@
#!/bin/bash
# SPDX-License-Identifier: MIT
set -euxo pipefail
VENV_PATH="${VENV_PATH:-/tmp/dtschema-venv}"
source "${VENV_PATH}/bin/activate"
if ! make -j"${FDO_CI_CONCURRENT:-4}" dt_binding_check \
DT_SCHEMA_FILES="${SCHEMA:-}" 2>dt-binding-check.log; then
echo "ERROR: 'make dt_binding_check' failed. Please check dt-binding-check.log for details."
exit 1
fi
if [[ -s dt-binding-check.log ]]; then
echo "WARNING: dt_binding_check reported warnings. Please check dt-binding-check.log" \
"for details."
exit 102
fi

View File

@@ -0,0 +1,22 @@
#!/bin/bash
# SPDX-License-Identifier: MIT
set -euxo pipefail
: "${KERNEL_ARCH:?ERROR: KERNEL_ARCH must be set}"
: "${LLVM_VERSION:?ERROR: LLVM_VERSION must be set}"
./drivers/gpu/drm/ci/setup-llvm-links.sh
make LLVM=1 ARCH="${KERNEL_ARCH}" defconfig
if ! make -j"${FDO_CI_CONCURRENT:-4}" ARCH="${KERNEL_ARCH}" LLVM=1 dtbs_check \
DT_SCHEMA_FILES="${SCHEMA:-}" 2>dtbs-check.log; then
echo "ERROR: 'make dtbs_check' failed. Please check dtbs-check.log for details."
exit 1
fi
if [[ -s dtbs-check.log ]]; then
echo "WARNING: dtbs_check reported warnings. Please check dtbs-check.log for details."
exit 102
fi

View File

@@ -110,6 +110,7 @@ include:
- drivers/gpu/drm/ci/static-checks.yml
- drivers/gpu/drm/ci/build.yml
- drivers/gpu/drm/ci/test.yml
- drivers/gpu/drm/ci/check-devicetrees.yml
- 'https://gitlab.freedesktop.org/gfx-ci/lab-status/-/raw/main/lab-status.yml'
@@ -119,6 +120,7 @@ stages:
- git-archive
- build-for-tests
- build-only
- static-checks
- code-validation
- amdgpu
- i915

View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: MIT
set -euo pipefail
ln -svf "$(which clang++-${LLVM_VERSION})" /usr/bin/clang++
ln -svf "$(which clang-${LLVM_VERSION})" /usr/bin/clang
ln -svf "$(which ld.lld-${LLVM_VERSION})" /usr/bin/ld.lld
ln -svf "$(which lld-${LLVM_VERSION})" /usr/bin/lld
ln -svf "$(which llvm-ar-${LLVM_VERSION})" /usr/bin/llvm-ar
ln -svf "$(which llvm-nm-${LLVM_VERSION})" /usr/bin/llvm-nm
ln -svf "$(which llvm-objcopy-${LLVM_VERSION})" /usr/bin/llvm-objcopy
ln -svf "$(which llvm-readelf-${LLVM_VERSION})" /usr/bin/llvm-readelf
ln -svf "$(which llvm-strip-${LLVM_VERSION})" /usr/bin/llvm-strip