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