name: Raspberry Pi Linux Kernel 6.12.y on: - push # branches: # - rpi-6.12.y env: BRANCH: rpi-6.12.y META: true jobs: sources: name: Raspberry Pi Linux Sources runs-on: cicd.any outputs: VERSION: ${{ steps.environment.outputs.version }} steps: - name: Linux Sources [Artifact] run: | /usr/bin/git clone --verbose --depth='1' --branch '${{ env.branch }}' 'https://github.com/raspberrypi/linux' - name: Environment id: environment run: | VERSION=$(/usr/bin/make --directory='./linux' kernelversion | /usr/bin/grep --extended-regexp --only-matching '^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}$') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Sources [Archive] run: | /usr/bin/tar --create --directory="./linux" --file="./linux-sources-${{ steps.environment.outputs.version }}.tar.gz" --gzip '.' --verbose - name: Linux Sources [Artifact Upload] uses: christopherhx/gitea-upload-artifact@v7 with: name: linux-sources-${{ steps.environment.outputs.version }}.tar.gz path: ./linux-sources-${{ steps.environment.outputs.version }}.tar.gz if-no-files-found: error overwrite: true archive: false build: name: Raspberry Pi Linux Kernel [Artifact] needs: - sources strategy: matrix: include: - defconfig: bcm2711_defconfig runner: cicd.bookworm codename: bookworm gcc: aarch64-linux-gnu-gcc-12 image: rpt revision: v8 runs-on: ${{ matrix.runner }} steps: - name: Repository [Clone] uses: actions/checkout@v6 - name: Environment id: environment run: | UNITS=$(/usr/bin/nproc --all) /usr/bin/echo "UNITS=${UNITS}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'UNITS' to '${UNITS}'" - name: Linux Sources [Artifact Download] uses: actions/download-artifact@v3-node20 with: name: linux-sources-${{ needs.sources.outputs.version }}.tar.gz - name: Linux Sources [Extract] run: | /usr/bin/install --directory --verbose './linux-sources' /usr/bin/tar --directory='./linux-sources' --extract --gzip --file='./linux-sources-${{ needs.sources.outputs.version }}.tar.gz' --verbose - name: Linux Sources [Prepare] if: matrix.defconfig != 'bcm2711_defconfig' && matrix.defconfig != 'bcm2712_defconfig' env: DEFCONFIG: ${{ matrix.defconfig }} run: | /usr/bin/mv --verbose "./config/${DEFCONFIG}-${{ env.branch }}" "./linux-sources/arch/arm64/configs/${DEFCONFIG%%-*}" - name: Linux Sources [Configuration] run: | /usr/bin/make --directory='./linux-sources' --jobs='${{ steps.environment.outputs.units }}' CC='${{ matrix.gcc }}' '${{ matrix.defconfig }}' ./linux-sources/scripts/config --file './linux-sources/.config' --set-str CONFIG_BUILD_SALT +${{ matrix.image }}-rpi-${{ matrix.revision }} ./linux-sources/scripts/config --file './linux-sources/.config' --set-str CONFIG_LD_ORPHAN_WARN_LEVEL error ./linux-sources/scripts/config --file './linux-sources/.config' --set-str CONFIG_LOCALVERSION +${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Linux Sources [Build] run: | /usr/bin/make --directory='./linux-sources' --jobs='${{ steps.environment.outputs.units }}' CC='${{ matrix.gcc }}' LOCALVERSION='' Image.gz modules dtbs - name: Linux Sources Debian Packages [Build] run: | /usr/bin/make --directory='./linux-sources' --jobs='${{ steps.environment.outputs.units }}' CC='${{ matrix.gcc }}' LOCALVERSION='' bindeb-pkg - name: Linux Image [Build] run: | /usr/bin/mv --verbose './linux-image' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/${{ matrix.codename }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postrm' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postrm' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postrm' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postrm' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/preinst' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/preinst' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/preinst' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/preinst' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/prerm' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/prerm' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/prerm' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/prerm' /usr/bin/mv --verbose './linux-sources/debian/linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/boot' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/boot' /usr/bin/mv --verbose './linux-sources/debian/linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/lib' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/lib' /usr/bin/install --directory --verbose './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/usr' /usr/bin/mv --verbose './linux-sources/debian/linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/lib' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/usr/lib' /usr/bin/mv --verbose './linux-sources/arch/arm64/boot/dts/overlays/README' './linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/usr/lib/linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/overlays/README' - name: Linux Image [Archive] run: | /usr/bin/tar --create --directory='./linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' --file='./linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz' --gzip '.' --verbose - name: Linux Image [Artifact Upload] uses: christopherhx/gitea-upload-artifact@v7 with: name: linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz path: ./linux-image-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz if-no-files-found: error overwrite: true archive: false - name: Linux Image Meta [Build] if: env.meta == 'true' run: | /usr/bin/mv --verbose './linux-image-meta' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/${{ matrix.codename }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' - name: Linux Image Meta [Archive] if: env.meta == 'true' run: | /usr/bin/tar --create --directory='./linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' --file='./linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz' --gzip '.' --verbose - name: Linux Image Meta [Artifact Upload] if: env.meta == 'true' uses: christopherhx/gitea-upload-artifact@v7 with: name: linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz path: ./linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz if-no-files-found: error overwrite: true archive: false - name: Linux Headers [Build] run: | /usr/bin/mv --verbose './linux-headers' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/${{ matrix.codename }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/chmod --verbose '0755' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/postinst' /usr/bin/mv --verbose './linux-sources/debian/linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/lib' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/lib' /usr/bin/install --directory --verbose './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/usr' /usr/bin/mv --verbose './linux-sources/debian/linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/src' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/usr/src' /usr/bin/mv --verbose './linux-sources/.config' './linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/usr/src/linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/.config' - name: Linux Headers [Archive] run: | /usr/bin/tar --create --directory='./linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' --file='./linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz' --gzip '.' --verbose - name: Linux Headers [Artifact Upload] uses: https://github.com/christopherhx/gitea-upload-artifact@v7 with: name: linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz path: ./linux-headers-${{ needs.sources.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz if-no-files-found: error overwrite: true archive: false - name: Linux Headers Meta [Build] if: env.meta == 'true' run: | /usr/bin/mv --verbose './linux-headers-meta' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/${{ matrix.codename }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.version }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}/DEBIAN/control' - name: Linux Headers Meta [Archive] if: env.meta == 'true' run: | /usr/bin/tar --create --directory='./linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}' --file='./linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz' --gzip '.' --verbose - name: Linux Headers Meta [Artifact Upload] if: env.meta == 'true' uses: christopherhx/gitea-upload-artifact@v7 with: name: linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz path: ./linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz if-no-files-found: error overwrite: true archive: false - name: Linux libc Development [Build] if: env.meta == 'true' && matrix.defconfig == 'bcm2711_defconfig' run: | /usr/bin/mv --verbose './linux-libc-dev' './linux-libc-dev_${{ matrix.codename }}' /usr/bin/install --directory --verbose './linux-libc-dev_${{ matrix.codename }}/usr' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/${{ matrix.codename }}/g' './linux-libc-dev_${{ matrix.codename }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION//${{ needs.sources.outputs.version }}/g' './linux-libc-dev_${{ matrix.codename }}/DEBIAN/control' /usr/bin/mv --verbose './linux-sources/debian/linux-libc-dev/usr/include' './linux-libc-dev_${{ matrix.codename }}/usr/include' - name: Linux libc Development [Archive] if: env.meta == 'true' && matrix.defconfig == 'bcm2711_defconfig' run: | /usr/bin/tar --create --directory='./linux-libc-dev_${{ matrix.codename }}' --file='./linux-libc-dev_${{ matrix.codename }}.tar.gz' --gzip '.' --verbose - name: Linux libc Development [Artifact Upload] if: env.meta == 'true' && matrix.defconfig == 'bcm2711_defconfig' uses: christopherhx/gitea-upload-artifact@v7 with: name: linux-libc-dev_${{ matrix.codename }}.tar.gz path: ./linux-libc-dev_${{ matrix.codename }}.tar.gz if-no-files-found: error overwrite: true archive: false