1name: zloop 2 3on: 4 push: 5 pull_request: 6 paths-ignore: 7 - 'man/**' 8 - '**.md' 9 - 'AUTHORS' 10 - 'COPYRIGHT' 11 - 'LICENSE' 12 - 'NOTICE' 13 - '.gitignore' 14 15concurrency: 16 group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} 17 cancel-in-progress: true 18 19jobs: 20 zloop: 21 runs-on: ubuntu-24.04 22 env: 23 WORK_DIR: /mnt/zloop 24 CORE_DIR: /mnt/zloop/cores 25 steps: 26 - uses: actions/checkout@v6 27 with: 28 ref: ${{ github.event.pull_request.head.sha }} 29 - name: Install dependencies 30 run: | 31 sudo apt-get purge -y snapd google-chrome-stable firefox 32 ONLY_DEPS=1 .github/workflows/scripts/qemu-3-deps-vm.sh ubuntu24 33 - name: Autogen.sh 34 run: | 35 sed -i '/DEBUG_CFLAGS="-Werror"/s/^/#/' config/zfs-build.m4 36 ./autogen.sh 37 - name: Configure 38 run: | 39 ./configure --prefix=/usr --enable-debug --enable-debuginfo \ 40 --enable-asan --enable-ubsan \ 41 --enable-debug-kmem --enable-debug-kmem-tracking 42 - name: Make 43 run: | 44 make -j$(nproc) 45 - name: Install 46 run: | 47 sudo make install 48 sudo depmod 49 sudo modprobe zfs 50 - name: Tests 51 run: | 52 sudo truncate -s 256G /mnt/vdev 53 sudo zpool create cipool -m $WORK_DIR -O compression=on -o autotrim=on /mnt/vdev 54 sudo /usr/share/zfs/zloop.sh -t 600 -I 6 -l -m 1 -M -c $CORE_DIR -f $WORK_DIR -- -T 120 -P 60 55 - name: Prepare artifacts 56 if: failure() 57 run: | 58 sudo chmod +r -R $WORK_DIR/ 59 - name: Ztest log 60 if: failure() 61 run: | 62 grep -B10 -A1000 'ASSERT' $CORE_DIR/*/ztest.out || tail -n 1000 $CORE_DIR/*/ztest.out 63 - name: Gdb log 64 if: failure() 65 run: | 66 sed -n '/Backtraces (full)/q;p' $CORE_DIR/*/ztest.gdb 67 - name: Zdb log 68 if: failure() 69 run: | 70 cat $CORE_DIR/*/ztest.zdb 71 - uses: actions/upload-artifact@v7 72 if: failure() 73 with: 74 name: Logs 75 path: | 76 /mnt/zloop/*/ 77 !/mnt/zloop/cores/*/vdev/ 78 if-no-files-found: ignore 79 - uses: actions/upload-artifact@v7 80 if: failure() 81 with: 82 name: Pool files 83 path: | 84 /mnt/zloop/cores/*/vdev/ 85 if-no-files-found: ignore 86