diff options
author | Azat Khuzhin <azat@libevent.org> | 2022-07-12 21:08:00 +0300 |
---|---|---|
committer | Azat Khuzhin <azat@libevent.org> | 2022-07-12 21:08:00 +0300 |
commit | bfa526cefa4d495cf643616956ab940b5b9e94ff (patch) | |
tree | d382e44d5113fd9a677d99f19d92591db8443439 /.github | |
parent | d32649493aab608733d884c65304b46bf74d5d80 (diff) | |
download | libevent-bfa526cefa4d495cf643616956ab940b5b9e94ff.tar.gz |
ci: add retries
Right now it is possible for some tests to fail, because of lack of CPU
time.
And it is better to have green CI even if this will take longer.
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/build.yml | 190 |
1 files changed, 109 insertions, 81 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4bc16cfb..dd773f99 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -124,29 +124,33 @@ jobs: cmake --build . - name: Test - shell: bash - run: | - JOBS=20 - export CTEST_PARALLEL_LEVEL=$JOBS - export CTEST_OUTPUT_ON_FAILURE=1 - - export TSAN_OPTIONS=suppressions=$PWD/extra/tsan.supp - export LSAN_OPTIONS=suppressions=$PWD/extra/lsan.supp - - if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then - cd dist - archive=$(echo *.tar.gz) - cd $(basename $archive .tar.gz) - fi - cd build - - if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then - sudo python3 ../test-export/test-export.py static - elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then - sudo python3 ../test-export/test-export.py shared - else - cmake --build . --target verify - fi + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: bash + command: | + JOBS=20 + export CTEST_PARALLEL_LEVEL=$JOBS + export CTEST_OUTPUT_ON_FAILURE=1 + + export TSAN_OPTIONS=suppressions=$PWD/extra/tsan.supp + export LSAN_OPTIONS=suppressions=$PWD/extra/lsan.supp + + if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then + cd dist + archive=$(echo *.tar.gz) + cd $(basename $archive .tar.gz) + fi + cd build + + if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then + sudo python3 ../test-export/test-export.py static + elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then + sudo python3 ../test-export/test-export.py shared + else + cmake --build . --target verify + fi - uses: actions/upload-artifact@v1 if: failure() && matrix.EVENT_MATRIX != 'DIST' @@ -242,16 +246,20 @@ jobs: ../configure --enable-gcc-warnings $EVENT_CONFIGURE_OPTIONS make - name: Test - shell: bash - run: | - JOBS=20 - if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then - cd dist - archive=$(echo *.tar.gz) - cd $(basename $archive .tar.gz) - fi - cd build - make -j $JOBS verify + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: bash + command: | + JOBS=20 + if [ "${{ matrix.EVENT_MATRIX }}" == "DIST" ]; then + cd dist + archive=$(echo *.tar.gz) + cd $(basename $archive .tar.gz) + fi + cd build + make -j $JOBS verify - uses: actions/upload-artifact@v1 if: failure() && matrix.EVENT_MATRIX != 'DIST' @@ -372,24 +380,28 @@ jobs: cmake --build . -j $EVENT_BUILD_PARALLEL -- /nologo /verbosity:minimal - name: Test - shell: powershell - run: | - $EVENT_TESTS_PARALLEL=1 + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: powershell + command: | + $EVENT_TESTS_PARALLEL=1 - cd build + cd build - try { - if ("${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_STATIC") { - python ../test-export/test-export.py static - } elseif ("${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_SHARED") { - python ../test-export/test-export.py shared - } else { - ctest --output-on-failure -j $EVENT_TESTS_PARALLEL - if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } + try { + if ("${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_STATIC") { + python ../test-export/test-export.py static + } elseif ("${{ matrix.EVENT_MATRIX }}" -eq "TEST_EXPORT_SHARED") { + python ../test-export/test-export.py shared + } else { + ctest --output-on-failure -j $EVENT_TESTS_PARALLEL + if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) } + } + } catch { + $host.SetShouldExit($LastExitCode) } - } catch { - $host.SetShouldExit($LastExitCode) - } - uses: actions/upload-artifact@v1 if: failure() @@ -453,15 +465,19 @@ jobs: D:\a\_temp\msys64\usr\bin\bash.exe -c $script - name: Test - shell: powershell - run: | - $env:EVENT_TESTS_PARALLEL=1 - - $script=' - export PATH="/mingw64/bin:/usr/bin:/bin:/usr/local/bin:/opt/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH" - cd build - make verify -j $EVENT_TESTS_PARALLEL 2>&1 ' - D:\a\_temp\msys64\usr\bin\bash.exe -c $script + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: powershell + command: | + $env:EVENT_TESTS_PARALLEL=1 + + $script=' + export PATH="/mingw64/bin:/usr/bin:/bin:/usr/local/bin:/opt/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:$PATH" + cd build + make verify -j $EVENT_TESTS_PARALLEL 2>&1 ' + D:\a\_temp\msys64\usr\bin\bash.exe -c $script - uses: actions/upload-artifact@v1 if: failure() @@ -539,10 +555,14 @@ jobs: cmake --build . - name: Test - shell: powershell - run: | - cd build - ctest --output-on-failure + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: powershell + command: | + cd build + ctest --output-on-failure - uses: actions/upload-artifact@v1 if: failure() @@ -618,21 +638,25 @@ jobs: cmake --build . - name: Test - shell: bash - run: | - JOBS=1 - export CTEST_PARALLEL_LEVEL=$JOBS - export CTEST_OUTPUT_ON_FAILURE=1 - - cd build - - if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then - sudo python3 ../test-export/test-export.py static - elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then - sudo python3 ../test-export/test-export.py shared - else - cmake --build . --target verify - fi + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: bash + command: | + JOBS=1 + export CTEST_PARALLEL_LEVEL=$JOBS + export CTEST_OUTPUT_ON_FAILURE=1 + + cd build + + if [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_STATIC" ]; then + sudo python3 ../test-export/test-export.py static + elif [ "${{ matrix.EVENT_MATRIX }}" == "TEST_EXPORT_SHARED" ]; then + sudo python3 ../test-export/test-export.py shared + else + cmake --build . --target verify + fi - uses: actions/upload-artifact@v1 if: failure() @@ -700,11 +724,15 @@ jobs: make - name: Test - shell: bash - run: | - JOBS=1 - cd build - make -j $JOBS verify + uses: nick-fields/retry@v2 + with: + max_attempts: 3 + timeout_minutes: 20 + shell: bash + command: | + JOBS=1 + cd build + make -j $JOBS verify - uses: actions/upload-artifact@v1 if: failure() |