ci(server): 编译/测试直接在 runner 跑,去嵌套 docker(修 DinD;go 工具链自动下载)

compile-backend/test.sh 原在 golang:1.25 容器里跑,job 容器内 $PWD 在宿主不存在
→ DinD 挂载失败。改直接跑;go.mod 要求 1.25.10,靠 Go 工具链经 goproxy.cn 自动拉取。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-06 14:40:09 +08:00
parent f6e565ffdc
commit 3efd67297e
2 changed files with 8 additions and 16 deletions
+4 -7
View File
@@ -17,13 +17,10 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Compile (Go 控制面, golang:1.25 容器内构建) # 直接在 runner 跑(不嵌套 docker,避免 DinD 挂载失败)。runner 镜像的 go
run: | # 若旧于 go.mod 要求(1.25.10),Go 工具链会经 GOPROXY=goproxy.cn 自动下载对应版本。
mkdir -p "$HOME/.cache/pangolin-ci/gomod" "$HOME/.cache/pangolin-ci/gobuild" - name: Compile (Go 控制面)
docker run --rm -v "$PWD:/w" -w /w \ run: bash scripts/ci/compile-backend.sh
-v "$HOME/.cache/pangolin-ci/gomod:/go/pkg/mod" \
-v "$HOME/.cache/pangolin-ci/gobuild:/root/.cache/go-build" \
golang:1.25 bash scripts/ci/compile-backend.sh
- name: Test (go test) - name: Test (go test)
run: bash scripts/ci/test.sh server run: bash scripts/ci/test.sh server
+4 -9
View File
@@ -21,15 +21,10 @@ TARGET="${1:-}"
case "$TARGET" in case "$TARGET" in
server) server)
mkdir -p "$HOME/.cache/pangolin-ci/gomod" "$HOME/.cache/pangolin-ci/gobuild" # 直接在 runner 跑(不嵌套 docker,避免 DinD 挂载失败)。go.mod 要求的
echo "==> test: go test ./... (golang:1.25 容器)" # go 1.25.x 若高于 runner 自带版本,Go 工具链会经 GOPROXY(_env.sh)自动下载。
docker run --rm \ echo "==> test: go test ./..."
-v "$PWD/server:/app" -w /app \ ( cd server && go test ./... )
-v "$HOME/.cache/pangolin-ci/gomod:/go/pkg/mod" \
-v "$HOME/.cache/pangolin-ci/gobuild:/root/.cache/go-build" \
-e GOPROXY="$GOPROXY" \
golang:1.25 \
go test ./...
;; ;;
client) client)
mkdir -p "$HOME/.cache/pangolin-ci/pubcache" mkdir -p "$HOME/.cache/pangolin-ci/pubcache"