@@ -2,7 +2,7 @@ name: GnuTests
22
33# spell-checker:ignore (abbrev/names) CodeCov gnulib GnuTests Swatinem
44# spell-checker:ignore (jargon) submodules devel
5- # spell-checker:ignore (libs/utils) autopoint chksum dpkg getenforce getlimits gperf lcov libexpect limactl pyinotify setenforce shopt texinfo valgrind libattr libcap taiki-e
5+ # spell-checker:ignore (libs/utils) autopoint chksum dpkg getenforce getlimits gperf lcov libexpect limactl pyinotify setenforce shopt texinfo valgrind libattr libcap taiki-e zstd cpio
66# spell-checker:ignore (options) Ccodegen Coverflow Cpanic Zpanic
77# spell-checker:ignore (people) Dawid Dziurla * dawidd dtolnay
88# spell-checker:ignore (vars) FILESET SUBDIRS XPASS
3131 TEST_STTY_FULL_SUMMARY_FILE : ' gnu-stty-full-result.json'
3232 TEST_SELINUX_FULL_SUMMARY_FILE : ' selinux-gnu-full-result.json'
3333 TEST_SELINUX_ROOT_FULL_SUMMARY_FILE : ' selinux-root-gnu-full-result.json'
34+ TEST_SMACK_FULL_SUMMARY_FILE : ' smack-gnu-full-result.json'
3435
3536jobs :
3637 native :
9192 sudo locale-gen --keep-existing fa_IR.UTF-8 # Iran
9293 sudo locale-gen --keep-existing am_ET.UTF-8 # Ethiopia
9394 sudo locale-gen --keep-existing th_TH.UTF-8 # Thailand
95+ sudo locale-gen --keep-existing zh_CN.GB18030 # China
9496
9597 sudo update-locale
9698 echo "After:"
@@ -317,8 +319,52 @@ jobs:
317319 gnu/tests-selinux/*.log
318320 gnu/tests-selinux/*/*.log.gz
319321
322+ smack :
323+ name : Run GNU tests (SMACK)
324+ runs-on : ubuntu-24.04
325+ steps :
326+ - name : Checkout code (uutils)
327+ uses : actions/checkout@v6
328+ with :
329+ path : ' uutils'
330+ persist-credentials : false
331+ - uses : dtolnay/rust-toolchain@master
332+ with :
333+ toolchain : stable
334+ components : rustfmt
335+ - uses : Swatinem/rust-cache@v2
336+ with :
337+ workspaces : " ./uutils -> target"
338+ - name : Checkout code (GNU coreutils)
339+ run : (mkdir -p gnu && cd gnu && bash ../uutils/util/fetch-gnu.sh)
340+ - name : Install dependencies
341+ run : |
342+ sudo apt-get update
343+ sudo apt-get install -y qemu-system-x86 zstd cpio
344+ - name : Run GNU SMACK tests
345+ run : |
346+ cd uutils
347+ bash util/run-gnu-tests-smack-ci.sh "$GITHUB_WORKSPACE/gnu" "$GITHUB_WORKSPACE/gnu/tests-smack"
348+ - name : Extract testing info into JSON
349+ run : |
350+ python3 uutils/util/gnu-json-result.py gnu/tests-smack > ${{ env.TEST_SMACK_FULL_SUMMARY_FILE }}
351+ - name : Upload SMACK json results
352+ uses : actions/upload-artifact@v6
353+ with :
354+ name : smack-gnu-full-result
355+ path : ${{ env.TEST_SMACK_FULL_SUMMARY_FILE }}
356+ - name : Compress SMACK test logs
357+ run : gzip gnu/tests-smack/*/*.log 2>/dev/null || true
358+ - name : Upload SMACK test logs
359+ uses : actions/upload-artifact@v6
360+ with :
361+ name : smack-test-logs
362+ path : |
363+ gnu/tests-smack/*.log
364+ gnu/tests-smack/*/*.log.gz
365+
320366 aggregate :
321- needs : [native, selinux]
367+ needs : [native, selinux, smack ]
322368 permissions :
323369 actions : read # for dawidd6/action-download-artifact to query and download artifacts
324370 contents : read # for actions/checkout to fetch code
@@ -343,7 +389,7 @@ jobs:
343389 path : ' uutils'
344390 persist-credentials : false
345391 - name : Retrieve reference artifacts
346- uses : dawidd6/action-download-artifact@v11
392+ uses : dawidd6/action-download-artifact@v12
347393 # ref: <https://github.com/dawidd6/action-download-artifact>
348394 continue-on-error : true # # don't break the build for missing reference artifacts (may be expired or just not generated yet)
349395 with :
@@ -383,6 +429,12 @@ jobs:
383429 name : selinux-root-gnu-full-result
384430 path : results
385431 merge-multiple : true
432+ - name : Download smack json results
433+ uses : actions/download-artifact@v7
434+ with :
435+ name : smack-gnu-full-result
436+ path : results
437+ merge-multiple : true
386438 - name : Extract/summarize testing info
387439 id : summary
388440 shell : bash
@@ -393,8 +445,8 @@ jobs:
393445 path_UUTILS='uutils'
394446
395447 json_count=$(ls -l results/*.json | wc -l)
396- if [[ "$json_count" -ne 5 ]]; then
397- echo "::error ::Failed to download all results json files (expected 4 files, found $json_count); failing early"
448+ if [[ "$json_count" -ne 6 ]]; then
449+ echo "::error ::Failed to download all results json files (expected 6 files, found $json_count); failing early"
398450 ls -lR results || true
399451 exit 1
400452 fi
0 commit comments