mirror_zfs/.github/workflows
Brian Behlendorf d06ebddee4 CI: Add smatch static analysis workflow
Smatch is an actively maintained kernel-aware static analyzer
for C with a low false positive rate.  Since the code checker
can be run relatively quickly against the entire OpenZFS code
base (15 min) it makes sense to add it as a GitHub Actions
workflow.  Today smatch reports a significant numbers warnings
so the workflow is configured to always pass as long as the
analysis was run.  The results are available for reference.
Long term it would ideal to resolve all of the errors/warnings
at which point the workflow can be updated to fail when new
problems are detected.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Toomas Soome <tsoome@me.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #17935
2025-12-09 15:34:45 -08:00
..
scripts CI: Update FreeBSD versions and ci-type handling 2025-11-12 13:05:49 -08:00
checkstyle.yaml Add 'zfs-qemu-packages' workflow for RPM building 2025-03-05 09:19:56 -08:00
codeql.yml CI: Stick with ubuntu-22.04 for CodeQL analysis 2024-10-11 14:16:00 -07:00
labels.yml CI: Automate some GitHub PR status labels manipulations 2024-11-04 17:16:32 -08:00
README.md Move nodes into correct subgraphs 2024-01-29 09:16:02 -08:00
smatch.yml CI: Add smatch static analysis workflow 2025-12-09 15:34:45 -08:00
zfs-qemu-packages.yml CI: Update FreeBSD versions and ci-type handling 2025-11-12 13:05:49 -08:00
zfs-qemu.yml CI: Update FreeBSD versions and ci-type handling 2025-11-12 13:05:49 -08:00
zloop.yml CI: run ztest on compressed zpool 2025-07-03 10:27:05 -07:00

The testings are done this way

flowchart TB
subgraph CleanUp and Summary
  CleanUp+Summary
end

subgraph Functional Testings
  sanity-checks-20.04
  zloop-checks-20.04
  functional-testing-20.04-->Part1-20.04
  functional-testing-20.04-->Part2-20.04
  functional-testing-20.04-->Part3-20.04
  functional-testing-20.04-->Part4-20.04
  functional-testing-22.04-->Part1-22.04
  functional-testing-22.04-->Part2-22.04
  functional-testing-22.04-->Part3-22.04
  functional-testing-22.04-->Part4-22.04
  sanity-checks-22.04
  zloop-checks-22.04
end

subgraph Code Checking + Building
  Build-Ubuntu-20.04
  codeql.yml
  checkstyle.yml
  Build-Ubuntu-22.04
end

  Build-Ubuntu-20.04-->sanity-checks-20.04
  Build-Ubuntu-20.04-->zloop-checks-20.04
  Build-Ubuntu-20.04-->functional-testing-20.04
  Build-Ubuntu-22.04-->sanity-checks-22.04
  Build-Ubuntu-22.04-->zloop-checks-22.04
  Build-Ubuntu-22.04-->functional-testing-22.04

  sanity-checks-20.04-->CleanUp+Summary
  Part1-20.04-->CleanUp+Summary
  Part2-20.04-->CleanUp+Summary
  Part3-20.04-->CleanUp+Summary
  Part4-20.04-->CleanUp+Summary
  Part1-22.04-->CleanUp+Summary
  Part2-22.04-->CleanUp+Summary
  Part3-22.04-->CleanUp+Summary
  Part4-22.04-->CleanUp+Summary
  sanity-checks-22.04-->CleanUp+Summary
  1. build zfs modules for Ubuntu 20.04 and 22.04 (~15m)
  2. 2x zloop test (~10m) + 2x sanity test (~25m)
  3. 4x functional testings in parts 1..4 (each ~1h)
  4. cleanup and create summary
    • content of summary depends on the results of the steps

When everything runs fine, the full run should be done in about 2 hours.

The codeql.yml and checkstyle.yml are not part in this circle.