Skip to content

Commit 3745bd8

Browse files
committed
Build the latest LTS kernel versions in CI
1 parent 8479ae7 commit 3745bd8

File tree

2 files changed

+46
-7
lines changed

2 files changed

+46
-7
lines changed

.github/workflows/build.yml

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
matrix:
99
# TODO: Add 20.04
1010
os: [ubuntu-22.04]
11-
kernel: [{ack: 0, version: 5.10.164}, {ack: 0, version: 5.15.89}, {ack: 0, version: 6.1.7}, {ack: 1, version: android13-5.10-lts}]
11+
kernel: [{ack: 0, version: 5.10.y}, {ack: 0, version: 5.15.y}, {ack: 0, version: 6.1.y}, {ack: 1, version: android13-5.10-lts}]
1212
arch: [arm64, x86_64]
1313
runs-on: ${{ matrix.os }}
1414
timeout-minutes: 100
@@ -49,11 +49,28 @@ jobs:
4949
echo "KERNEL_TYPE=$KERNEL_TYPE" >> $GITHUB_OUTPUT
5050
echo "KERNEL_IMAGE=$KERNEL_IMAGE" >> $GITHUB_OUTPUT
5151
52+
- name: Get real kernel version
53+
run: |
54+
LINUX_URL=https://cdn.kernel.org/pub/linux/kernel
55+
VERSION="${{ matrix.kernel.version }}"
56+
first_char=${VERSION:0:1}
57+
last_char=${VERSION: -1:1}
58+
if [ $last_char == y ]; then
59+
major_minor=${VERSION: 0:-1}
60+
VERSION=$(curl -s $LINUX_URL/v${first_char}.x/ \
61+
| sed -e 's/<[^>]*>//g' \
62+
| grep -oP "linux-${major_minor}[0-9]+" \
63+
| sort -r -V \
64+
| head -n1 \
65+
| cut -d '-' -f2)
66+
fi
67+
echo "VERSION=$VERSION" >> $GITHUB_ENV
68+
5269
- name: Cache kernel image
5370
id: cache-kernel
5471
uses: actions/cache@v3
5572
with:
56-
key: ${{ matrix.kernel.version }}-${{ matrix.arch }}
73+
key: ${{ env.VERSION }}-${{ matrix.arch }}
5774
path: |
5875
${{ steps.vars.outputs.KERNEL_IMAGE }}
5976
${{ steps.vars.outputs.OUT_DIR }}/vmlinux
@@ -68,11 +85,11 @@ jobs:
6885
os: ${{ matrix.os }}
6986
arch: ${{ matrix.arch }}
7087
ack: ${{ matrix.kernel.ack }}
71-
kernel-version: ${{ matrix.kernel.version }}
88+
kernel-version: ${{ env.VERSION }}
7289

7390
- name: Rename kernel images
7491
run: |
75-
SUFFIX=${{ steps.vars.outputs.KERNEL_TYPE }}-${{ matrix.kernel.version }}-${{ matrix.arch }}
92+
SUFFIX=${{ steps.vars.outputs.KERNEL_TYPE }}-${{ env.VERSION }}-${{ matrix.arch }}
7693
cp ${{ steps.vars.outputs.KERNEL_IMAGE }} ${{ steps.vars.outputs.KERNEL_IMAGE }}-$SUFFIX
7794
cp ${{ steps.vars.outputs.OUT_DIR }}/vmlinux ${{ steps.vars.outputs.OUT_DIR }}/vmlinux-$SUFFIX
7895
@@ -95,7 +112,7 @@ jobs:
95112
strategy:
96113
fail-fast: false
97114
matrix:
98-
kernel: [{ack: 0, version: 5.10.164}, {ack: 0, version: 5.15.89}, {ack: 0, version: 6.1.7}, {ack: 1, version: android13-5.10-lts}]
115+
kernel: [{ack: 0, version: 5.10.y}, {ack: 0, version: 5.15.y}, {ack: 0, version: 6.1.y}, {ack: 1, version: android13-5.10-lts}]
99116
arch: [arm64, x86_64]
100117
runs-on: ubuntu-22.04
101118
env:
@@ -117,6 +134,23 @@ jobs:
117134
shell: bash
118135
run: sudo apt update && sudo apt install -y qemu-system-arm
119136

137+
- name: Get real kernel version
138+
run: |
139+
LINUX_URL=https://cdn.kernel.org/pub/linux/kernel
140+
VERSION="${{ matrix.kernel.version }}"
141+
first_char=${VERSION:0:1}
142+
last_char=${VERSION: -1:1}
143+
if [ $last_char == y ]; then
144+
major_minor=${VERSION: 0:-1}
145+
VERSION=$(curl -s $LINUX_URL/v${first_char}.x/ \
146+
| sed -e 's/<[^>]*>//g' \
147+
| grep -oP "linux-${major_minor}[0-9]+" \
148+
| sort -r -V \
149+
| head -n1 \
150+
| cut -d '-' -f2)
151+
fi
152+
echo "VERSION=$VERSION" >> $GITHUB_ENV
153+
120154
- name: Set output variables
121155
id: vars
122156
run: |
@@ -128,7 +162,7 @@ jobs:
128162
KERNEL_TYPE=ack
129163
fi
130164
131-
SUFFIX=$KERNEL_TYPE-${{ matrix.kernel.version }}-${{ matrix.arch }}
165+
SUFFIX=$KERNEL_TYPE-${{ env.VERSION }}-${{ matrix.arch }}
132166
133167
if [ $ARCH == x86_64 ]; then
134168
IMAGE_NAME=bzImage-$SUFFIX

scripts/download_linux.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ if [ $ACK -eq 0 ]; then
2828
last_char=${VERSION: -1:1}
2929
if [ $last_char == y ]; then
3030
major_minor=${VERSION: 0:-1}
31-
VERSION=$(curl -s $LINUX_URL/v${first_char}.x/ | sed -e 's/<[^>]*>//g' | grep -oP "linux-${major_minor}[0-9]+" | sort -r -V | head -n1 | cut -d '-' -f2)
31+
VERSION=$(curl -s $LINUX_URL/v${first_char}.x/ \
32+
| sed -e 's/<[^>]*>//g' \
33+
| grep -oP "linux-${major_minor}[0-9]+" \
34+
| sort -r -V \
35+
| head -n1 \
36+
| cut -d '-' -f2)
3237
fi
3338

3439
echo "Downloading kernel version $VERSION"

0 commit comments

Comments
 (0)