Skip to content

ci: only check mtk dtbs #6

ci: only check mtk dtbs

ci: only check mtk dtbs #6

Workflow file for this run

name: DTBS Check
on:
push:
jobs:
dtbs:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- arch: arm64
cross: aarch64-linux-gnu-
compiler: gcc-aarch64-linux-gnu
defconfig: defconfig
- arch: arm
cross: arm-linux-gnueabihf-
compiler: gcc-arm-linux-gnueabihf
defconfig: multi_v7_defconfig
steps:
- name: Checkout
uses: actions/checkout@v4
# shared cache
- name: Cache dt-schema
uses: actions/cache@v4
with:
path: |
~/.cache/dtschema
.venv/lib/python*/site-packages/dtschema
key: ${{ runner.os }}-dtschema-${{ github.ref_name }}-${{ hashFiles('**/*.yaml') }}
# arch-specific cache
- name: Cache DTBs
uses: actions/cache@v4
with:
path: arch/${{ matrix.arch }}/boot/dts/
key: ${{ runner.os }}-dtbs-${{ matrix.arch }}-${{ github.ref_name }}-${{ hashFiles(format('arch/{0}/**/*.dts', matrix.arch), format('arch/{0}/**/*.dtsi', matrix.arch)) }}
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y \
swig yamllint python3-pip python3-venv \
make ${{ matrix.compiler }}
- name: Setup Python venv
run: |
python3 -m venv .venv
. .venv/bin/activate
pip install --upgrade pip
pip install dtschema
- name: Run DT binding checks
shell: bash
run: |
set -o pipefail
LOGDIR=logs
mkdir -p $LOGDIR
export ARCH=${{ matrix.arch }}
export CROSS_COMPILE=${{ matrix.cross }}
export MAKEFLAGS="-j$(nproc)"
source .venv/bin/activate
# bindings only for arm64 (save time)
if [ "${{ matrix.arch }}" = "arm64" ]; then
make dt_binding_check \
2>&1 | tee $LOGDIR/dt_binding_check_${{ matrix.arch }}.log
fi
make ${{ matrix.defconfig }} \
2>&1 | tee $LOGDIR/defconfig_${{ matrix.arch }}.log
make dtbs_check DTB_FILES="arch/${ARCH}/boot/dts/mediatek/*.dtb \
2>&1 | tee $LOGDIR/dtbs_check_${{ matrix.arch }}.log
- name: Upload logs
if: always()
uses: actions/upload-artifact@v4
with:
name: dtbs-logs-${{ matrix.arch }}
path: logs/