Skip to content

Commit 170f799

Browse files
committed
🤖 [ci] 优化 ci 执行速度
1 parent 3afef59 commit 170f799

2 files changed

Lines changed: 12 additions & 172 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 7 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -7,120 +7,13 @@ on:
77
branches: [ dev ]
88

99
env:
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

1212
jobs:
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

.github/workflows/maven-central-publish.yaml

Lines changed: 5 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -14,60 +14,8 @@ env:
1414
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4"
1515

1616
jobs:
17-
validate:
18-
name: Validate Release
19-
runs-on: ubuntu-latest
20-
timeout-minutes: 15
21-
22-
outputs:
23-
version: ${{ steps.version.outputs.version }}
24-
25-
steps:
26-
- name: Checkout code
27-
uses: actions/checkout@v4
28-
with:
29-
fetch-depth: 0
30-
31-
- name: Cache Gradle dependencies
32-
uses: actions/cache@v4
33-
with:
34-
path: |
35-
~/.gradle/caches
36-
~/.gradle/wrapper
37-
~/.konan
38-
key: ${{ runner.os }}-gradle-publish-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
39-
restore-keys: |
40-
${{ runner.os }}-gradle-publish-
41-
${{ runner.os }}-gradle-
42-
43-
- name: Set up JDK 17
44-
uses: actions/setup-java@v4
45-
with:
46-
java-version: '17'
47-
distribution: 'temurin'
48-
49-
- name: Setup Gradle
50-
uses: gradle/actions/setup-gradle@v4
51-
with:
52-
gradle-version: '9.0.0-rc-3'
53-
cache-cleanup: on-success
54-
55-
- name: Grant execute permission for gradlew
56-
run: chmod +x gradlew
57-
58-
- name: Validate build
59-
run: ./gradlew clean build --no-daemon --stacktrace
60-
env:
61-
CI: true
62-
63-
- name: Run tests
64-
run: ./gradlew test --no-daemon --stacktrace --parallel
65-
env:
66-
CI: true
67-
6817
publish:
6918
name: Publish to Maven Central
70-
needs: validate
7119
runs-on: ubuntu-latest
7220
timeout-minutes: 60
7321
environment: maven-central
@@ -84,8 +32,11 @@ jobs:
8432
path: |
8533
~/.gradle/caches
8634
~/.gradle/wrapper
35+
~/.gradle/gradle.properties
36+
~/.gradle/buildOutputCleanup
8737
~/.konan
88-
key: ${{ runner.os }}-gradle-publish-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml') }}
38+
~/.m2/repository
39+
key: ${{ runner.os }}-gradle-publish-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml', '**/gradle.properties') }}
8940
restore-keys: |
9041
${{ runner.os }}-gradle-publish-
9142
${{ runner.os }}-gradle-
@@ -95,6 +46,7 @@ jobs:
9546
with:
9647
java-version: '17'
9748
distribution: 'temurin'
49+
cache: gradle
9850

9951
- name: Setup Gradle
10052
uses: gradle/actions/setup-gradle@v4

0 commit comments

Comments
 (0)