Skip to content

Commit 0143cb0

Browse files
committed
Publish kernel header files
1 parent 7dee9ab commit 0143cb0

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

.github/workflows/release.yaml

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,28 @@ jobs:
2020
run: ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make ch_defconfig
2121
- name: Build (aarch64)
2222
run: ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make Image.gz -j `nproc`
23+
- name: Package kernel headers (aarch64)
24+
run: |
25+
KVER=$(ARCH=arm64 make -s kernelrelease)
26+
HEADERS_DIR="$(pwd)/kernel-headers-arm64/usr/src/linux-headers-${KVER}"
27+
28+
# Use the kernel's built-in script via make run-command to ensure proper env vars
29+
mkdir -p "${HEADERS_DIR}"
30+
ARCH=arm64 make run-command KBUILD_RUN_COMMAND="\${srctree}/scripts/package/install-extmod-build ${HEADERS_DIR}"
31+
32+
# Add System.map and .config
33+
cp System.map "${HEADERS_DIR}/"
34+
cp .config "${HEADERS_DIR}/"
35+
36+
# Create the standard module build symlink structure
37+
mkdir -p "kernel-headers-arm64/lib/modules/${KVER}"
38+
ln -s "/usr/src/linux-headers-${KVER}" "kernel-headers-arm64/lib/modules/${KVER}/build"
39+
40+
# Package it
41+
tar czf kernel-headers-aarch64.tar.gz -C kernel-headers-arm64 .
42+
43+
echo "Kernel headers packaged for ${KVER} (aarch64):"
44+
du -sh kernel-headers-aarch64.tar.gz
2345
- name: Configure (riscv64)
2446
run: ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- make ch_defconfig
2547
- name: Build (riscv64)
@@ -30,6 +52,28 @@ jobs:
3052
run: CFLAGS="-Wa,-mx86-used-note=no" make bzImage -j `nproc`
3153
- name: Build kernel modules (x86-64)
3254
run: make modules -j `nproc`
55+
- name: Package kernel headers (x86-64)
56+
run: |
57+
KVER=$(make -s kernelrelease)
58+
HEADERS_DIR="$(pwd)/kernel-headers/usr/src/linux-headers-${KVER}"
59+
60+
# Use the kernel's built-in script via make run-command to ensure proper env vars
61+
mkdir -p "${HEADERS_DIR}"
62+
make run-command KBUILD_RUN_COMMAND="\${srctree}/scripts/package/install-extmod-build ${HEADERS_DIR}"
63+
64+
# Add System.map and .config (useful for debugging and some build scenarios)
65+
cp System.map "${HEADERS_DIR}/"
66+
cp .config "${HEADERS_DIR}/"
67+
68+
# Create the standard module build symlink structure
69+
mkdir -p "kernel-headers/lib/modules/${KVER}"
70+
ln -s "/usr/src/linux-headers-${KVER}" "kernel-headers/lib/modules/${KVER}/build"
71+
72+
# Package it
73+
tar czf kernel-headers-x86_64.tar.gz -C kernel-headers .
74+
75+
echo "Kernel headers packaged for ${KVER}:"
76+
du -sh kernel-headers-x86_64.tar.gz
3377
- name: Clone NVIDIA open-gpu-kernel-modules
3478
run: git clone --depth 1 --branch 570.86.16 https://github.com/NVIDIA/open-gpu-kernel-modules.git
3579
- name: Build NVIDIA modules (x86-64)
@@ -139,6 +183,24 @@ jobs:
139183
asset_path: nvidia-modules-x86_64.tar.gz
140184
asset_name: nvidia-modules-x86_64.tar.gz
141185
asset_content_type: application/gzip
186+
- name: Upload kernel headers for x86_64
187+
uses: actions/upload-release-asset@v1
188+
env:
189+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
190+
with:
191+
upload_url: ${{ steps.create_release.outputs.upload_url }}
192+
asset_path: kernel-headers-x86_64.tar.gz
193+
asset_name: kernel-headers-x86_64.tar.gz
194+
asset_content_type: application/gzip
195+
- name: Upload kernel headers for aarch64
196+
uses: actions/upload-release-asset@v1
197+
env:
198+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
199+
with:
200+
upload_url: ${{ steps.create_release.outputs.upload_url }}
201+
asset_path: kernel-headers-aarch64.tar.gz
202+
asset_name: kernel-headers-aarch64.tar.gz
203+
asset_content_type: application/gzip
142204
- name: Upload NVIDIA driver libraries for x86_64
143205
uses: actions/upload-release-asset@v1
144206
env:

0 commit comments

Comments
 (0)