1name: zloop 2 3on: 4 push: 5 pull_request: 6 7jobs: 8 tests: 9 runs-on: ubuntu-22.04 10 env: 11 TEST_DIR: /var/tmp/zloop 12 steps: 13 - uses: actions/checkout@v3 14 with: 15 ref: ${{ github.event.pull_request.head.sha }} 16 - name: Install dependencies 17 run: | 18 sudo apt-get update 19 sudo apt-get -qq upgrade 20 sudo xargs --arg-file=${{ github.workspace }}/.github/workflows/build-dependencies.txt apt-get install -qq 21 sudo apt-get clean 22 - name: Autogen.sh 23 run: | 24 ./autogen.sh 25 - name: Configure 26 run: | 27 ./configure --enable-debug --enable-debuginfo --enable-asan --enable-ubsan 28 - name: Make 29 run: | 30 make -j$(nproc) --no-print-directory --silent pkg-utils pkg-kmod 31 - name: Install 32 run: | 33 sudo dpkg -i *.deb 34 # Update order of directories to search for modules, otherwise 35 # Ubuntu will load kernel-shipped ones. 36 sudo sed -i.bak 's/updates/extra updates/' /etc/depmod.d/ubuntu.conf 37 sudo depmod 38 sudo modprobe zfs 39 - name: Tests 40 run: | 41 sudo mkdir -p $TEST_DIR 42 # run for 10 minutes or at most 2 iterations for a maximum runner 43 # time of 20 minutes. 44 sudo /usr/share/zfs/zloop.sh -t 600 -I 2 -l -m1 -- -T 120 -P 60 45 - name: Prepare artifacts 46 if: failure() 47 run: | 48 sudo chmod +r -R $TEST_DIR/ 49 - uses: actions/upload-artifact@v3 50 if: failure() 51 with: 52 name: Logs 53 path: | 54 /var/tmp/zloop/*/ 55 !/var/tmp/zloop/*/vdev/ 56 if-no-files-found: ignore 57 - uses: actions/upload-artifact@v3 58 if: failure() 59 with: 60 name: Pool files 61 path: | 62 /var/tmp/zloop/*/vdev/ 63 if-no-files-found: ignore 64