Skip to content

Commit

Permalink
Split functional testings via github action matrix
Browse files Browse the repository at this point in the history
This commit changes the workflow of the github actions.

We split the workflow into different parts:

1) build zfs modules for Ubuntu 20.04 and 22.04 (~25m)
2) 2x zloop test (~10m) + 2x sanity test (~25m)
3) functional testings in parts 1..5 (each ~1h)
4) cleanup and create summary
   - content of summary depends on the results of the steps

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

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

The testings are also modfied a bit:
- report info about CPU and checksum benchmarks

Open things that are not done yet (TODO List):
- create nice summary in the end
- create external shell script for building + testing
- this should simplify the yaml build file

Signed-off-by: Tino Reichardt <[email protected]>
  • Loading branch information
mcmilk committed Mar 3, 2023
1 parent 620a977 commit 2850c9b
Show file tree
Hide file tree
Showing 8 changed files with 353 additions and 261 deletions.
51 changes: 51 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@

## The testings are done this way

```mermaid
flowchart TB
subgraph CleanUp and Summary
Part1-20.04-->CleanUp+nice+Summary
Part2-20.04-->CleanUp+nice+Summary
PartN-20.04-->CleanUp+nice+Summary
Part1-22.04-->CleanUp+nice+Summary
Part2-22.04-->CleanUp+nice+Summary
PartN-22.04-->CleanUp+nice+Summary
end
subgraph Functional Testings
functional-testing-20.04-->Part1-20.04
functional-testing-20.04-->Part2-20.04
functional-testing-20.04-->PartN-20.04
functional-testing-22.04-->Part1-22.04
functional-testing-22.04-->Part2-22.04
functional-testing-22.04-->PartN-22.04
end
subgraph Sanity and zloop Testings
sanity-checks-20.04-->functional-testing-20.04
sanity-checks-22.04-->functional-testing-22.04
zloop-checks-20.04-->functional-testing-20.04
zloop-checks-22.04-->functional-testing-22.04
end
subgraph Code Checking + Building
codeql.yml
checkstyle.yml
Build-Ubuntu-20.04-->sanity-checks-20.04
Build-Ubuntu-22.04-->sanity-checks-22.04
Build-Ubuntu-20.04-->zloop-checks-20.04
Build-Ubuntu-22.04-->zloop-checks-22.04
end
```


1) build zfs modules for Ubuntu 20.04 and 22.04 (~15m)
2) 2x zloop test (~10m) + 2x sanity test (~25m)
3) functional testings in parts 1..5 (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.
30 changes: 2 additions & 28 deletions .github/workflows/build-dependencies.txt
Original file line number Diff line number Diff line change
@@ -1,57 +1,31 @@
acl
alien
attr
autoconf
bc
automake
build-essential
curl
dbench
debhelper-compat
dh-python
dkms
fakeroot
fio
gdb
gdebi
gawk
git
ksh
lcov
libacl1-dev
libaio-dev
libattr1-dev
libblkid-dev
libcurl4-openssl-dev
libdevmapper-dev
libelf-dev
libffi-dev
libmount-dev
libpam0g-dev
libselinux1-dev
libssl-dev
libtool
libudev-dev
linux-headers-generic
lsscsi
mdadm
nfs-kernel-server
pamtester
parted
po-debconf
python3
python3-all-dev
python3-cffi
python3-dev
python3-packaging
python3-pip
python3-setuptools
python3-sphinx
rng-tools-debian
rsync
samba
sysstat
uuid-dev
watchdog
wget
xfslibs-dev
xz-utils
zlib1g-dev
25 changes: 25 additions & 0 deletions .github/workflows/scripts/split_functional_tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/sh

set -eu

TDIR="/usr/share/zfs/zfs-tests/tests/functional"

echo -n "TODO="
case "$1" in
part1)
echo "cli_root"
;;
part2)
ls $TDIR|grep '^[a-k]'|grep -v "cli_root"|xargs|tr -s ' ' ','
;;
part3)
ls $TDIR|grep '^[l-q]'|xargs|tr -s ' ' ','
;;
part4)
ls $TDIR|grep '^r[aeo]'|xargs|tr -s ' ' ','
;;
part5)
echo -n "rsend,"
ls $TDIR|grep '^[s-z]'|xargs|tr -s ' ' ','
;;
esac
24 changes: 24 additions & 0 deletions .github/workflows/test-dependencies.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
acl
attr
bc
bzip2
dbench
fio
gdb
ksh
libtool
linux-tools-`uname -r`
lsscsi
mdadm
nfs-kernel-server
parted
pax
python3-cffi
python3-sphinx
pv
quota
rng-tools
samba
selinux-utils
sysstat
util-linux
Loading

0 comments on commit 2850c9b

Please sign in to comment.