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 :
@@ -210,9 +247,10 @@ jobs:
210247 - name : Integration Test
211248 run : |
212249 sudo mkdir -p /usr/bin/nydus-latest /home/runner/work/workdir
250+ sudo chmod +x contrib/nydusify/cmd/nydusify target/debug/nydusd target/debug/nydus-image
213251 sudo install -D -m 755 contrib/nydusify/cmd/nydusify /usr/bin/nydus-latest
214- sudo install -D -m 755 target/release /nydusd target/release /nydus-image /usr/bin/nydus-latest
215- sudo bash misc/prepare.sh
252+ sudo install -D -m 755 target/debug /nydusd target/debug /nydus-image /usr/bin/nydus-latest
253+ sudo INSTALL_TARGET_TYPE=debug bash misc/prepare.sh
216254
217255 export NYDUS_STABLE_VERSION=$(curl https://api.github.com/repos/Dragonflyoss/nydus/releases/latest | jq -r '.tag_name')
218256 export NYDUS_STABLE_VERSION_EXPORT="${NYDUS_STABLE_VERSION//./_}"
@@ -228,7 +266,13 @@ jobs:
228266 done
229267
230268 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
269+ sudo -E ENABLE_DEBUG=1 make smoke-only
270+ - name : Upload Nydus Smoke profraw
271+ uses : actions/upload-artifact@v6
272+ with :
273+ name : nydus-profraw-smoke
274+ path : |
275+ coverage/*.profraw
232276
233277 nydus-unit-test :
234278 runs-on : ubuntu-latest
@@ -248,13 +292,13 @@ jobs:
248292 - name : Unit Test
249293 run : |
250294 sudo -E ENABLE_DEBUG=1 "PATH=$PATH" make ut-nextest
251- sudo -E "PATH=$PATH" make generate-codecov
252- - name : Upload nydus coverage file
295+ # sudo -E "PATH=$PATH" make generate-codecov
296+ - name : Upload Nydus UT profraw
253297 uses : actions/upload-artifact@v6
254298 with :
255- name : nydus-test-coverage-artifact
299+ name : nydus-profraw-ut
256300 path : |
257- coverage/coverage.info
301+ coverage/*.profraw
258302
259303 contrib-unit-test :
260304 runs-on : ubuntu-latest
@@ -278,7 +322,7 @@ jobs:
278322
279323 upload-coverage-to-codecov :
280324 runs-on : ubuntu-latest
281- needs : [contrib-unit-test, nydus-unit-test ]
325+ needs : [contrib-unit-test, nydus-coverage ]
282326 steps :
283327 - uses : actions/checkout@v6
284328 - name : Download nydus coverage file
@@ -320,7 +364,7 @@ jobs:
320364 - name : Download Nydus
321365 uses : actions/download-artifact@v7
322366 with :
323- name : nydus-artifact
367+ name : nydus-artifact-release
324368 path : target/release
325369 - name : Download Nydusify
326370 uses : actions/download-artifact@v7
@@ -337,24 +381,72 @@ jobs:
337381
338382 takeover-test :
339383 runs-on : ubuntu-latest
340- needs : [contrib-build, nydus-build]
384+ needs : [contrib-build, nydus-build-debug ]
341385 steps :
342386 - name : Checkout
343387 uses : actions/checkout@v6
344388 - name : Download Nydus
345389 uses : actions/download-artifact@v7
346390 with :
347- name : nydus-artifact
348- path : target/release
391+ name : nydus-artifact-debug
392+ path : target/debug
349393 - name : Download Nydusify
350394 uses : actions/download-artifact@v7
351395 with :
352396 name : nydusify-artifact
353397 path : contrib/nydusify/cmd
354398 - name : Prepare Nydus Container Environment
355399 run : |
356- sudo bash misc/prepare.sh takeover_test
400+ sudo INSTALL_TARGET_TYPE=debug bash misc/prepare.sh takeover_test
357401 - name : Takeover Test
358402 run : |
359- export NEW_NYDUSD_BINARY_PATH=target/release/nydusd
360- sudo -E make smoke-takeover
403+ export NEW_NYDUSD_BINARY_PATH=target/debug/nydusd
404+ sudo chmod +x target/debug/nydus-image
405+ sudo -E ENABLE_DEBUG=1 make smoke-takeover
406+ - name : Upload Nydus Takeover
407+ uses : actions/upload-artifact@v6
408+ with :
409+ name : nydus-profraw-takeover
410+ path : |
411+ coverage/*.profraw
412+
413+ nydus-coverage :
414+ runs-on : ubuntu-latest
415+ needs : [takeover-test,nydus-integration-test,nydus-unit-test]
416+ steps :
417+ - name : Checkout
418+ uses : actions/checkout@v6
419+ - name : Download Nydus
420+ uses : actions/download-artifact@v7
421+ with :
422+ name : nydus-artifact-debug
423+ path : target/debug
424+ - name : Download Nydus Build profraw
425+ uses : actions/download-artifact@v7
426+ with :
427+ name : nydus-profraw-build
428+ path : coverage/
429+ - name : Download Nydus Smoke profraw
430+ uses : actions/download-artifact@v7
431+ with :
432+ name : nydus-profraw-smoke
433+ path : coverage/
434+ - name : Download Nydus UT profraw
435+ uses : actions/download-artifact@v7
436+ with :
437+ name : nydus-profraw-ut
438+ path : coverage/
439+ - name : Download Nydus Takeover profraw
440+ uses : actions/download-artifact@v7
441+ with :
442+ name : nydus-profraw-takeover
443+ path : coverage/
444+ - name : Generate Nydus Codecov
445+ run : |
446+ ls coverage | wc -l
447+ sudo -E "PATH=$PATH" make generate-codecov
448+ - name : Upload Nydus Codecov
449+ uses : actions/upload-artifact@v6
450+ with :
451+ name : nydus-test-coverage-artifact
452+ path : coverage/coverage.info
0 commit comments