Skip to content

⬆️ [testcontainers] 更新测试版本 #18

⬆️ [testcontainers] 更新测试版本

⬆️ [testcontainers] 更新测试版本 #18

Workflow file for this run

name: CI
on:
push:
branches: [ dev ]
pull_request:
branches: [ dev ]
env:
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.parallel=true -Dorg.gradle.workers.max=4 -Dkotlin.incremental=false"
jobs:
# 🧪 Run All Tests
test:
name: "🧪 Run All Tests"
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Cache Gradle dependencies
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
~/.gradle/gradle.properties
~/.gradle/buildOutputCleanup
~/.konan
~/.m2/repository
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'gradle/libs.versions.toml', '**/gradle.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
gradle-version: '9.0.0-rc-3'
cache-read-only: false
cache-cleanup: on-success
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
uses: actions/cache@v4
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-docker-${{ hashFiles('**/Dockerfile*', '**/docker-compose*') }}
restore-keys: |
${{ runner.os }}-docker-
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run all tests
run: ./gradlew clean test --no-daemon --stacktrace --parallel --no-build-cache --no-configuration-cache --rerun-tasks
env:
# Testcontainers 优化配置
TESTCONTAINERS_RYUK_DISABLED: false
TESTCONTAINERS_CHECKS_DISABLE: false
TESTCONTAINERS_REUSE_ENABLE: true
TESTCONTAINERS_HUB_IMAGE_NAME_PREFIX: ""
# 启用容器重用标签,提高缓存效率
TESTCONTAINERS_REUSE_HASH_LABELS: true
# Docker 性能优化
DOCKER_HOST: unix:///var/run/docker.sock
TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE: /var/run/docker.sock
TESTCONTAINERS_HOST_OVERRIDE: localhost
# Docker 镜像缓存优化
DOCKER_BUILDKIT: 1
BUILDKIT_PROGRESS: plain
# JVM 性能调优
MAVEN_OPTS: "-Xmx2g -XX:+UseG1GC"
# CI 环境配置
CI: true
GRADLE_BUILD_ACTION_CACHE_DEBUG_ENABLED: true
- name: Cleanup Docker containers
if: always()
run: |
# 清理停止的容器,但保留可重用的容器
docker container prune -f --filter "until=1h" --filter "label!=org.testcontainers.reuse.enable=true"
# 保留常用镜像,只清理较老的镜像
docker image prune -f --filter "until=48h" --filter "dangling=true"
# 清理未使用的卷,但保留标记为保留的卷
docker volume prune -f --filter "label!=keep" --filter "label!=org.testcontainers"
- name: Cache cleanup
if: always()
run: |
# 清理旧的 Gradle 缓存文件
find ~/.gradle/caches -name "*.lock" -delete || true
find ~/.gradle/caches -type d -name "tmp" -exec rm -rf {} + || true