diff --git a/.gitea/workflows/deploy-test.yml b/.gitea/workflows/deploy-test.yml index a890f32..29cac42 100644 --- a/.gitea/workflows/deploy-test.yml +++ b/.gitea/workflows/deploy-test.yml @@ -39,20 +39,25 @@ jobs: echo "SSH 密钥就绪" - name: Build jar (Maven + JDK21 in docker, 带依赖缓存卷) + # 注意: job 容器内的路径对宿主机 daemon 不可见, 不能用 -v "$PWD" 挂载; + # 用 docker cp 流式传文件(与 build context 同机制) run: | set -e docker volume create tianai-maven-cache >/dev/null 2>&1 || true - docker run --rm -v "$PWD":/ws -v tianai-maven-cache:/root/.m2 -w /ws \ - maven:3.9-eclipse-temurin-21 mvn -q package -DskipTests - ls -la tianai-captcha-platform/target/*.jar + docker rm -f mvnbuild 2>/dev/null || true + docker run -d --name mvnbuild -v tianai-maven-cache:/root/.m2 -w /ws \ + maven:3.9-eclipse-temurin-21 sleep infinity + docker cp "$GITHUB_WORKSPACE/." mvnbuild:/ws/ + docker exec mvnbuild mvn -q package -DskipTests + docker cp mvnbuild:/ws/tianai-captcha-platform/target/tianai-captcha-platform-2.0.0-SNAPSHOT.jar \ + "$GITHUB_WORKSPACE/tianai-captcha-platform/tianai-captcha-platform-2.0.0-SNAPSHOT.jar" + docker rm -f mvnbuild + ls -la tianai-captcha-platform/*.jar - name: Build & push image run: | set -e SHA=$(echo "$GITHUB_SHA" | cut -c1-8) - # Dockerfile 约定 jar 在构建上下文根目录 - cp tianai-captcha-platform/target/tianai-captcha-platform-*.jar \ - tianai-captcha-platform/tianai-captcha-platform-2.0.0-SNAPSHOT.jar docker build -t $IMAGE:test -t $IMAGE:sha-$SHA tianai-captcha-platform docker push $IMAGE:test docker push $IMAGE:sha-$SHA