From 0e4e79c55da3d2e8eb32c931e6f5e9509abb1b1b Mon Sep 17 00:00:00 2001 From: Ethan Mateja Date: Sat, 2 Mar 2024 00:27:30 -0800 Subject: [PATCH] Improve Integration Test Suite Resilience (#273) * Improve Integration Test Suite Resiliency --- .github/workflows/tests.yml | 3 ++- script/run_tests.sh | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100755 script/run_tests.sh diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 70c1001f..a45321fe 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -32,8 +32,9 @@ jobs: - name: Start Docker containers run: dev/up + # retries are added due to test failures with dependencies - name: Run tests - run: swift test --vv + run: script/run_tests.sh - name: Stop local test server run: docker-compose -p xmtp-ios -f dev/local/docker-compose.yml down \ No newline at end of file diff --git a/script/run_tests.sh b/script/run_tests.sh new file mode 100755 index 00000000..e2aba9ed --- /dev/null +++ b/script/run_tests.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +retries=0 +# Given the resource limitations and external dependencies for the test suite, +# a retry count of at least 10 is needed. +until [ $retries -ge 10 ] +do + echo "Running Test Suite Attempt ($retries)...." + swift test -v | grep -E "Test Case|XCTAssert|failures" + + exit_code=$? + + if [ $exit_code -eq 0 ]; then + echo "Test Succeeded" + break + else + ((retries=retries+1)) + echo "Test Suite Failed." + fi +done + +if [ $retries -ge 10 ]; then + echo "Maximum number of retries exceeded. Exiting with status code 1." + exit 1 +fi