xref: /freebsd/sys/contrib/openzfs/.github/workflows/zloop.yml (revision 058ac3e8063366dafa634d9107642e12b038bf09)
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