mirror_zfs/.github/workflows
Tony Hutter 57f192fcaa
Add 'zfs-qemu-packages' workflow for RPM building
Add a new 'zfs-qemu-packages' GH workflow for manually building RPMs
and test installing ZFS RPMs from a yum repo. The workflow has a
dropdown menu in the Github runners tab with two options:

Build RPMs - Build release RPMs and tarballs and put them into an
             artifact ZIP file.  The directory structure used in
             the ZIP file mirrors the ZFS yum repo.

Test repo -  Test install the ZFS RPMs from the ZFS repo.  On
             Almalinux, this will do a DKMS and KMOD test install
             from both the regular and testing repos.  On Fedora,
             it will do a DKMS install from the regular repo.  All
             test install results will be displayed in the Github
             runner Summary page. Note that the workflow provides an
             optional text box where you can specify the full URL to
             an alternate repo.  If left blank, it will install from
             the default repo from the zfs-release RPM.

Most developers will never need to use this workflow.  It is intended
to be used by the ZFS admins for building and testing releases.

This commit also modularizes many of the runner scripts so they can
be used by both the zfs-qemu and zfs-qemu-packages workflows.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Closes #17005
2025-03-05 09:19:56 -08:00
..
scripts Add 'zfs-qemu-packages' workflow for RPM building 2025-03-05 09:19:56 -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
zfs-qemu-packages.yml Add 'zfs-qemu-packages' workflow for RPM building 2025-03-05 09:19:56 -08:00
zfs-qemu.yml Add 'zfs-qemu-packages' workflow for RPM building 2025-03-05 09:19:56 -08:00
zloop.yml Add 'zfs-qemu-packages' workflow for RPM building 2025-03-05 09:19:56 -08: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.