17a7741afSMartin Matuskaname: zloop 27a7741afSMartin Matuska 37a7741afSMartin Matuskaon: 47a7741afSMartin Matuska push: 57a7741afSMartin Matuska pull_request: 67a7741afSMartin Matuska 77a7741afSMartin Matuskaconcurrency: 87a7741afSMartin Matuska group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} 97a7741afSMartin Matuska cancel-in-progress: true 107a7741afSMartin Matuska 117a7741afSMartin Matuskajobs: 127a7741afSMartin Matuska zloop: 137a7741afSMartin Matuska runs-on: ubuntu-24.04 147a7741afSMartin Matuska env: 157a7741afSMartin Matuska TEST_DIR: /var/tmp/zloop 167a7741afSMartin Matuska steps: 177a7741afSMartin Matuska - uses: actions/checkout@v4 187a7741afSMartin Matuska with: 197a7741afSMartin Matuska ref: ${{ github.event.pull_request.head.sha }} 207a7741afSMartin Matuska - name: Install dependencies 217a7741afSMartin Matuska run: | 227a7741afSMartin Matuska sudo apt-get purge -y snapd google-chrome-stable firefox 23*d2a8fad3SMartin Matuska ONLY_DEPS=1 .github/workflows/scripts/qemu-3-deps-vm.sh ubuntu24 247a7741afSMartin Matuska - name: Autogen.sh 257a7741afSMartin Matuska run: | 267a7741afSMartin Matuska sed -i '/DEBUG_CFLAGS="-Werror"/s/^/#/' config/zfs-build.m4 277a7741afSMartin Matuska ./autogen.sh 287a7741afSMartin Matuska - name: Configure 297a7741afSMartin Matuska run: | 307a7741afSMartin Matuska ./configure --prefix=/usr --enable-debug --enable-debuginfo \ 317a7741afSMartin Matuska --enable-asan --enable-ubsan \ 327a7741afSMartin Matuska --enable-debug-kmem --enable-debug-kmem-tracking 337a7741afSMartin Matuska - name: Make 347a7741afSMartin Matuska run: | 357a7741afSMartin Matuska make -j$(nproc) 367a7741afSMartin Matuska - name: Install 377a7741afSMartin Matuska run: | 387a7741afSMartin Matuska sudo make install 397a7741afSMartin Matuska sudo depmod 407a7741afSMartin Matuska sudo modprobe zfs 417a7741afSMartin Matuska - name: Tests 427a7741afSMartin Matuska run: | 437a7741afSMartin Matuska sudo mkdir -p $TEST_DIR 447a7741afSMartin Matuska # run for 10 minutes or at most 6 iterations for a maximum runner 457a7741afSMartin Matuska # time of 60 minutes. 467a7741afSMartin Matuska sudo /usr/share/zfs/zloop.sh -t 600 -I 6 -l -m 1 -- -T 120 -P 60 477a7741afSMartin Matuska - name: Prepare artifacts 487a7741afSMartin Matuska if: failure() 497a7741afSMartin Matuska run: | 507a7741afSMartin Matuska sudo chmod +r -R $TEST_DIR/ 517a7741afSMartin Matuska - name: Ztest log 527a7741afSMartin Matuska if: failure() 537a7741afSMartin Matuska run: | 547a7741afSMartin Matuska grep -B10 -A1000 'ASSERT' $TEST_DIR/*/ztest.out || tail -n 1000 $TEST_DIR/*/ztest.out 557a7741afSMartin Matuska - name: Gdb log 567a7741afSMartin Matuska if: failure() 577a7741afSMartin Matuska run: | 587a7741afSMartin Matuska sed -n '/Backtraces (full)/q;p' $TEST_DIR/*/ztest.gdb 597a7741afSMartin Matuska - name: Zdb log 607a7741afSMartin Matuska if: failure() 617a7741afSMartin Matuska run: | 627a7741afSMartin Matuska cat $TEST_DIR/*/ztest.zdb 637a7741afSMartin Matuska - uses: actions/upload-artifact@v4 647a7741afSMartin Matuska if: failure() 657a7741afSMartin Matuska with: 667a7741afSMartin Matuska name: Logs 677a7741afSMartin Matuska path: | 687a7741afSMartin Matuska /var/tmp/zloop/*/ 697a7741afSMartin Matuska !/var/tmp/zloop/*/vdev/ 707a7741afSMartin Matuska if-no-files-found: ignore 717a7741afSMartin Matuska - uses: actions/upload-artifact@v4 727a7741afSMartin Matuska if: failure() 737a7741afSMartin Matuska with: 747a7741afSMartin Matuska name: Pool files 757a7741afSMartin Matuska path: | 767a7741afSMartin Matuska /var/tmp/zloop/*/vdev/ 777a7741afSMartin Matuska if-no-files-found: ignore 78