name: Raspberry Pi Linux Kernel on: push: branches: - release jobs: sources: name: Raspberry Pi Linux Sources runs-on: cicd.any steps: - name: Linux Sources [Clone] run: | /usr/bin/git clone --verbose --depth='1' 'https://github.com/raspberrypi/linux' - name: Environment [Version] 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 "VERSION=${VERSION}" >> './.env' /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Environment [Artifact Upload] uses: christopherHX/gitea-upload-artifact@v4 with: name: .env path: ./.env if-no-files-found: error overwrite: true - name: Linux Sources [Archive] env: VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/tar --create --directory="./linux" --file="./linux-sources-${VERSION}.tar.gz" --gzip '.' --verbose - name: Linux Sources [Artifact Upload] uses: christopherHX/gitea-upload-artifact@v4 with: name: linux-sources-${{ steps.environment.outputs.version }}.tar.gz path: ./linux-sources-${{ steps.environment.outputs.version }}.tar.gz if-no-files-found: error compression-level: 0 overwrite: true build: name: Raspberry Pi Linux Kernel needs: - sources strategy: matrix: include: - defconfig: bcm2711_defconfig cicd: cicd.bookworm codename: bookworm gcc: aarch64-linux-gnu-gcc-12 image: rpt revision: v8 - defconfig: bcm2711_defconfig cicd: cicd.trixie codename: trixie gcc: aarch64-linux-gnu-gcc-14 image: rpt revision: v8 - defconfig: bcm2712_defconfig cicd: cicd.bookworm codename: bookworm gcc: aarch64-linux-gnu-gcc-12 image: rpt revision: 2712 - defconfig: bcm2712_defconfig cicd: cicd.trixie codename: trixie gcc: aarch64-linux-gnu-gcc-14 image: rpt revision: 2712 - defconfig: bcm2711_pve_defconfig cicd: cicd.bookworm codename: bookworm gcc: aarch64-linux-gnu-gcc-12 image: pve revision: v8 - defconfig: bcm2711_pve_defconfig cicd: cicd.trixie codename: trixie gcc: aarch64-linux-gnu-gcc-14 image: pve revision: v8 runs-on: ${{ matrix.cicd }} steps: - name: Repository [Clone] uses: https://github.com/actions/checkout@v6 - name: Environment [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: .env - name: Environment [Version] id: environment run: | UNITS=$(/usr/bin/nproc --all) /usr/bin/echo "UNITS=${UNITS}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'UNITS' to '${UNITS}'" VERSION=$(/usr/bin/awk -F '=' '/VERSION/{print $2}' './.env') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Sources [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: linux-sources-${{ steps.environment.outputs.version }}.tar.gz - name: Linux Sources [Extract] env: VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/install --directory --verbose './linux-sources' /usr/bin/tar --directory="./linux-sources" --extract --gzip --file="./linux-sources-${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}" "./linux-sources/arch/arm64/configs/${DEFCONFIG}" - name: Linux Sources [Configuration] env: DEFCONFIG: ${{ matrix.defconfig }} GCC: ${{ matrix.gcc }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} UNITS: ${{ steps.environment.outputs.units }} run: | /usr/bin/make --directory='./linux-sources' --jobs="${UNITS}" CC="${GCC}" "${DEFCONFIG}" ./linux-sources/scripts/config --file './linux-sources/.config' --set-str CONFIG_BUILD_SALT +${IMAGE}-rpi-${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 +${IMAGE}-rpi-${REVISION} - name: Linux Sources [Build] env: GCC: ${{ matrix.gcc }} UNITS: ${{ steps.environment.outputs.units }} run: | /usr/bin/make --directory='./linux-sources' --jobs="${UNITS}" CC="${GCC}" LOCALVERSION='' Image.gz modules dtbs - name: Linux Sources Debian Packages [Build] env: GCC: ${{ matrix.gcc }} UNITS: ${{ steps.environment.outputs.units }} run: | /usr/bin/make --directory='./linux-sources' --jobs="${UNITS}" CC="${GCC}" LOCALVERSION='' bindeb-pkg - name: Linux Image [Build] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/mv --verbose './linux-image' "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}" /usr/bin/sed --in-place --expression="s/CICD_CODENAME/${CODENAME}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/chmod --verbose '0755' "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/chmod --verbose '0755' "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postrm" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postrm" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postrm" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postrm" /usr/bin/chmod --verbose '0755' "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/preinst" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/preinst" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/preinst" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/preinst" /usr/bin/chmod --verbose '0755' "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/prerm" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/prerm" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/prerm" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/prerm" /usr/bin/mv --verbose "./linux-sources/debian/linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}/boot" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/boot" /usr/bin/mv --verbose "./linux-sources/debian/linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}/lib" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/lib" /usr/bin/install --directory --verbose "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/usr" /usr/bin/mv --verbose "./linux-sources/debian/linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}/usr/lib" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/usr/lib" /usr/bin/mv --verbose './linux-sources/arch/arm64/boot/dts/overlays/README' "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/usr/lib/linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}/overlays/README" - name: Linux Image [Archive] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/tar --create --directory="./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}" --file="./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --gzip '.' --verbose - name: Linux Image [Artifact Upload] uses: christopherHX/gitea-upload-artifact@v4 with: name: linux-image-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz path: ./linux-image-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz if-no-files-found: error compression-level: 0 overwrite: true - name: Linux Image Meta [Build] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/mv --verbose './linux-image-meta' "./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}" /usr/bin/sed --in-place --expression="s/CICD_CODENAME/${CODENAME}/g" "./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" - name: Linux Image Meta [Archive] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/tar --create --directory="./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}" --file="./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --gzip '.' --verbose - name: Linux Image Meta [Artifact Upload] uses: christopherHX/gitea-upload-artifact@v4 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 compression-level: 0 overwrite: true - name: Linux Headers [Build] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/mv --verbose './linux-headers' "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}" /usr/bin/sed --in-place --expression="s/CICD_CODENAME/${CODENAME}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/chmod --verbose '0755' "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/postinst" /usr/bin/mv --verbose "./linux-sources/debian/linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}/lib" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/lib" /usr/bin/install --directory --verbose "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/usr" /usr/bin/mv --verbose "./linux-sources/debian/linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}/usr/src" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/usr/src" /usr/bin/mv --verbose './linux-sources/.config' "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}/usr/src/linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}/.config" - name: Linux Headers [Archive] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/tar --create --directory="./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}" --file="./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --gzip '.' --verbose - name: Linux Headers [Artifact Upload] uses: christopherHX/gitea-upload-artifact@v4 with: name: linux-headers-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz path: ./linux-headers-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz if-no-files-found: error compression-level: 0 overwrite: true - name: Linux Headers Meta [Build] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/mv --verbose './linux-headers-meta' "./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}" /usr/bin/sed --in-place --expression="s/CICD_CODENAME/${CODENAME}/g" "./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_IMAGE/${IMAGE}/g" "./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_REVISION/${REVISION}/g" "./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}/DEBIAN/control" - name: Linux Headers Meta [Archive] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/tar --create --directory="./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}" --file="./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --gzip '.' --verbose - name: Linux Headers Meta [Artifact Upload] uses: christopherHX/gitea-upload-artifact@v4 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 compression-level: 0 overwrite: true - name: Linux libc Development [Build] if: matrix.defconfig == 'bcm2711_defconfig' env: CODENAME: ${{ matrix.codename }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/mv --verbose './linux-libc-dev' "./linux-libc-dev_${CODENAME}" /usr/bin/install --directory --verbose "./linux-libc-dev_${CODENAME}/usr" /usr/bin/sed --in-place --expression="s/CICD_CODENAME/${CODENAME}/g" "./linux-libc-dev_${CODENAME}/DEBIAN/control" /usr/bin/sed --in-place --expression="s/CICD_VERSION/${VERSION}/g" "./linux-libc-dev_${CODENAME}/DEBIAN/control" /usr/bin/mv --verbose './linux-sources/debian/linux-libc-dev/usr/include' "./linux-libc-dev_${CODENAME}/usr/include" - name: Linux libc Development [Archive] if: matrix.defconfig == 'bcm2711_defconfig' env: CODENAME: ${{ matrix.codename }} run: | /usr/bin/tar --create --directory="./linux-libc-dev_${CODENAME}" --file="./linux-libc-dev_${CODENAME}.tar.gz" --gzip '.' --verbose - name: Linux libc Development [Artifact Upload] if: matrix.defconfig == 'bcm2711_defconfig' uses: christopherHX/gitea-upload-artifact@v4 with: name: linux-libc-dev_${{ matrix.codename }}.tar.gz path: ./linux-libc-dev_${{ matrix.codename }}.tar.gz if-no-files-found: error compression-level: 0 overwrite: true image: name: Raspberry Pi Linux Image Debian Package needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig codename: bookworm component: main image: rpt revision: v8 - defconfig: bcm2711_defconfig codename: trixie component: main image: rpt revision: v8 - defconfig: bcm2712_defconfig codename: bookworm component: main image: rpt revision: 2712 - defconfig: bcm2712_defconfig codename: trixie component: main image: rpt revision: 2712 - defconfig: bcm2711_pve_defconfig codename: bookworm component: pve8 image: pve revision: v8 - defconfig: bcm2711_pve_defconfig codename: trixie component: pve9 image: pve revision: v8 runs-on: cicd.any steps: - name: Environment [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: .env - name: Environment [Version] id: environment run: | VERSION=$(/usr/bin/awk -F '=' '/VERSION/{print $2}' './.env') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Image [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: linux-image-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz - name: Linux Image [Extract] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/install --directory --verbose "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}" /usr/bin/tar --directory="./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}" --extract --gzip --file="./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --verbose - name: Debian Package [Build] env: IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/dpkg-gen "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}" - name: Debian Repository [Prepare] env: CODENAME: ${{ matrix.codename }} COMPONENT: ${{ matrix.component }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_PRIVATE_KEY: ${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/echo "${REPOSITORY_SSH_PRIVATE_KEY}" > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='${CODENAME}'" > "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to '${CODENAME}'" /usr/bin/echo "REPOSITORY_COMPONENT='${COMPONENT}'" >> "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${COMPONENT}'" - name: Release Package [Publish] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ steps.environment.outputs.version }}~${{ matrix.codename }} tag_name: v${{ steps.environment.outputs.version }}-${{ matrix.codename }} files: | linux-image-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Debian Package [Debian Repository Publish] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_HOSTNAME: ${{ secrets.REPOSITORY_SSH_HOSTNAME }} REPOSITORY_SSH_USER: ${{ secrets.REPOSITORY_SSH_USER }} REPOSITORY_DESTINATION: ${{ secrets.REPOSITORY_DESTINATION }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}.deb" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.deb" /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}.cfg" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-image-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.cfg" image-meta: name: Raspberry Pi Linux Image Debian Meta Package needs: - image strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt codename: bookworm component: main revision: v8 - defconfig: bcm2711_defconfig image: rpt codename: trixie component: main revision: v8 - defconfig: bcm2712_defconfig image: rpt codename: bookworm component: main revision: 2712 - defconfig: bcm2712_defconfig image: rpt codename: trixie component: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve codename: bookworm component: pve8 revision: v8 - defconfig: bcm2711_pve_defconfig image: pve codename: trixie component: pve9 revision: v8 runs-on: cicd.any steps: - name: Environment [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: .env - name: Environment [Version] id: environment run: | VERSION=$(/usr/bin/awk -F '=' '/VERSION/{print $2}' './.env') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Image Meta [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz - name: Linux Image Meta [Extract] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/install --directory --verbose "./linux-image-${IMAGE}-rpi-${REVISION}" /usr/bin/tar --directory="./linux-image-${IMAGE}-rpi-${REVISION}" --extract --gzip --file="./linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --verbose - name: Debian Meta Package [Build] env: IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} run: | /usr/bin/dpkg-gen "./linux-image-${IMAGE}-rpi-${REVISION}" - name: Debian Repository [Prepare] env: CODENAME: ${{ matrix.codename }} COMPONENT: ${{ matrix.component }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_PRIVATE_KEY: ${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }} REVISION: ${{ matrix.revision }} run: | /usr/bin/echo "${REPOSITORY_SSH_PRIVATE_KEY}" > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='${CODENAME}'" > "./linux-image-${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to '${CODENAME}'" /usr/bin/echo "REPOSITORY_COMPONENT='${COMPONENT}'" >> "./linux-image-${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${COMPONENT}'" - name: Release Package [Publish] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ steps.environment.outputs.version }}~${{ matrix.codename }} tag_name: v${{ steps.environment.outputs.version }}-${{ matrix.codename }} files: | linux-image-${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Debian Meta Package [Debian Repository Publish] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_HOSTNAME: ${{ secrets.REPOSITORY_SSH_HOSTNAME }} REPOSITORY_SSH_USER: ${{ secrets.REPOSITORY_SSH_USER }} REPOSITORY_DESTINATION: ${{ secrets.REPOSITORY_DESTINATION }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-image-${IMAGE}-rpi-${REVISION}.deb" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}.deb" /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-image-${IMAGE}-rpi-${REVISION}.cfg" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-image-${IMAGE}-rpi-${REVISION}_${CODENAME}.cfg" headers: name: Raspberry Pi Linux Headers Debian Package needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt codename: bookworm component: main revision: v8 - defconfig: bcm2711_defconfig image: rpt codename: trixie component: main revision: v8 - defconfig: bcm2712_defconfig image: rpt codename: bookworm component: main revision: 2712 - defconfig: bcm2712_defconfig image: rpt codename: trixie component: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve codename: bookworm component: pve8 revision: v8 - defconfig: bcm2711_pve_defconfig image: pve codename: trixie component: pve9 revision: v8 runs-on: cicd.any steps: - name: Environment [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: .env - name: Environment [Version] id: environment run: | VERSION=$(/usr/bin/awk -F '=' '/VERSION/{print $2}' './.env') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Headers [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: linux-headers-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz - name: Linux Headers [Extract] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/install --directory --verbose "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}" /usr/bin/tar --directory="./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}" --extract --gzip --file="./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --verbose - name: Debian Package [Build] env: IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/dpkg-gen "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}" - name: Debian Repository [Prepare] env: CODENAME: ${{ matrix.codename }} COMPONENT: ${{ matrix.component }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_PRIVATE_KEY: ${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/echo "${REPOSITORY_SSH_PRIVATE_KEY}" > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='${CODENAME}'" > "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to '${CODENAME}'" /usr/bin/echo "REPOSITORY_COMPONENT='${COMPONENT}'" >> "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${COMPONENT}'" - name: Release Package [Publish] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ steps.environment.outputs.version }}~${{ matrix.codename }} tag_name: v${{ steps.environment.outputs.version }}-${{ matrix.codename }} files: | linux-headers-${{ steps.environment.outputs.version }}+${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Debian Package [Debian Repository Publish] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_HOSTNAME: ${{ secrets.REPOSITORY_SSH_HOSTNAME }} REPOSITORY_SSH_USER: ${{ secrets.REPOSITORY_SSH_USER }} REPOSITORY_DESTINATION: ${{ secrets.REPOSITORY_DESTINATION }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}.deb" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.deb" /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}.cfg" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-headers-${VERSION}+${IMAGE}-rpi-${REVISION}_${CODENAME}.cfg" headers-meta: name: Raspberry Pi Linux Headers Debian Meta Package needs: - headers strategy: matrix: include: - defconfig: bcm2711_defconfig image: rpt codename: bookworm component: main revision: v8 - defconfig: bcm2711_defconfig image: rpt codename: trixie component: main revision: v8 - defconfig: bcm2712_defconfig image: rpt codename: bookworm component: main revision: 2712 - defconfig: bcm2712_defconfig image: rpt codename: trixie component: main revision: 2712 - defconfig: bcm2711_pve_defconfig image: pve codename: bookworm component: pve8 revision: v8 - defconfig: bcm2711_pve_defconfig image: pve codename: trixie component: pve9 revision: v8 runs-on: cicd.any steps: - name: Environment [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: .env - name: Environment [Version] id: environment run: | VERSION=$(/usr/bin/awk -F '=' '/VERSION/{print $2}' './.env') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Headers Meta [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}_${{ matrix.codename }}.tar.gz - name: Linux Headers Meta [Extract] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/install --directory --verbose "./linux-headers-${IMAGE}-rpi-${REVISION}" /usr/bin/tar --directory="./linux-headers-${IMAGE}-rpi-${REVISION}" --extract --gzip --file="./linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}.tar.gz" --verbose - name: Debian Meta Package [Build] env: IMAGE: ${{ matrix.image }} REVISION: ${{ matrix.revision }} run: | /usr/bin/dpkg-gen "./linux-headers-${IMAGE}-rpi-${REVISION}" - name: Debian Repository [Prepare] env: CODENAME: ${{ matrix.codename }} COMPONENT: ${{ matrix.component }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_PRIVATE_KEY: ${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }} REVISION: ${{ matrix.revision }} run: | /usr/bin/echo "${REPOSITORY_SSH_PRIVATE_KEY}" > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='${CODENAME}'" > "./linux-headers-${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to '${CODENAME}'" /usr/bin/echo "REPOSITORY_COMPONENT='${COMPONENT}'" >> "./linux-headers-${IMAGE}-rpi-${REVISION}.cfg" /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${COMPONENT}'" - name: Release Package [Publish] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ steps.environment.outputs.version }}~${{ matrix.codename }} tag_name: v${{ steps.environment.outputs.version }}-${{ matrix.codename }} files: | linux-headers-${{ matrix.image }}-rpi-${{ matrix.revision }}.deb - name: Debian Meta Package [Debian Repository Publish] env: CODENAME: ${{ matrix.codename }} IMAGE: ${{ matrix.image }} REPOSITORY_SSH_HOSTNAME: ${{ secrets.REPOSITORY_SSH_HOSTNAME }} REPOSITORY_SSH_USER: ${{ secrets.REPOSITORY_SSH_USER }} REPOSITORY_DESTINATION: ${{ secrets.REPOSITORY_DESTINATION }} REVISION: ${{ matrix.revision }} VERSION: ${{ steps.environment.outputs.version }} run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-headers-${IMAGE}-rpi-${REVISION}.deb" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}.deb" /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" "./linux-headers-${IMAGE}-rpi-${REVISION}.cfg" "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-headers-${IMAGE}-rpi-${REVISION}_${CODENAME}.cfg" libc-dev: name: Raspberry Pi Linux libc Development Debian Package needs: - build strategy: matrix: include: - defconfig: bcm2711_defconfig codename: bookworm component: main pve8 - defconfig: bcm2711_defconfig codename: trixie component: main pve9 runs-on: cicd.any steps: - name: Environment [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: .env - name: Environment [Version] id: environment run: | VERSION=$(/usr/bin/awk -F '=' '/VERSION/{print $2}' './.env') /usr/bin/echo "VERSION=${VERSION}" >> "${GITHUB_OUTPUT}" /usr/bin/echo "Set Variable 'VERSION' to '${VERSION}'" - name: Linux Linux libc Development [Artifact Download] uses: christopherhx/gitea-download-artifact@v4 with: name: linux-libc-dev_${{ matrix.codename }}.tar.gz - name: Linux Linux libc Development [Extract] env: CODENAME: ${{ matrix.codename }} run: | /usr/bin/install --directory --verbose './linux-libc-dev' /usr/bin/tar --directory='./linux-libc-dev' --extract --gzip --file="./linux-libc-dev_${CODENAME}.tar.gz" --verbose - name: Debian Package [Build] run: | /usr/bin/dpkg-gen './linux-libc-dev' - name: Debian Repository [Prepare] env: CODENAME: ${{ matrix.codename }} COMPONENT: ${{ matrix.component }} REPOSITORY_SSH_PRIVATE_KEY: ${{ secrets.REPOSITORY_SSH_PRIVATE_KEY }} run: | /usr/bin/echo "${REPOSITORY_SSH_PRIVATE_KEY}" > './id_ed25519' /usr/bin/chmod --quiet '0400' './id_ed25519' /usr/bin/echo "REPOSITORY_CODENAME='${CODENAME}'" > './linux-libc-dev.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_CODENAME' to '${CODENAME}'" /usr/bin/echo "REPOSITORY_COMPONENT='${COMPONENT}'" >> './linux-libc-dev.cfg' /usr/bin/echo "Set Configuration 'REPOSITORY_COMPONENT' to '${COMPONENT}'" - name: Release Package [Publish] uses: https://gitea.com/actions/gitea-release-action@v1 with: name: Raspberry Pi Linux Kernel v${{ steps.environment.outputs.version }}~${{ matrix.codename }} tag_name: v${{ steps.environment.outputs.version }}-${{ matrix.codename }} files: | linux-libc-dev.deb - name: Debian Package [Debian Repository Publish] env: CODENAME: ${{ matrix.codename }} REPOSITORY_SSH_HOSTNAME: ${{ secrets.REPOSITORY_SSH_HOSTNAME }} REPOSITORY_SSH_USER: ${{ secrets.REPOSITORY_SSH_USER }} REPOSITORY_DESTINATION: ${{ secrets.REPOSITORY_DESTINATION }} run: | /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-libc-dev.deb' "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-libc-dev_${CODENAME}.deb" /usr/bin/scp -4 -B -C -i './id_ed25519' -o 'LogLevel QUIET' -o 'StrictHostKeyChecking no' -o "UserKnownHostsFile '/dev/null'" './linux-libc-dev.cfg' "${REPOSITORY_SSH_USER}"@"${REPOSITORY_SSH_HOSTNAME}":"${REPOSITORY_DESTINATION}/linux-libc-dev_${CODENAME}.cfg"