@@ -4,17 +4,27 @@ on: [push]
44permissions :
55 contents : read
66 actions : read
7+ packages : read
78
89jobs :
910 build :
10- name : Build x86_64
11+ name : Build kernel
1112 runs-on : kernel-build
1213
1314 steps :
14- - name : Checkout code
15+ - name : Checkout kernel source
1516 uses : actions/checkout@v4
1617 with :
1718 fetch-depth : 1
19+ path : kernel-src-tree
20+
21+ - name : Checkout kernel-container-build (test branch)
22+ uses : actions/checkout@v4
23+ with :
24+ repository : ctrliq/kernel-container-build
25+ ref : test-stage-separation
26+ path : kernel-container-build
27+ token : ${{ secrets.PRIVATE_REPO_ACCESS_TOKEN }}
1828
1929 # Host deps + KVM / FUSE validation
2030 - name : Install host dependencies & verify KVM/FUSE
3040 sudo chmod 0666 /dev/kvm
3141 fi
3242
33- # Kernel build inside CIQ builder
43+ # Kernel build inside CIQ builder (build only, no test)
3444 - name : Build kernel inside CIQ builder container
3545 run : |
3646 set -euxo pipefail
@@ -41,11 +51,12 @@ jobs:
4151 --privileged \
4252 --device=/dev/fuse \
4353 $([ -e /dev/kvm ] && echo "--device=/dev/kvm") \
44- -v "$PWD":/src \
54+ -v "$PWD/kernel-src-tree ":/src \
4555 -v "$PWD/output":/output \
56+ -v "$PWD/kernel-container-build/build-container":/usr/local/build-scripts:ro \
4657 --security-opt label=disable \
4758 pulp.prod.ciq.dev/ciq/cicd/lts-images/builder \
48- build_kernel.sh -c lts-9.2-kernel-builder 2>&1 | tee output/kernel-build.log
59+ /usr/local/build-scripts/ build_kernel.sh -c lts-9.2-kernel-builder 2>&1 | tee output/kernel-build.log
4960 sudo dmesg
5061
5162 # Upload kernel compilation logs
@@ -57,24 +68,121 @@ jobs:
5768 path : output/kernel-build.log
5869 retention-days : 7
5970
60- # Upload kselftest logs
61- - name : Upload kselftest logs
71+ # Upload qcow2 image for next stages
72+ - name : Upload qcow2 image
6273 uses : actions/upload-artifact@v4
6374 if : always()
6475 with :
65- name : kselftest-logs -x86_64
76+ name : kernel-qcow2-image -x86_64
6677 path : |
67- output/kselftests-*.log
68- output/dmesg-*.log
78+ output/*.qcow2
79+ output/last_build_image.txt
6980 retention-days : 7
7081
71- # Upload qcow2 image
72- - name : Upload qcow2 image
82+ boot :
83+ name : Boot verification
84+ runs-on : kernel-build
85+ needs : build
86+
87+ steps :
88+ - name : Checkout kernel-container-build (test branch)
89+ uses : actions/checkout@v4
90+ with :
91+ repository : ctrliq/kernel-container-build
92+ ref : test-stage-separation
93+ path : kernel-container-build
94+ token : ${{ secrets.PRIVATE_REPO_ACCESS_TOKEN }}
95+
96+ - name : Install host dependencies
97+ run : |
98+ set -euxo pipefail
99+ sudo apt-get update
100+ sudo apt-get install -y fuse3 cpu-checker podman
101+ sudo modprobe fuse
102+ if [ -e /dev/kvm ]; then
103+ sudo chmod 0666 /dev/kvm
104+ fi
105+
106+ - name : Download qcow2 image
107+ uses : actions/download-artifact@v4
108+ with :
109+ name : kernel-qcow2-image-x86_64
110+ path : output
111+
112+ # Boot verification test
113+ - name : Boot kernel and verify
114+ run : |
115+ set -euxo pipefail
116+ podman run --rm --pull=always \
117+ --privileged \
118+ --device=/dev/fuse \
119+ $([ -e /dev/kvm ] && echo "--device=/dev/kvm") \
120+ -v "$PWD/output":/output \
121+ -v "$PWD/kernel-container-build/build-container":/usr/local/build-scripts:ro \
122+ --security-opt label=disable \
123+ pulp.prod.ciq.dev/ciq/cicd/lts-images/builder \
124+ /usr/local/build-scripts/boot_kernel.sh
125+
126+ # Upload boot logs
127+ - name : Upload boot logs
73128 uses : actions/upload-artifact@v4
74129 if : always()
130+ with :
131+ name : boot-logs-x86_64
132+ path : output/boot-*.log
133+ retention-days : 7
134+
135+ test-kselftest :
136+ name : Run kselftests
137+ runs-on : kernel-build
138+ needs : boot
139+
140+ steps :
141+ - name : Checkout kernel-container-build (test branch)
142+ uses : actions/checkout@v4
143+ with :
144+ repository : ctrliq/kernel-container-build
145+ ref : test-stage-separation
146+ path : kernel-container-build
147+ token : ${{ secrets.PRIVATE_REPO_ACCESS_TOKEN }}
148+
149+ - name : Install host dependencies
150+ run : |
151+ set -euxo pipefail
152+ sudo apt-get update
153+ sudo apt-get install -y fuse3 cpu-checker podman
154+ sudo modprobe fuse
155+ if [ -e /dev/kvm ]; then
156+ sudo chmod 0666 /dev/kvm
157+ fi
158+
159+ - name : Download qcow2 image
160+ uses : actions/download-artifact@v4
75161 with :
76162 name : kernel-qcow2-image-x86_64
163+ path : output
164+
165+ # Run kselftests
166+ - name : Execute kselftests
167+ run : |
168+ set -euxo pipefail
169+ podman run --rm --pull=always \
170+ --privileged \
171+ --device=/dev/fuse \
172+ $([ -e /dev/kvm ] && echo "--device=/dev/kvm") \
173+ -v "$PWD/output":/output \
174+ -v "$PWD/kernel-container-build/build-container":/usr/local/build-scripts:ro \
175+ --security-opt label=disable \
176+ pulp.prod.ciq.dev/ciq/cicd/lts-images/builder \
177+ /usr/local/build-scripts/test_kselftests.sh
178+
179+ # Upload kselftest logs
180+ - name : Upload kselftest logs
181+ uses : actions/upload-artifact@v4
182+ if : always()
183+ with :
184+ name : kselftest-logs-x86_64
77185 path : |
78- output/*.qcow2
79- output/last_build_image.txt
186+ output/kselftests-*.log
187+ output/dmesg-*.log
80188 retention-days : 7
0 commit comments