a64037881a
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2m20s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 3m28s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 3m16s
AI Code Review / AI Code Review (pull_request) Successful in 1m59s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m13s
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m59s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m8s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m45s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m8s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 9m25s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 4m16s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 16m45s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / CI Gate (pull_request) Failing after 28s
1. build-staging 路径过滤:纯前端改动只构建Web,纯后端只构建API/Worker; 未重建镜像通过 retag-staging-skipped job 将分支tag retag为新SHA推送,Watchtower链路不变 2. deploy-staging、acr-cleanup runs-on 从 runtime-builder 改为 ci-l2,释放构建槽 3. buildx 改为宿主机持久 builder(ci-builder-persist)+buildkit命名卷缓存, job结束不再prune,Worker镜像同样接入buildx缓存 4. validate/unit-test/frontend-test 的 pip/npm 依赖通过宿主机命名卷持久化缓存 (runner config 挂载 ci-pip-cache/xiaoxia-npm-cache/act-toolcache) 5. 不影响生产构建/发版/canary 相关 job
26 lines
934 B
Bash
Executable File
26 lines
934 B
Bash
Executable File
#!/bin/bash
|
|
# CI 公共步骤:确保宿主机持久 buildx builder 存在(DooD 模式下所有 job 共享)
|
|
# - builder 名固定: ci-builder-persist
|
|
# - docker-container driver, host 网络
|
|
# - 层缓存保存在 buildkit 容器及其 _state 命名卷中,job 结束不清理
|
|
# - 宿主机 ci-docker-cleanup.sh 已豁免该 builder
|
|
# 用法: bash scripts/ci/ensure_persistent_builder.sh
|
|
set -eu
|
|
|
|
BUILDER="ci-builder-persist"
|
|
|
|
if ! docker buildx inspect "$BUILDER" >/dev/null 2>&1; then
|
|
echo "=== 创建持久 buildx builder: $BUILDER ==="
|
|
docker buildx create --name "$BUILDER" --driver docker-container \
|
|
--driver-opt network=host \
|
|
--buildkitd-flags "--allow-insecure-entitlement network.host" \
|
|
--platform linux/amd64
|
|
else
|
|
echo "=== 复用持久 buildx builder: $BUILDER ==="
|
|
fi
|
|
|
|
docker buildx use "$BUILDER"
|
|
docker buildx inspect "$BUILDER" --bootstrap
|
|
echo "✅ builder ready"
|
|
docker buildx ls | head -5
|