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 [Clone] 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 Build 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/${{ matrix.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