From 1929cae6614495f543f56f78b73a6de7495da073 Mon Sep 17 00:00:00 2001 From: whqtker Date: Sat, 11 Jul 2026 13:26:29 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=EC=A0=84=EC=B2=B4=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=EB=A5=BC=20=EB=B0=98=EB=B3=B5=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/full-test-repeat.yml | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/workflows/full-test-repeat.yml diff --git a/.github/workflows/full-test-repeat.yml b/.github/workflows/full-test-repeat.yml new file mode 100644 index 000000000..267b4da70 --- /dev/null +++ b/.github/workflows/full-test-repeat.yml @@ -0,0 +1,59 @@ +name: Full Test Suite Repeat + +on: + workflow_dispatch: + inputs: + repeat_count: + description: '전체 테스트를 반복할 횟수' + required: true + default: '10' + +jobs: + repeat-test: + runs-on: ubuntu-latest + permissions: + contents: read + checks: write + + steps: + - name: Checkout the code + uses: actions/checkout@v4 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 + + - name: Make Gradle wrapper executable + run: chmod +x ./gradlew + + - name: Run full test suite N times + run: | + set +e + REPEAT_COUNT="${{ github.event.inputs.repeat_count }}" + FAIL_COUNT=0 + for i in $(seq 1 "$REPEAT_COUNT"); do + echo "=== Run $i/$REPEAT_COUNT ===" + ./gradlew test --rerun-tasks + STATUS=$? + mkdir -p "build/repeat-test-results/run-$i" + cp -r build/test-results/test/. "build/repeat-test-results/run-$i/" 2>/dev/null || true + if [ $STATUS -ne 0 ]; then + FAIL_COUNT=$((FAIL_COUNT + 1)) + echo "Run $i FAILED" + fi + done + echo "Total failures: $FAIL_COUNT / $REPEAT_COUNT" + if [ "$FAIL_COUNT" -ne 0 ]; then + exit 1 + fi + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v5 + if: success() || failure() + with: + report_paths: 'build/repeat-test-results/**/TEST-*.xml'