mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 01:49:46 +00:00
workflows: We all love checkpatch, so add it to the CI workflows
This is currently running on defaults, so the --strict desired for media drivers and similar won't be observed. That may be possible to add later. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> .github: Add Github Workflow for KUnit Now that we have some KUnit coverage, let's add a github actions file to run them on each push or pull request. Signed-off-by: Maxime Ripard <maxime@cerno.tech> .github/workflows: Add dtoverlaycheck workflow Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> .github/workflows: Create workflow to CI kernel builds Builds the bcmrpi, bcm2709, bcm2711, and bcm2835 32 bit kernels, and defconfig and bcm2711 64bit kernels, saving the artifacts for 7 days. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> .github: Skip broken Generic DRM/KMS Unit Tests Signed-off-by: Phil Elwell <phil@raspberrypi.com> .github/workflows: Set warnings-as-errors for builds To avoid code with build warnings being introduced into the tree, force CONFIG_WERROR=y in the build workflow. Signed-off-by: Phil Elwell <phil@raspberrypi.com> .github/workflows: Correct kernel builds artifacts Modify the kernel build workflow to create artifacts with the correct names and structure, both as an example of what we expect and in case anyone wants to use the output. Signed-off-by: Phil Elwell <phil@raspberrypi.com> .github/workflows: Switch to a matrix build Remove the per-build duplication by putting build parameters in a matrix. Signed-off-by: Phil Elwell <phil@raspberrypi.com> .github/workflows: Retain artifacts for 90 days Signed-off-by: Phil Elwell <phil@raspberrypi.com> .github/workflows: Add a bcm2712 build configuration Signed-off-by: Phil Elwell <phil@raspberrypi.com> Update kernel-build.yml to use node.js 20 Upgrade the actions to v4 to get rid of the warning about migrating from node.js 16. Update kunit.yml to use node.js 20 Bump actions/checkout to v4. Update dtoverlaycheck.yml to node.js 20 .github/workflows: More jobs for kernel builds Using the "cores * 1.5" heuristic, configure the kernel builds for the 4-core GitHub-hosted runners. Signed-off-by: Phil Elwell <phil@raspberrypi.com> workflows: Add arm64 bcm2711_rt build Add a Github CI workflow bcm2711_rt_defconfig Signed-off-by: Tim Gover <tim.gover@raspberrypi.com> workflows: Remove the ARCH=arm bcm2711 build As we will be moving Pi 4 support to kernel8.img only and dropping kernel7l.img, the ARCH=arm bcm2711 defconfig has been deleted. Remove the corresponding autobuild. Signed-off-by: Phil Elwell <phil@raspberrypi.com> workflows: Use bcm2709_defconfig for dtoverlaycheck Now that ARCH=arm bcm2711_defconfig has been deleted, update dtoverlaycheck to use bcm2709_defconfig. Signed-off-by: Phil Elwell <phil@raspberrypi.com> kunit: Use ubuntu-22.04 for arm64 There's a bug in the version of qemu used by Ubuntu 24.04 that kills the arm64 KUnit test. Revert to Ubuntu 22.04 just for that test, until ubuntu-latest updates to qemu 9.2.0+. Link: https://bugzilla.suse.com/show_bug.cgi?id=1236310 Signed-off-by: Phil Elwell <phil@raspberrypi.com> workflows: Switch to overlaycheck's thorough mode Now that the current trees are passing the thorough/try-all mode of overlaycheck (mainly by excluding trying to apply the vl805 overlay on a CM4S), use it in the build checks. Signed-off-by: Phil Elwell <phil@raspberrypi.com> workflows: Ignore checkpatch UNKNOWN_COMMIT_ID As we do a shallow clone of the repo, Fixes: tags generally don't have the matching commit available to lookup, and checkpatch logs it. Ignore this error. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> workflows: dtoverlaycheck: Update the dependencies Signed-off-by: Phil Elwell <phil@raspberrypi.com> workflows: Increase timeout for toolchain install 5 minutes seems to be failing on a regular basis, so increase it. Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com> workflows: Increase DT tools installation timeout Increase the timeout for the toolchain installation in the dtoverlaycheck workflow, to match that for the kernel. Signed-off-by: Phil Elwell <phil@raspberrypi.com> workflows: Use native arm64 runners Use native arm64 runners to speed up build process. Cross compile is still used for arm targets, but also benefit from the arm64 runner architecture. Overall build time will be reduced by 25 to 30 minutes by this. Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
This commit is contained in:
committed by
Dom Cobley
parent
7d0a66e4bb
commit
bdb8db31f9
18
.github/workflows/checkpatch.yml
vendored
Normal file
18
.github/workflows/checkpatch.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
name: Advisory checkpatch review
|
||||
on: [pull_request]
|
||||
|
||||
jobs:
|
||||
review:
|
||||
name: checkpatch review
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Calculate PR commits + 1'
|
||||
run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> $GITHUB_ENV
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
fetch-depth: ${{ env.PR_FETCH_DEPTH }}
|
||||
- name: Copy checkpatch.conf
|
||||
run: cp ${{github.workspace}}/.github/workflows/ci_checkpatch.conf ${{github.workspace}}/.checkpatch.conf
|
||||
- name: Run checkpatch review
|
||||
uses: webispy/checkpatch-action@v9
|
||||
5
.github/workflows/ci_checkpatch.conf
vendored
Normal file
5
.github/workflows/ci_checkpatch.conf
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
--no-tree
|
||||
--ignore FILE_PATH_CHANGES
|
||||
--ignore GIT_COMMIT_ID
|
||||
--ignore SPDX_LICENSE_TAG
|
||||
--ignore UNKNOWN_COMMIT_ID
|
||||
48
.github/workflows/dtoverlaycheck.yml
vendored
Normal file
48
.github/workflows/dtoverlaycheck.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: Pi dtoverlay checks
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
branches: [ "rpi-*" ]
|
||||
push:
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
branches: [ "rpi-*" ]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
UTILS_DIR: "${{github.workspace}}/utils"
|
||||
|
||||
jobs:
|
||||
dtoverlaycheck:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Install toolchain
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt-get install gcc-arm-linux-gnueabihf libfdt-dev device-tree-compiler gnutls-dev
|
||||
timeout-minutes: 15
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
clean: true
|
||||
|
||||
- name: overlaycheck
|
||||
run: |
|
||||
git clone https://github.com/raspberrypi/utils ${{env.UTILS_DIR}}
|
||||
cd ${{env.UTILS_DIR}}
|
||||
pwd
|
||||
mkdir build
|
||||
cd build
|
||||
pwd
|
||||
cmake ..
|
||||
make -j4
|
||||
sudo make install
|
||||
cd ${{github.workspace}}
|
||||
pwd
|
||||
make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig
|
||||
make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- dtbs
|
||||
${{env.UTILS_DIR}}/overlaycheck/overlaycheck -t
|
||||
103
.github/workflows/kernel-build.yml
vendored
Normal file
103
.github/workflows/kernel-build.yml
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
name: Pi kernel build tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
branches: [ "rpi-*" ]
|
||||
push:
|
||||
paths-ignore:
|
||||
- '.github/**'
|
||||
branches: [ "rpi-*" ]
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
NUM_JOBS: 6
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-24.04-arm
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- name: bcm2835
|
||||
arch: arm
|
||||
defconfig: bcm2835_defconfig
|
||||
kernel: kernel
|
||||
|
||||
- name: arm64
|
||||
arch: arm64
|
||||
defconfig: defconfig
|
||||
kernel: kernel8
|
||||
|
||||
- name: bcmrpi
|
||||
arch: arm
|
||||
defconfig: bcmrpi_defconfig
|
||||
kernel: kernel
|
||||
|
||||
- name: bcm2709
|
||||
arch: arm
|
||||
defconfig: bcm2709_defconfig
|
||||
kernel: kernel7
|
||||
|
||||
- name: bcm2711
|
||||
arch: arm64
|
||||
defconfig: bcm2711_defconfig
|
||||
kernel: kernel8
|
||||
|
||||
- name: bcm2711_rt
|
||||
arch: arm64
|
||||
defconfig: bcm2711_rt_defconfig
|
||||
kernel: kernel8_rt
|
||||
|
||||
- name: bcm2712
|
||||
arch: arm64
|
||||
defconfig: bcm2712_defconfig
|
||||
kernel: kernel_2712
|
||||
|
||||
steps:
|
||||
- name: Install armhf crossbuild toolchain
|
||||
if: matrix.arch == 'arm'
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gcc-arm-linux-gnueabihf
|
||||
timeout-minutes: 15
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
clean: true
|
||||
|
||||
- name: Build kernel ${{matrix.name}}
|
||||
run: |
|
||||
mkdir ${{github.workspace}}/build
|
||||
export ARCH=${{matrix.arch}}
|
||||
if [[ "$ARCH" == "arm64" ]]; then
|
||||
export DTS_SUBDIR=broadcom
|
||||
export IMAGE=Image.gz
|
||||
else
|
||||
export CROSS_COMPILE=arm-linux-gnueabihf-
|
||||
export DTS_SUBDIR=broadcom
|
||||
export IMAGE=zImage
|
||||
fi
|
||||
make O=${{github.workspace}}/build ${{matrix.defconfig}}
|
||||
scripts/config --file ${{github.workspace}}/build/.config --set-val CONFIG_WERROR y
|
||||
make O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} $IMAGE modules dtbs
|
||||
mkdir -p ${{github.workspace}}/install/boot/overlays
|
||||
make O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
|
||||
cp ${{github.workspace}}/build/arch/${ARCH}/boot/dts/${DTS_SUBDIR}/*.dtb ${{github.workspace}}/install/boot/
|
||||
cp ${{github.workspace}}/build/arch/${ARCH}/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/overlays/
|
||||
cp ${{github.workspace}}/arch/${ARCH}/boot/dts/overlays/README ${{github.workspace}}/install/boot/overlays/
|
||||
cp ${{github.workspace}}/build/arch/${ARCH}/boot/$IMAGE ${{github.workspace}}/install/boot/${{matrix.kernel}}.img
|
||||
|
||||
- name: Tar build
|
||||
run: tar -cvf ${{matrix.name}}_build.tar -C ${{github.workspace}}/install .
|
||||
|
||||
- name: Upload results
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{matrix.name}}_build
|
||||
path: ${{matrix.name}}_build.tar
|
||||
retention-days: 90
|
||||
57
.github/workflows/kunit.yml
vendored
Normal file
57
.github/workflows/kunit.yml
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
name: KUnit Tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [ "rpi-*"]
|
||||
|
||||
push:
|
||||
branches: [ "rpi-*"]
|
||||
|
||||
jobs:
|
||||
core:
|
||||
name: Generic DRM/KMS Unit Tests
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run Generic DRM Tests
|
||||
run: |
|
||||
echo Skipping ./tools/testing/kunit/kunit.py run \
|
||||
--kunitconfig=drivers/gpu/drm/tests
|
||||
|
||||
vc4-arm:
|
||||
name: VC4 Unit Tests on ARM
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gcc-arm-linux-gnueabihf qemu-system-arm
|
||||
|
||||
- name: Run VC4 Tests
|
||||
run: |
|
||||
./tools/testing/kunit/kunit.py run \
|
||||
--kunitconfig=drivers/gpu/drm/vc4/tests \
|
||||
--cross_compile=arm-linux-gnueabihf- --arch=arm
|
||||
|
||||
vc4-arm64:
|
||||
name: VC4 Unit Tests on ARM64
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y gcc-aarch64-linux-gnu qemu-system-arm
|
||||
|
||||
- name: Run VC4 Tests
|
||||
run: |
|
||||
./tools/testing/kunit/kunit.py run \
|
||||
--kunitconfig=drivers/gpu/drm/vc4/tests \
|
||||
--cross_compile=aarch64-linux-gnu- --arch=arm64
|
||||
Reference in New Issue
Block a user