-
Notifications
You must be signed in to change notification settings - Fork 8
59 lines (51 loc) · 1.59 KB
/
Copy pathfull-test-repeat.yml
File metadata and controls
59 lines (51 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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'