name: Raspberry Pi Linux Kernel 6.12.y on: push: branches: - release jobs: sources: name: Linux Sources outputs: CACHE_KEY: ${{ steps.cache-key.outputs.key }} LINUX_VERSION: ${{ steps.linux-version.outputs.version }} runs-on: cicd.bookworm steps: - name: Action Cache [Key] id: cache-key run: | KEY=$(/usr/bin/git ls-remote 'https://github.com/raspberrypi/linux' 'rpi-6.12.y' | /usr/bin/awk '{print $1}') /usr/bin/echo "KEY=${KEY}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'KEY' to '${KEY}'" - name: Linux Version [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-version with: key: ${{ steps.cache-key.outputs.key }}_version lookup-only: true path: | ./environment - name: Linux Sources [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-sources with: key: ${{ steps.cache-key.outputs.key }}_sources lookup-only: true path: | ./linux-sources - name: Linux Version [Action Cache Restore] if: steps.cache-version.outputs.cache-hit == 'true' uses: actions/cache/restore@v5 with: key: ${{ steps.cache-key.outputs.key }}_version path: | ./environment - name: Linux Sources [Action Cache Restore] if: steps.cache-sources.outputs.cache-hit == 'true' && steps.cache-version.outputs.cache-hit != 'true' uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ steps.cache-key.outputs.key }}_sources path: | ./linux-sources - name: Linux Sources [Download] if: steps.cache-sources.outputs.cache-hit != 'true' run: | /usr/bin/git clone --verbose --depth='1' --branch 'rpi-6.12.y' 'https://github.com/raspberrypi/linux' './linux-sources' - name: Linux Version [Environment] id: linux-version env: CACHE_ENVIRONMENT: ${{ steps.cache-version.outputs.cache-hit }} run: | if [[ ${CACHE_ENVIRONMENT} == 'true' ]]; then source './environment' elif [[ ${CACHE_ENVIRONMENT} != 'true' ]]; then VERSION=$(/usr/bin/make --directory='./linux-sources' 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}'" >> './environment' fi /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Version [Action Cache Save] if: steps.cache-version.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: key: ${{ steps.cache-key.outputs.key }}_version path: | ./environment - name: Linux Sources [Action Cache Save] if: always() && steps.cache-sources.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: key: ${{ steps.cache-key.outputs.key }}_sources path: | ./linux-sources build: name: Linux Kernel needs: - sources outputs: CACHE_KEY: ${{ needs.sources.outputs.cache_key }} LINUX_VERSION: ${{ needs.sources.outputs.linux_version }} strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt revision: v8 - defconfig: bcm2712_defconfig image: rpt revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve revision: v8 runs-on: cicd.bookworm steps: - name: Compute Processing Units [Environment] id: cpu run: | UNITS=$(/usr/bin/nproc --all) /usr/bin/echo "UNITS=${UNITS}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'UNITS' to '${UNITS}'" - name: Linux Headers [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-headers with: key: ${{ needs.sources.outputs.cache_key }}_headers lookup-only: true path: | ./linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Linux Headers Meta [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-headers-meta with: key: ${{ needs.sources.outputs.cache_key }}_headers-meta lookup-only: true path: | ./linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Linux Image [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-image with: key: ${{ needs.sources.outputs.cache_key }}_image lookup-only: true path: | ./linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Linux Image Meta [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-image-meta with: key: ${{ needs.sources.outputs.cache_key }}_image-meta lookup-only: true path: | ./linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Linux libc Development [Action Cache Hit] uses: actions/cache/restore@v5 id: cache-libc with: key: ${{ needs.sources.outputs.cache_key }}_libc lookup-only: true path: | ./linux-libc-dev - name: Repository (Workspace) [Checkout] if: steps.cache-headers.outputs.cache-hit != 'true' || steps.cache-headers-meta.outputs.cache-hit != 'true' || steps.cache-image.outputs.cache-hit != 'true' || steps.cache-image-meta.outputs.cache-hit != 'true' || steps.cache-libc.outputs.cache-hit != 'true' uses: actions/checkout@v6 - name: Linux Sources [Action Cache Restore] if: steps.cache-headers.outputs.cache-hit != 'true' || steps.cache-headers-meta.outputs.cache-hit != 'true' || steps.cache-image.outputs.cache-hit != 'true' || steps.cache-image-meta.outputs.cache-hit != 'true' || steps.cache-libc.outputs.cache-hit != 'true' uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ needs.sources.outputs.cache_key }}_sources path: | ./linux-sources - name: Linux Sources [Prepare Configuration] if: (steps.cache-headers.outputs.cache-hit != 'true' || steps.cache-headers-meta.outputs.cache-hit != 'true' || steps.cache-image.outputs.cache-hit != 'true' || steps.cache-image-meta.outputs.cache-hit != 'true' || steps.cache-libc.outputs.cache-hit != 'true') && matrix.defconfig != 'bcm2711_defconfig' && matrix.defconfig != 'bcm2712_defconfig' env: DEFCONFIG: ${{ matrix.defconfig }} run: | /usr/bin/mv --verbose "./config/${DEFCONFIG}.rpi-6.12.y" "./linux-sources/arch/arm64/configs/${DEFCONFIG%%-*}" - name: Linux Sources [Configuration] if: steps.cache-headers.outputs.cache-hit != 'true' || steps.cache-headers-meta.outputs.cache-hit != 'true' || steps.cache-image.outputs.cache-hit != 'true' || steps.cache-image-meta.outputs.cache-hit != 'true' || steps.cache-libc.outputs.cache-hit != 'true' run: | /usr/bin/make --directory='./linux-sources' --jobs='${{ steps.cpu.outputs.units }}' CC='aarch64-linux-gnu-gcc-12' '${{ 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 Image & Headers] if: steps.cache-headers.outputs.cache-hit != 'true' || steps.cache-headers-meta.outputs.cache-hit != 'true' || steps.cache-image.outputs.cache-hit != 'true' || steps.cache-image-meta.outputs.cache-hit != 'true' || steps.cache-libc.outputs.cache-hit != 'true' run: | /usr/bin/make --directory='./linux-sources' --jobs='${{ steps.cpu.outputs.units }}' CC='aarch64-linux-gnu-gcc-12' LOCALVERSION='' Image.gz modules dtbs - name: Linux Sources [Build Debian Packages] if: steps.cache-headers.outputs.cache-hit != 'true' || steps.cache-headers-meta.outputs.cache-hit != 'true' || steps.cache-image.outputs.cache-hit != 'true' || steps.cache-image-meta.outputs.cache-hit != 'true' || steps.cache-libc.outputs.cache-hit != 'true' run: | /usr/bin/make --directory='./linux-sources' --jobs='${{ steps.cpu.outputs.units }}' CC='aarch64-linux-gnu-gcc-12' LOCALVERSION='' bindeb-pkg - name: Linux Headers [Prepare Debian Package] if: steps.cache-headers.outputs.cache-hit != 'true' run: | /usr/bin/mv --verbose './linux-headers' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/bookworm/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/chmod --verbose '0755' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/mv --verbose './linux-sources/debian/linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/lib' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/lib' /usr/bin/install --directory --verbose './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr' /usr/bin/mv --verbose './linux-sources/debian/linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/src' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/src' /usr/bin/mv --verbose './linux-sources/.config' './linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/src/linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/.config' - name: Linux Headers [Action Cache Save] if: steps.cache-headers.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: | ./linux-headers-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }} key: ${{ needs.sources.outputs.cache_key }}_headers - name: Linux Headers Meta [Prepare Debian Package] if: steps.cache-headers-meta.outputs.cache-hit != 'true' run: | /usr/bin/mv --verbose './linux-headers-meta' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/bookworm/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' - name: Linux Headers Meta [Action Cache Save] if: steps.cache-headers-meta.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: | ./linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }} key: ${{ needs.sources.outputs.cache_key }}_headers-meta - name: Linux Image [Prepare Debian Package] if: steps.cache-image.outputs.cache-hit != 'true' run: | /usr/bin/mv --verbose './linux-image' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/bookworm/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postinst' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postrm' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postrm' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postrm' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/postrm' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/preinst' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/preinst' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/preinst' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/preinst' /usr/bin/chmod --verbose '0755' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/prerm' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/prerm' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/prerm' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/prerm' /usr/bin/mv --verbose './linux-sources/debian/linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/boot' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/boot' /usr/bin/mv --verbose './linux-sources/debian/linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/lib' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/lib' /usr/bin/install --directory --verbose './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr' /usr/bin/mv --verbose './linux-sources/debian/linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/lib' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/lib' /usr/bin/mv --verbose './linux-sources/arch/arm64/boot/dts/overlays/README' './linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/usr/lib/linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}/overlays/README' - name: Linux Image [Action Cache Save] if: steps.cache-image.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: | ./linux-image-${{ needs.sources.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }} key: ${{ needs.sources.outputs.cache_key }}_image - name: Linux Image Meta [Prepare Debian Package] if: steps.cache-image-meta.outputs.cache-hit != 'true' run: | /usr/bin/mv --verbose './linux-image-meta' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/bookworm/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_IMAGE/${{ matrix.image }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_REVISION/${{ matrix.revision }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}/DEBIAN/control' - name: Linux Image Meta [Action Cache Save] if: steps.cache-image-meta.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: | ./linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }} key: ${{ needs.sources.outputs.cache_key }}_image-meta - name: Linux libc Development [Prepare Debian Package] if: steps.cache-libc.outputs.cache-hit != 'true' && matrix.defconfig == 'bcm2711_defconfig' run: | /usr/bin/install --directory --verbose './linux-libc-dev/usr' /usr/bin/sed --in-place --expression='s/CICD_CODENAME/bookworm/g' './linux-libc-dev/DEBIAN/control' /usr/bin/sed --in-place --expression='s/CICD_VERSION/${{ needs.sources.outputs.linux_version }}/g' './linux-libc-dev/DEBIAN/control' /usr/bin/mv --verbose './linux-sources/debian/linux-libc-dev/usr/include' './linux-libc-dev/usr/include' - name: Linux libc Development [Action Cache Save] if: steps.cache-libc.outputs.cache-hit != 'true' uses: actions/cache/save@v5 with: path: | ./linux-libc-dev key: ${{ needs.sources.outputs.cache_key }}_libc headers: name: Linux Headers [Debian Package] needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt repository: main revision: v8 - defconfig: bcm2712_defconfig image: rpt repository: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve repository: pve8 revision: v8 runs-on: cicd.bookworm steps: - name: Linux Headers [Action Cache Restore] uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ needs.build.outputs.cache_key }}_headers path: | ./linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Debian Package [Generate] run: | /usr/bin/dpkg-gen './linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}' - name: Release Debian Package [Configuration] run: | /usr/bin/echo '${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }}' > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='bookworm'" > './linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to 'bookworm'" /usr/bin/echo "REPOSITORY_COMPONENT='${{ matrix.repository }}'" >> './linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${{ matrix.repository }}'" - name: Release Debian Package [PrivLab Repository] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ needs.build.outputs.linux_version }} tag_name: v${{ needs.build.outputs.linux_version }} files: | linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Release Debian Package [Advanced Package Tool Repository] run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb' /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-headers-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' image: name: Linux Image [Debian Package] needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt repository: main revision: v8 - defconfig: bcm2712_defconfig image: rpt repository: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve repository: pve8 revision: v8 runs-on: cicd.bookworm steps: - name: Linux Image [Action Cache Restore] uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ needs.build.outputs.cache_key }}_image path: | ./linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Debian Package [Generate] run: | /usr/bin/dpkg-gen './linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}' - name: Release Debian Package [Configuration] run: | /usr/bin/echo '${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }}' > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='bookworm'" > './linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to 'bookworm'" /usr/bin/echo "REPOSITORY_COMPONENT='${{ matrix.repository }}'" >> './linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${{ matrix.repository }}'" - name: Release Debian Package [PrivLab Repository] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ needs.build.outputs.linux_version }} tag_name: v${{ needs.build.outputs.linux_version }} files: | linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Release Debian Package [Advanced Package Tool Repository] run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb' /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-image-${{ needs.build.outputs.linux_version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' libc-dev: name: Linux libc Development [Debian Package] needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig repository: main pve8 runs-on: cicd.bookworm steps: - name: Linux libc Development [Action Cache Restore] uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ needs.build.outputs.cache_key }}_libc path: | ./linux-libc-dev - name: Debian Package [Generate] run: | /usr/bin/dpkg-gen './linux-libc-dev' - name: Release Debian Package [Configuration] run: | /usr/bin/echo '${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }}' > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='bookworm'" > './linux-libc-dev.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to 'bookworm'" /usr/bin/echo "REPOSITORY_COMPONENT='${{ matrix.repository }}'" >> './linux-libc-dev.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${{ matrix.repository }}'" - name: Release Debian Package [PrivLab Repository] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ needs.build.outputs.linux_version }} tag_name: v${{ needs.build.outputs.linux_version }} files: | linux-libc-dev.deb - name: Release Debian Package [Advanced Package Tool Repository] run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-libc-dev.deb' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-libc-dev_rpi_${{ needs.build.outputs.linux_version }}.deb' /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-libc-dev.cfg' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-libc-dev_rpi_${{ needs.build.outputs.linux_version }}.cfg' headers-meta: name: Linux Headers [Debian Meta Package] needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt repository: main revision: v8 - defconfig: bcm2712_defconfig image: rpt repository: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve repository: pve8 revision: v8 runs-on: cicd.bookworm steps: - name: Linux Headers (Meta) [Action Cache Restore] uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ needs.build.outputs.cache_key }}_headers-meta path: | ./linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Debian Package [Generate] run: | /usr/bin/dpkg-gen './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}' - name: Release Debian Package [Configuration] run: | /usr/bin/echo '${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }}' > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='bookworm'" > './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to 'bookworm'" /usr/bin/echo "REPOSITORY_COMPONENT='${{ matrix.repository }}'" >> './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${{ matrix.repository }}'" - name: Release Debian Package [PrivLab Repository] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ needs.build.outputs.linux_version }} tag_name: v${{ needs.build.outputs.linux_version }} files: | linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Release Debian Package [Advanced Package Tool Repository] run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}.deb' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ needs.build.outputs.linux_version }}.deb' /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ needs.build.outputs.linux_version }}.cfg' image-meta: name: Linux Image [Debian Meta Package] needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt repository: main revision: v8 - defconfig: bcm2712_defconfig image: rpt repository: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve repository: pve8 revision: v8 runs-on: cicd.bookworm steps: - name: Linux Image (Meta) [Action Cache Restore] uses: actions/cache/restore@v5 with: fail-on-cache-miss: true key: ${{ needs.build.outputs.cache_key }}_image-meta path: | ./linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }} - name: Debian Package [Generate] run: | /usr/bin/dpkg-gen './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}' - name: Release Debian Package [Configuration] run: | /usr/bin/echo '${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }}' > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='bookworm'" > './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to 'bookworm'" /usr/bin/echo "REPOSITORY_COMPONENT='${{ matrix.repository }}'" >> './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${{ matrix.repository }}'" - name: Release Debian Package [PrivLab Repository] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ needs.build.outputs.linux_version }} tag_name: v${{ needs.build.outputs.linux_version }} files: | linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Release Debian Package [Advanced Package Tool Repository] run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}.deb' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ needs.build.outputs.linux_version }}.deb' /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}.cfg' '${{ secrets.REPOSITORY_SSH_USER }}'@'${{ secrets.REPOSITORY_SSH_HOSTNAME }}':'${{ secrets.REPOSITORY_DESTINATION }}/linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ needs.build.outputs.linux_version }}.cfg'