77 branches : [ dev ]
88
99env :
10- GRADLE_OPTS : " -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Dkotlin.incremental=false -Dorg.gradle.caching=false "
10+ GRADLE_OPTS : " -Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Dkotlin.incremental=false"
1111
1212jobs :
13- # 🐳 Setup Docker & Testcontainers
14- setup-docker :
15- name : " 🐳 Setup Docker & Testcontainers"
16- runs-on : ubuntu-latest
17- timeout-minutes : 10
18-
19- steps :
20- - name : Checkout code
21- uses : actions/checkout@v4
22- with :
23- fetch-depth : 0
24-
25- - name : Set up Docker Buildx
26- uses : docker/setup-buildx-action@v3
27-
28- - name : Cache Docker layers
29- uses : actions/cache@v4
30- with :
31- path : /tmp/.buildx-cache
32- key : ${{ runner.os }}-docker-${{ hashFiles('**/Dockerfile*', '**/docker-compose*') }}
33- restore-keys : |
34- ${{ runner.os }}-docker-
35-
36- - name : Verify Docker installation
37- run : |
38- docker --version
39- docker info
40- docker ps
41-
42- - name : Pre-pull Testcontainers images
43- run : |
44- # 预拉取常用的测试镜像,提高 Testcontainers 启动速度
45- docker pull postgres:15-alpine || true
46- docker pull redis:7-alpine || true
47- docker pull mysql:8.0 || true
48- docker pull mongo:7 || true
49- docker pull minio/minio:latest || true
50- docker pull nginx:alpine || true
51-
52- # ☕ Setup JDK
53- setup-jdk :
54- name : " ☕ Setup JDK"
55- runs-on : ubuntu-latest
56- needs : setup-docker
57- timeout-minutes : 5
58-
59- steps :
60- - name : Checkout code
61- uses : actions/checkout@v4
62- with :
63- fetch-depth : 0
64-
65- - name : Set up JDK 17
66- uses : actions/setup-java@v4
67- with :
68- java-version : ' 17'
69- distribution : ' temurin'
70-
71- - name : Verify Java installation
72- run : |
73- java -version
74- javac -version
75-
76- # 🔧 Setup Gradle
77- setup-gradle :
78- name : " 🔧 Setup Gradle"
79- runs-on : ubuntu-latest
80- needs : setup-jdk
81- timeout-minutes : 10
82-
83- steps :
84- - name : Checkout code
85- uses : actions/checkout@v4
86- with :
87- fetch-depth : 0
88-
89- - name : Set up JDK 17
90- uses : actions/setup-java@v4
91- with :
92- java-version : ' 17'
93- distribution : ' temurin'
94-
95- - name : Cache Gradle dependencies
96- uses : actions/cache@v4
97- with :
98- path : |
99- ~/.gradle/caches
100- ~/.gradle/wrapper
101- ~/.konan
102- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
103- restore-keys : |
104- ${{ runner.os }}-gradle-
105-
106- - name : Setup Gradle
107- uses : gradle/actions/setup-gradle@v4
108- with :
109- gradle-version : ' 9.0.0-rc-3'
110- cache-read-only : false
111- cache-cleanup : on-success
112-
113- - name : Grant execute permission for gradlew
114- run : chmod +x gradlew
115-
116- - name : Warm up Gradle daemon
117- run : ./gradlew --version
118-
11913 # 🧪 Run All Tests
120- run-tests :
14+ test :
12115 name : " 🧪 Run All Tests"
12216 runs-on : ubuntu-latest
123- needs : setup-gradle
12417 timeout-minutes : 45
12518
12619 steps :
@@ -134,15 +27,19 @@ jobs:
13427 with :
13528 java-version : ' 17'
13629 distribution : ' temurin'
30+ cache : gradle
13731
13832 - name : Cache Gradle dependencies
13933 uses : actions/cache@v4
14034 with :
14135 path : |
14236 ~/.gradle/caches
14337 ~/.gradle/wrapper
38+ ~/.gradle/gradle.properties
39+ ~/.gradle/buildOutputCleanup
14440 ~/.konan
145- key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
41+ ~/.m2/repository
42+ key : ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml', '**/gradle.properties') }}
14643 restore-keys : |
14744 ${{ runner.os }}-gradle-
14845
@@ -164,15 +61,6 @@ jobs:
16461 restore-keys : |
16562 ${{ runner.os }}-docker-
16663
167- - name : Pre-pull Testcontainers images
168- run : |
169- docker pull postgres:15-alpine || true
170- docker pull redis:7-alpine || true
171- docker pull mysql:8.0 || true
172- docker pull mongo:7 || true
173- docker pull minio/minio:latest || true
174- docker pull nginx:alpine || true
175-
17664 - name : Grant execute permission for gradlew
17765 run : chmod +x gradlew
17866
0 commit comments