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