Stable Release Build linux-wsl-stable-6.17.6 #182
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Stable Kernel CI | |
| on: | |
| push: | |
| tags: | |
| - 'linux-wsl-stable-6.17.[0-9]+' | |
| run-name: Stable Release Build ${{ github.ref_name }} | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| container: | |
| image: nevuly/nevuly-dev-base:build | |
| options: --privileged | |
| outputs: | |
| X86_IMAGE_SHA: ${{ steps.gen-sha-256.outputs.X86_IMAGE_SHA }} | |
| X86_ADDON_SHA: ${{ steps.gen-sha-256.outputs.X86_ADDON_SHA }} | |
| ARM64_IMAGE_SHA: ${{ steps.gen-sha-256.outputs.ARM64_IMAGE_SHA }} | |
| ARM64_ADDON_SHA: ${{ steps.gen-sha-256.outputs.ARM64_ADDON_SHA }} | |
| strategy: | |
| matrix: | |
| include: | |
| - arch: x86 | |
| image-name: bzImage-x86_64 | |
| os: ubuntu-24.04 | |
| - arch: arm64 | |
| image-name: Image-arm64 | |
| os: ubuntu-24.04-arm | |
| steps: | |
| - name: Trust Build Directory | |
| run: | | |
| git config --global --add safe.directory /__w/WSL2-Linux-Kernel-Rolling/WSL2-Linux-Kernel-Rolling | |
| - name: Checkout | |
| uses: actions/checkout@main | |
| - name: Download WSL2 Stable Kernel | |
| run: | | |
| git clone https://github.com/Nevuly/WSL2-Linux-Kernel-Rolling.git --depth 1 -b ${{ github.ref_name }} linux | |
| - name: Build WSL2 Stable Kernel | |
| run: | | |
| cd linux | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| make KCONFIG_CONFIG=arch/x86/configs/config-wsl-x86 -j$(echo `nproc` + 1 | bc) | |
| cp arch/x86/boot/bzImage ../${{ matrix.image-name }} | |
| else | |
| make KCONFIG_CONFIG=arch/arm64/configs/config-wsl-arm64 -j$(echo `nproc` + 1 | bc) | |
| cp arch/arm64/boot/Image ../${{ matrix.image-name }} | |
| fi | |
| - name: Generate Kernel Modules | |
| run: | | |
| cd linux | |
| IFS=- read -r var1 var2 var3 version <<< ${{ github.ref_name }} | |
| mkdir -p ${{ matrix.image-name }}-addon_install && make modules_install INSTALL_MOD_PATH=${{ matrix.image-name }}-addon_install | |
| rm -rf ${{ matrix.image-name }}-addon_install/lib/modules/$version-WSL2-STABLE+/build | |
| - name: Generate Kernel Headers and Documents | |
| run: | | |
| cd linux | |
| IFS=- read -r var1 var2 var3 version <<< ${{ github.ref_name }} | |
| export addon_path=${{ matrix.image-name }}-addon_install/lib/modules/$version-WSL2-STABLE+/build | |
| mkdir -p $addon_path | |
| install -Dt "$addon_path" -m644 Makefile Module.symvers System.map vmlinux | |
| install -Dt "$addon_path/kernel" -m644 kernel/Makefile | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| install -Dt "$addon_path/arch/x86" -m644 arch/x86/Makefile | |
| else | |
| install -Dt "$addon_path/arch/arm64" -m644 arch/arm64/Makefile | |
| fi | |
| cp -t "$addon_path" -a scripts | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| install -Dt "$addon_path/tools/objtool" tools/objtool/objtool | |
| install -Dt "$addon_path/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids | |
| fi | |
| cp -t "$addon_path" -a include | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| cp -t "$addon_path/arch/x86" -a arch/x86/include | |
| install -Dt "$addon_path/arch/x86/kernel" -m644 arch/x86/kernel/asm-offsets.s | |
| else | |
| cp -t "$addon_path/arch/arm64" -a arch/arm64/include | |
| install -Dt "$addon_path/arch/arm64/kernel" -m644 arch/arm64/kernel/asm-offsets.s | |
| mkdir -p "$addon_path/arch/arm" | |
| cp -t "$addon_path/arch/arm" -a arch/arm/include | |
| fi | |
| install -Dt "$addon_path/drivers/md" -m644 drivers/md/*.h | |
| install -Dt "$addon_path/net/mac80211" -m644 net/mac80211/*.h | |
| install -Dt "$addon_path/drivers/media/i2c" -m644 drivers/media/i2c/msp3400-driver.h | |
| install -Dt "$addon_path/drivers/media/usb/dvb-usb" -m644 drivers/media/usb/dvb-usb/*.h | |
| install -Dt "$addon_path/drivers/media/dvb-frontends" -m644 drivers/media/dvb-frontends/*.h | |
| install -Dt "$addon_path/drivers/media/tuners" -m644 drivers/media/tuners/*.h | |
| install -Dt "$addon_path/drivers/iio/common/hid-sensors" -m644 drivers/iio/common/hid-sensors/*.h | |
| find . -name 'Kconfig*' -exec install -Dm644 {} "$addon_path/{}" \; | |
| export arch | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| for arch in "$addon_path"/arch/*/; do | |
| [[ $arch = */x86/ ]] && continue | |
| echo "Removing $(basename "$arch")" | |
| rm -r "$arch" | |
| done | |
| else | |
| for arch in "$addon_path"/arch/*/; do | |
| [[ $arch = */arm64/ ]] && continue | |
| echo "Removing $(basename "$arch")" | |
| rm -r "$arch" | |
| done | |
| fi | |
| rm -r $addon_path/Documentation | |
| find -L "$addon_path" -type l -printf 'Removing %P\n' -delete | |
| find -L "$addon_path" -type f -name '*.o' -printf 'Removing %P\n' -delete | |
| export file | |
| export STRIP_SHARED | |
| export STRIP_STATIC | |
| export STRIP_BINARIES | |
| while read -rd '' $file; do | |
| case "$(file -Sib "$file")" in | |
| application/x-sharedlib\;*) | |
| strip -v $STRIP_SHARED $file ;; | |
| application/x-archive\;*) | |
| strip -v $STRIP_STATIC $file ;; | |
| application/x-executable\;*) | |
| strip -v $STRIP_BINARIES $file ;; | |
| application/x-pie-executable\;*) | |
| strip -v $STRIP_SHARED $file ;; | |
| esac | |
| done < <(find "$addon_path" -type f -perm -u+x ! -name vmlinux -print0) | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| strip -v $STRIP_STATIC "$addon_path/vmlinux" | |
| fi | |
| cp -r Documentation $addon_path/Documentation | |
| rm -rf ${{ matrix.image-name }}-addon_install/lib/modules/$version-WSL2-STABLE+/build/${{ matrix.image-name }}-addon_install | |
| - name: Download ZFS | |
| run: | | |
| git clone https://github.com/openzfs/zfs.git --depth 1 zfs | |
| - name: Build ZFS | |
| run: | | |
| cd zfs | |
| ./autogen.sh | |
| ./configure --with-linux="$(pwd)/../linux" --with-linux-obj="$(pwd)/../linux" | |
| make -j$(echo `nproc` + 1 | bc) | |
| - name: Generate ZFS Kernel Module | |
| run: | | |
| IFS=- read -r var1 var2 var3 version <<< ${{ github.ref_name }} | |
| mkdir -p linux/${{ matrix.image-name }}-addon_install/lib/modules/$version-WSL2-STABLE+/extra | |
| find zfs/module -name "*.ko" -exec cp {} linux/${{ matrix.image-name }}-addon_install/lib/modules/$version-WSL2-STABLE+/extra \; | |
| - name: Generate Kernel Addon Package | |
| run: | | |
| IFS=- read -r var1 var2 var3 version <<< ${{ github.ref_name }} | |
| cd linux | |
| sudo ./.github/scripts/gen_modules_vhdx.sh "$PWD/${{ matrix.image-name }}-addon_install/" "$version-WSL2-STABLE+" ${{ matrix.image-name }}-addon.vhdx | |
| mv ${{ matrix.image-name }}-addon.vhdx ../ | |
| - name: Generate SHA-256 Checksum | |
| id: gen-sha-256 | |
| run: | | |
| if [ ${{ matrix.arch }} == "x86" ] | |
| then | |
| read -r x86ImageSHA rest <<< "$(sha256sum ${{ matrix.image-name }})" | |
| read -r x86AddonSHA rest <<< "$(sha256sum ${{ matrix.image-name }}-addon.vhdx)" | |
| echo "X86_IMAGE_SHA=$x86ImageSHA" >> $GITHUB_OUTPUT | |
| echo "X86_ADDON_SHA=$x86AddonSHA" >> $GITHUB_OUTPUT | |
| else | |
| read -r arm64ImageSHA rest <<< "$(sha256sum ${{ matrix.image-name }})" | |
| read -r arm64AddonSHA rest <<< "$(sha256sum ${{ matrix.image-name }}-addon.vhdx)" | |
| echo "ARM64_IMAGE_SHA=$arm64ImageSHA" >> $GITHUB_OUTPUT | |
| echo "ARM64_ADDON_SHA=$arm64AddonSHA" >> $GITHUB_OUTPUT | |
| fi | |
| sha256sum ${{ matrix.image-name }} > ${{ matrix.image-name }}.sha256 | |
| sha256sum ${{ matrix.image-name }}-addon.vhdx > ${{ matrix.image-name }}-addon.vhdx.sha256 | |
| - name: Upload Kernel Images | |
| uses: actions/upload-artifact@main | |
| with: | |
| name: ${{ matrix.image-name }} | |
| path: | | |
| ${{ matrix.image-name }} | |
| ${{ matrix.image-name }}.sha256 | |
| ${{ matrix.image-name }}-addon.vhdx | |
| ${{ matrix.image-name }}-addon.vhdx.sha256 | |
| release: | |
| runs-on: ubuntu-latest | |
| needs: build | |
| env: | |
| X86_IMAGE_SHA: ${{ needs.build.outputs.X86_IMAGE_SHA }} | |
| X86_ADDON_SHA: ${{ needs.build.outputs.X86_ADDON_SHA }} | |
| ARM64_IMAGE_SHA: ${{ needs.build.outputs.ARM64_IMAGE_SHA }} | |
| ARM64_ADDON_SHA: ${{ needs.build.outputs.ARM64_ADDON_SHA }} | |
| steps: | |
| - uses: actions/checkout@main | |
| - uses: actions/download-artifact@main | |
| with: | |
| path: release_images/ | |
| - name: Release Kernel | |
| uses: softprops/action-gh-release@master | |
| with: | |
| name: ${{ github.ref_name }} | |
| tag_name: ${{ github.ref_name }} | |
| body: | | |
| > [!WARNING] | |
| > ARM64 kernel has not been tested! | |
| > | |
| > If you have any issues, please leave an issue on the [issue tab](https://github.com/Nevuly/WSL2-Rolling-Kernel-Issue/issues)! | |
| ### **Hash Information** | |
| | File Name | SHA-256 Checksum | | |
| |:--------------:|:------:| | |
| | bzImage-x86_64 | ${{ env.X86_IMAGE_SHA }} | | |
| | bzImage-x86_64-addon.vhdx | ${{ env.X86_ADDON_SHA }} | | |
| | Image-arm64 | ${{ env.ARM64_IMAGE_SHA }} | | |
| | Image-arm64-addon.vhdx | ${{ env.ARM64_ADDON_SHA }} | | |
| ### **How to install this kernel or kernel addon package in WSL2?** | |
| - Please see this [wiki](https://github.com/Nevuly/WSL2-Linux-Kernel-Rolling/wiki/Install-Instructions). | |
| **This kernel built on ArchLinux.** | |
| files: | | |
| release_images/*/* | |
| token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} | |
| fail_on_unmatched_files: true |