Skip to content

Commit 8b850f9

Browse files
committed
🤖 [ci] 优化 ci 流程
1 parent 9d2b868 commit 8b850f9

1 file changed

Lines changed: 23 additions & 24 deletions

File tree

.github/workflows/ci.yaml

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -67,49 +67,48 @@ jobs:
6767
- name: Warm up Gradle daemon
6868
run: ./gradlew --version
6969

70-
- name: Run build and tests
71-
run: ./gradlew clean build test --no-daemon --stacktrace --parallel --build-cache --configuration-cache
70+
- name: Pre-pull common Docker images for Testcontainers
71+
run: |
72+
# 预拉取常用的测试镜像,提高 Testcontainers 启动速度
73+
docker pull postgres:15-alpine || true
74+
docker pull redis:7-alpine || true
75+
docker pull mysql:8.0 || true
76+
docker pull mongo:7 || true
77+
docker pull nginx:alpine || true
78+
# 可以根据你的项目需要调整镜像列表
79+
80+
- name: Run tests
81+
run: ./gradlew clean test --no-daemon --stacktrace --parallel --build-cache --configuration-cache
7282
env:
7383
# Testcontainers 优化配置
7484
TESTCONTAINERS_RYUK_DISABLED: false
7585
TESTCONTAINERS_CHECKS_DISABLE: false
7686
TESTCONTAINERS_REUSE_ENABLE: true
7787
TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX: ""
88+
# 启用容器重用标签,提高缓存效率
89+
TESTCONTAINERS_REUSE_HASH_LABELS: true
7890
# Docker 性能优化
7991
DOCKER_HOST: unix:///var/run/docker.sock
8092
TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE: /var/run/docker.sock
8193
TESTCONTAINERS_HOST_OVERRIDE: localhost
94+
# Docker 镜像缓存优化
95+
DOCKER_BUILDKIT: 1
96+
BUILDKIT_PROGRESS: plain
8297
# JVM 性能调优
8398
MAVEN_OPTS: "-Xmx2g -XX:+UseG1GC"
8499
# CI 环境配置
85100
CI: true
86101
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
87102

88-
- name: Upload test results
89-
uses: actions/upload-artifact@v4
90-
if: always()
91-
with:
92-
name: test-results
93-
path: |
94-
**/build/test-results/test/
95-
**/build/reports/tests/test/
96-
**/build/reports/jacoco/
97-
98-
- name: Upload coverage reports
99-
uses: actions/upload-artifact@v4
100-
if: always()
101-
with:
102-
name: coverage-reports
103-
path: |
104-
**/build/reports/jacoco/test/html/
105-
**/build/reports/jacoco/test/jacocoTestReport.xml
106-
107103
- name: Cleanup Docker containers
108104
if: always()
109105
run: |
110-
docker container prune -f --filter "until=1h"
111-
docker image prune -f --filter "until=24h"
112-
docker volume prune -f --filter "label!=keep"
106+
# 清理停止的容器,但保留可重用的容器
107+
docker container prune -f --filter "until=1h" --filter "label!=org.testcontainers.reuse.enable=true"
108+
# 保留常用镜像,只清理较老的镜像
109+
docker image prune -f --filter "until=48h" --filter "dangling=true"
110+
# 清理未使用的卷,但保留标记为保留的卷
111+
docker volume prune -f --filter "label!=keep" --filter "label!=org.testcontainers"
113112
114113
- name: Cache cleanup
115114
if: always()

0 commit comments

Comments
 (0)