6161 working-directory : ${{ matrix.path }}
6262 args : --timeout=10m --verbose
6363
64+ nydus-build-debug :
65+ runs-on : ubuntu-latest
66+ steps :
67+ - name : Checkout
68+ uses : actions/checkout@v6
69+ - name : Rust Cache
70+ uses : Swatinem/rust-cache@v2
71+ with :
72+ cache-on-failure : true
73+ shared-key : ${{ runner.os }}-cargo-amd64-debug
74+ save-if : ${{ github.ref == 'refs/heads/master' }}
75+ - uses : dsherret/rust-toolchain-file@v1
76+ - name : Read Rust toolchain version
77+ id : set_toolchain_version
78+ run : |
79+ RUST_TOOLCHAIN_VERSION=$(grep -oP '(?<=channel = ")[^"]*' rust-toolchain.toml)
80+ echo "Rust toolchain version: $RUST_TOOLCHAIN_VERSION"
81+ echo "rust-version=$RUST_TOOLCHAIN_VERSION" >> $GITHUB_OUTPUT
82+ shell : bash
83+ - name : Build Nydus Debug Version
84+ run : |
85+ make -e ENABLE_DEBUG=1 build
86+ mv target/$RUST_TARGET/debug/nydusd .
87+ mv target/$RUST_TARGET/debug/nydus-image .
88+ - name : Upload Nydus Binaries
89+ uses : actions/upload-artifact@v6
90+ with :
91+ name : nydus-artifact-debug
92+ path : |
93+ nydus-image
94+ nydusd
95+ - name : Upload Nydus Build profraw
96+ uses : actions/upload-artifact@v6
97+ with :
98+ name : nydus-profraw-build
99+ path : |
100+ coverage/*.profraw
101+
64102 nydus-build :
65103 runs-on : ubuntu-latest
66104 strategy :
@@ -122,7 +160,7 @@ jobs:
122160 if : matrix.arch == 'amd64'
123161 uses : actions/upload-artifact@v6
124162 with :
125- name : nydus-artifact
163+ name : nydus-artifact-release
126164 path : |
127165 nydus-image
128166 nydusd
@@ -153,7 +191,7 @@ jobs:
153191
154192 nydus-integration-test :
155193 runs-on : ubuntu-latest
156- needs : [contrib-build, nydus-build]
194+ needs : [contrib-build, nydus-build-debug ]
157195 steps :
158196 - name : Checkout
159197 uses : actions/checkout@v6
@@ -163,9 +201,8 @@ jobs:
163201 - name : Download Nydus
164202 uses : actions/download-artifact@v7
165203 with :
166- name : nydus-artifact
167- path : |
168- target/release
204+ name : nydus-artifact-debug
205+ path : target/debug
169206 - name : Download Nydusify
170207 uses : actions/download-artifact@v7
171208 with :
@@ -228,7 +265,13 @@ jobs:
228265 done
229266
230267 curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sudo sh -s -- -b /usr/bin v2.1.6
231- sudo -E make smoke-only
268+ sudo -E ENABLE_DEBUG=1 make smoke-only
269+ - name : Upload Nydus Smoke profraw
270+ uses : actions/upload-artifact@v6
271+ with :
272+ name : nydus-profraw-smoke
273+ path : |
274+ coverage/*.profraw
232275
233276 nydus-unit-test :
234277 runs-on : ubuntu-latest
@@ -248,13 +291,13 @@ jobs:
248291 - name : Unit Test
249292 run : |
250293 sudo -E ENABLE_DEBUG=1 "PATH=$PATH" make ut-nextest
251- sudo -E "PATH=$PATH" make generate-codecov
252- - name : Upload nydus coverage file
294+ # sudo -E "PATH=$PATH" make generate-codecov
295+ - name : Upload Nydus UT profraw
253296 uses : actions/upload-artifact@v6
254297 with :
255- name : nydus-test-coverage-artifact
298+ name : nydus-profraw-ut
256299 path : |
257- coverage/coverage.info
300+ coverage/*.profraw
258301
259302 contrib-unit-test :
260303 runs-on : ubuntu-latest
@@ -278,7 +321,7 @@ jobs:
278321
279322 upload-coverage-to-codecov :
280323 runs-on : ubuntu-latest
281- needs : [contrib-unit-test, nydus-unit-test ]
324+ needs : [contrib-unit-test, nydus-coverage ]
282325 steps :
283326 - uses : actions/checkout@v6
284327 - name : Download nydus coverage file
@@ -307,7 +350,7 @@ jobs:
307350
308351 performance-test :
309352 runs-on : ubuntu-latest
310- needs : [contrib-build, nydus-build]
353+ needs : [contrib-build, nydus-build-debug ]
311354 strategy :
312355 matrix :
313356 include :
@@ -320,7 +363,7 @@ jobs:
320363 - name : Download Nydus
321364 uses : actions/download-artifact@v7
322365 with :
323- name : nydus-artifact
366+ name : nydus-artifact-release
324367 path : target/release
325368 - name : Download Nydusify
326369 uses : actions/download-artifact@v7
@@ -337,15 +380,15 @@ jobs:
337380
338381 takeover-test :
339382 runs-on : ubuntu-latest
340- needs : [contrib-build, nydus-build]
383+ needs : [contrib-build, nydus-build-debug ]
341384 steps :
342385 - name : Checkout
343386 uses : actions/checkout@v6
344387 - name : Download Nydus
345388 uses : actions/download-artifact@v7
346389 with :
347- name : nydus-artifact
348- path : target/release
390+ name : nydus-artifact-debug
391+ path : target/debug
349392 - name : Download Nydusify
350393 uses : actions/download-artifact@v7
351394 with :
@@ -357,4 +400,51 @@ jobs:
357400 - name : Takeover Test
358401 run : |
359402 export NEW_NYDUSD_BINARY_PATH=target/release/nydusd
360- sudo -E make smoke-takeover
403+ sudo -E ENABLE_DEBUG=1 make smoke-takeover
404+ - name : Upload Nydus Takeover
405+ uses : actions/upload-artifact@v6
406+ with :
407+ name : nydus-profraw-takeover
408+ path : |
409+ coverage/*.profraw
410+
411+ nydus-coverage :
412+ runs-on : ubuntu-latest
413+ needs : [takeover-test,nydus-integration-test,nydus-unit-test]
414+ steps :
415+ - name : Checkout
416+ uses : actions/checkout@v6
417+ - name : Download Nydus
418+ uses : actions/download-artifact@v7
419+ with :
420+ name : nydus-artifact-debug
421+ path : target/debug
422+ - name : Download Nydus Build profraw
423+ uses : actions/download-artifact@v7
424+ with :
425+ name : nydus-profraw-build
426+ path : coverage/
427+ - name : Download Nydus Smoke profraw
428+ uses : actions/download-artifact@v7
429+ with :
430+ name : nydus-profraw-smoke
431+ path : coverage/
432+ - name : Download Nydus UT profraw
433+ uses : actions/download-artifact@v7
434+ with :
435+ name : nydus-profraw-ut
436+ path : coverage/
437+ - name : Download Nydus Takeover profraw
438+ uses : actions/download-artifact@v7
439+ with :
440+ name : nydus-profraw-takeover
441+ path : coverage/
442+ - name : Generate Nydus Codecov
443+ run : |
444+ ls coverage | wc -l
445+ sudo -E "PATH=$PATH" make generate-codecov
446+ - name : Upload Nydus Codecov
447+ uses : actions/upload-artifact@v6
448+ with :
449+ name : nydus-test-coverage-artifact
450+ path : coverage/coverage.info
0 commit comments