--- /dev/null
+name: Pi kernel build tests
+
+on:
+ pull_request:
+ paths-ignore:
+ - '.github/**'
+ branches: [ "rpi-*" ]
+ push:
+ paths-ignore:
+ - '.github/**'
+ branches: [ "rpi-*" ]
+ workflow_dispatch:
+
+env:
+ NUM_JOBS: 3
+
+jobs:
+ build-bcm2835:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Update install
+ run:
+ sudo apt-get update
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-arm-linux-gnueabihf
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Build kernel
+ run: |
+ mkdir ${{github.workspace}}/build
+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2835_defconfig
+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image modules dtbs
+ mkdir -p ${{github.workspace}}/install/boot
+ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
+ cp ${{github.workspace}}/build/arch/arm/boot/Image ${{github.workspace}}/install/boot/
+
+ - name: Tar build
+ run: tar -cvf bcm2835_build.tar -C ${{github.workspace}}/install .
+
+ - name: Upload results
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcm2835_build
+ path: bcm2835_build.tar
+ retention-days: 7
+
+ build-arm64:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Update install
+ run:
+ sudo apt-get update
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-aarch64-linux-gnu
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Build kernel
+ run: |
+ mkdir ${{github.workspace}}/build
+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build defconfig
+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
+ mkdir -p ${{github.workspace}}/install/boot
+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
+ cp ${{github.workspace}}/build/arch/arm64/boot/dts/broadcom/*.dtb ${{github.workspace}}/install/boot/
+ cp -r ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
+ cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/
+
+ - name: Tar build
+ run: tar -cvf arm64_build.tar -C ${{github.workspace}}/install .
+
+ - name: Upload results
+ uses: actions/upload-artifact@v3
+ with:
+ name: arm64_build
+ path: arm64_build.tar
+ retention-days: 7
+
+ build-bcmrpi:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Update install
+ run:
+ sudo apt-get update
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-arm-linux-gnueabihf
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Build kernel
+ run: |
+ mkdir ${{github.workspace}}/build
+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
+ mkdir -p ${{github.workspace}}/install/boot
+ make ARCH=arm KERNEL=kernel CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
+
+ - name: Tar build
+ run: tar -cvf bcmrpi_build.tar -C ${{github.workspace}}/install .
+
+ - name: Upload results
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcmrpi_build
+ path: bcmrpi_build.tar
+ retention-days: 7
+
+ build-bcm2709:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Update install
+ run:
+ sudo apt-get update
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-arm-linux-gnueabihf
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Build kernel
+ run: |
+ mkdir ${{github.workspace}}/build
+ make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2709_defconfig
+ make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
+ mkdir -p ${{github.workspace}}/install/boot
+ make ARCH=arm KERNEL=kernel7 CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
+
+ - name: Tar build
+ run: tar -cvf bcm2709_build.tar -C ${{github.workspace}}/install .
+
+ - name: Upload results
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcm2709_build
+ path: bcm2709_build.tar
+ retention-days: 7
+
+ build-bcm2711:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Update install
+ run:
+ sudo apt-get update
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-arm-linux-gnueabihf
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Build kernel
+ run: |
+ mkdir ${{github.workspace}}/build
+ make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build bcm2711_defconfig
+ make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} zImage modules dtbs
+ mkdir -p ${{github.workspace}}/install/boot
+ make ARCH=arm KERNEL=kernel7l CROSS_COMPILE=arm-linux-gnueabihf- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
+ cp ${{github.workspace}}/build/arch/arm/boot/dts/*.dtb ${{github.workspace}}/install/boot/
+ cp -r ${{github.workspace}}/build/arch/arm/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
+ cp ${{github.workspace}}/build/arch/arm/boot/zImage ${{github.workspace}}/install/boot/
+
+ - name: Tar build
+ run: tar -cvf bcm2711_build.tar -C ${{github.workspace}}/install .
+
+ - name: Upload results
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcm2711_build
+ path: bcm2711_build.tar
+ retention-days: 7
+
+ build-bcm2711-arm64:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Update install
+ run:
+ sudo apt-get update
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-arm-linux-gnueabihf
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Install toolchain
+ run:
+ sudo apt-get install gcc-aarch64-linux-gnu
+ timeout-minutes: 5
+
+ - uses: actions/checkout@v3
+ with:
+ fetch-depth: 1
+ clean: true
+
+ - name: Build kernel
+ run: |
+ mkdir ${{github.workspace}}/build
+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build bcm2711_defconfig
+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build -j ${{env.NUM_JOBS}} Image.gz modules dtbs
+ mkdir -p ${{github.workspace}}/install/boot
+ make ARCH=arm64 KERNEL=kernel8 CROSS_COMPILE=aarch64-linux-gnu- O=${{github.workspace}}/build INSTALL_MOD_PATH=${{github.workspace}}/install modules_install
+ cp ${{github.workspace}}/build/arch/arm64/boot/dts/broadcom/*.dtb ${{github.workspace}}/install/boot/
+ cp -r ${{github.workspace}}/build/arch/arm64/boot/dts/overlays/*.dtb* ${{github.workspace}}/install/boot/
+ cp ${{github.workspace}}/build/arch/arm64/boot/Image.gz ${{github.workspace}}/install/boot/
+
+ - name: Tar build
+ run: tar -cvf bcm2711_arm64_build.tar -C ${{github.workspace}}/install .
+
+ - name: Upload results
+ uses: actions/upload-artifact@v3
+ with:
+ name: bcm2711_arm64_build
+ path: bcm2711_arm64_build.tar
+ retention-days: 7