12a58b312SMartin Matuskaname: zfs-linux-tests 22a58b312SMartin Matuska 32a58b312SMartin Matuskaon: 42a58b312SMartin Matuska workflow_call: 52a58b312SMartin Matuska inputs: 62a58b312SMartin Matuska os: 72a58b312SMartin Matuska description: 'The ubuntu version: 20.02 or 22.04' 82a58b312SMartin Matuska required: true 92a58b312SMartin Matuska type: string 102a58b312SMartin Matuska 112a58b312SMartin Matuskajobs: 122a58b312SMartin Matuska 132a58b312SMartin Matuska zloop: 142a58b312SMartin Matuska runs-on: ubuntu-${{ inputs.os }} 152a58b312SMartin Matuska steps: 16*fd45b686SMartin Matuska - uses: actions/checkout@v4 172a58b312SMartin Matuska with: 182a58b312SMartin Matuska ref: ${{ github.event.pull_request.head.sha }} 19*fd45b686SMartin Matuska - uses: actions/download-artifact@v4 202a58b312SMartin Matuska with: 212a58b312SMartin Matuska name: modules-${{ inputs.os }} 222a58b312SMartin Matuska - name: Install modules 232a58b312SMartin Matuska run: | 242a58b312SMartin Matuska tar xzf modules-${{ inputs.os }}.tgz 252a58b312SMartin Matuska .github/workflows/scripts/setup-dependencies.sh tests 262a58b312SMartin Matuska - name: Tests 272a58b312SMartin Matuska timeout-minutes: 30 282a58b312SMartin Matuska run: | 292a58b312SMartin Matuska sudo mkdir -p /var/tmp/zloop 302a58b312SMartin Matuska # run for 10 minutes or at most 2 iterations for a maximum runner 312a58b312SMartin Matuska # time of 20 minutes. 322a58b312SMartin Matuska sudo /usr/share/zfs/zloop.sh -t 600 -I 2 -l -m1 -- -T 120 -P 60 332a58b312SMartin Matuska - name: Prepare artifacts 342a58b312SMartin Matuska if: failure() 352a58b312SMartin Matuska run: | 362a58b312SMartin Matuska sudo chmod +r -R /var/tmp/zloop/ 37*fd45b686SMartin Matuska - uses: actions/upload-artifact@v4 382a58b312SMartin Matuska if: failure() 392a58b312SMartin Matuska with: 402a58b312SMartin Matuska name: Zpool-logs-${{ inputs.os }} 412a58b312SMartin Matuska path: | 422a58b312SMartin Matuska /var/tmp/zloop/*/ 432a58b312SMartin Matuska !/var/tmp/zloop/*/vdev/ 442a58b312SMartin Matuska retention-days: 14 452a58b312SMartin Matuska if-no-files-found: ignore 46*fd45b686SMartin Matuska - uses: actions/upload-artifact@v4 472a58b312SMartin Matuska if: failure() 482a58b312SMartin Matuska with: 492a58b312SMartin Matuska name: Zpool-files-${{ inputs.os }} 502a58b312SMartin Matuska path: | 512a58b312SMartin Matuska /var/tmp/zloop/*/vdev/ 522a58b312SMartin Matuska retention-days: 14 532a58b312SMartin Matuska if-no-files-found: ignore 542a58b312SMartin Matuska 552a58b312SMartin Matuska sanity: 562a58b312SMartin Matuska runs-on: ubuntu-${{ inputs.os }} 572a58b312SMartin Matuska steps: 58*fd45b686SMartin Matuska - uses: actions/checkout@v4 592a58b312SMartin Matuska with: 602a58b312SMartin Matuska ref: ${{ github.event.pull_request.head.sha }} 61*fd45b686SMartin Matuska - uses: actions/download-artifact@v4 622a58b312SMartin Matuska with: 632a58b312SMartin Matuska name: modules-${{ inputs.os }} 642a58b312SMartin Matuska - name: Install modules 652a58b312SMartin Matuska run: | 662a58b312SMartin Matuska tar xzf modules-${{ inputs.os }}.tgz 672a58b312SMartin Matuska .github/workflows/scripts/setup-dependencies.sh tests 682a58b312SMartin Matuska - name: Tests 692a58b312SMartin Matuska timeout-minutes: 60 702a58b312SMartin Matuska shell: bash 712a58b312SMartin Matuska run: | 722a58b312SMartin Matuska set -o pipefail 732a58b312SMartin Matuska /usr/share/zfs/zfs-tests.sh -vKR -s 3G -r sanity | scripts/zfs-tests-color.sh 742a58b312SMartin Matuska - name: Prepare artifacts 752a58b312SMartin Matuska if: success() || failure() 762a58b312SMartin Matuska run: | 772a58b312SMartin Matuska RESPATH="/var/tmp/test_results" 782a58b312SMartin Matuska mv -f $RESPATH/current $RESPATH/testfiles 792a58b312SMartin Matuska tar cf $RESPATH/sanity.tar -h -C $RESPATH testfiles 80*fd45b686SMartin Matuska - uses: actions/upload-artifact@v4 812a58b312SMartin Matuska if: success() || failure() 822a58b312SMartin Matuska with: 832a58b312SMartin Matuska name: Logs-${{ inputs.os }}-sanity 842a58b312SMartin Matuska path: /var/tmp/test_results/sanity.tar 852a58b312SMartin Matuska if-no-files-found: ignore 862a58b312SMartin Matuska 872a58b312SMartin Matuska functional: 882a58b312SMartin Matuska runs-on: ubuntu-${{ inputs.os }} 892a58b312SMartin Matuska strategy: 902a58b312SMartin Matuska fail-fast: false 912a58b312SMartin Matuska matrix: 922a58b312SMartin Matuska tests: [ part1, part2, part3, part4 ] 932a58b312SMartin Matuska steps: 94*fd45b686SMartin Matuska - uses: actions/checkout@v4 952a58b312SMartin Matuska with: 962a58b312SMartin Matuska ref: ${{ github.event.pull_request.head.sha }} 97*fd45b686SMartin Matuska - uses: actions/download-artifact@v4 982a58b312SMartin Matuska with: 992a58b312SMartin Matuska name: modules-${{ inputs.os }} 1002a58b312SMartin Matuska - name: Install modules 1012a58b312SMartin Matuska run: | 1022a58b312SMartin Matuska tar xzf modules-${{ inputs.os }}.tgz 1032a58b312SMartin Matuska .github/workflows/scripts/setup-dependencies.sh tests 1042a58b312SMartin Matuska - name: Setup tests 1052a58b312SMartin Matuska run: | 1062a58b312SMartin Matuska .github/workflows/scripts/setup-functional.sh ${{ matrix.tests }} >> $GITHUB_ENV 1072a58b312SMartin Matuska - name: Tests 1082a58b312SMartin Matuska timeout-minutes: 120 1092a58b312SMartin Matuska shell: bash 1102a58b312SMartin Matuska run: | 1112a58b312SMartin Matuska set -o pipefail 1122a58b312SMartin Matuska /usr/share/zfs/zfs-tests.sh -vKR -s 3G -T ${{ env.TODO }} | scripts/zfs-tests-color.sh 1132a58b312SMartin Matuska - name: Prepare artifacts 1142a58b312SMartin Matuska if: success() || failure() 1152a58b312SMartin Matuska run: | 1162a58b312SMartin Matuska RESPATH="/var/tmp/test_results" 1172a58b312SMartin Matuska mv -f $RESPATH/current $RESPATH/testfiles 1182a58b312SMartin Matuska tar cf $RESPATH/${{ matrix.tests }}.tar -h -C $RESPATH testfiles 119*fd45b686SMartin Matuska - uses: actions/upload-artifact@v4 1202a58b312SMartin Matuska if: success() || failure() 1212a58b312SMartin Matuska with: 122*fd45b686SMartin Matuska name: Logs-${{ inputs.os }}-functional-${{ matrix.tests }} 1232a58b312SMartin Matuska path: /var/tmp/test_results/${{ matrix.tests }}.tar 1242a58b312SMartin Matuska if-no-files-found: ignore 125