perf(ci): ci-base 镜像预装 ffmpeg——消除 unit-tests 每次 24min apt 安装
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
AI Code Review / AI Code Review (pull_request) Successful in 2m27s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m41s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m40s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m57s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m5s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m42s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m59s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 5m6s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 7m35s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 8m15s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 16m23s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 5m15s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5m16s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 375h4m36s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 375h4m37s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 375h4m38s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 375h4m38s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 375h4m38s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 375h18m9s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 375h18m11s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 375h18m13s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 375h18m19s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 375h18m21s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 375h18m23s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 375h18m42s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 375h18m46s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 375h19m44s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 375h20m21s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 375h23m47s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 375h38m52s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 375h52m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 375h52m59s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 375h54m34s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 3s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
AI Code Review / AI Code Review (pull_request) Successful in 2m27s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m41s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m40s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m57s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m5s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m42s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 4m59s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 5m6s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 7m35s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 8m15s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 16m23s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 5m15s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 5m16s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 375h4m36s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 375h4m37s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 375h4m38s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 375h4m38s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 375h4m38s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 375h18m9s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 375h18m11s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 375h18m13s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 375h18m19s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 375h18m21s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 375h18m23s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 375h18m42s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 375h18m46s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 375h19m44s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 375h20m21s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 375h23m47s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 375h38m52s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 375h52m24s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 375h52m59s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 375h54m34s
unit-tests job 跑在全新容器里,ci-base 镜像未预装 ffmpeg, step_install_ffmpeg.sh 每次都 apt-get update + install ffmpeg, ffmpeg 拉取 x264/aom/systemd 等数百个编解码依赖,固定耗时约 24 分钟, pytest 本身 21-23 分钟,导致该 job 每次 45-50 分钟。 把 ffmpeg 预装到 ci-base 镜像后,step_install_ffmpeg.sh 检测到 ffmpeg 已存在会立即退出(exit 0),unit-tests 直接省掉 ~24 分钟。 注:ci-base 镜像需重建并推送 registry 后生效。
This commit is contained in:
@@ -30,6 +30,14 @@ RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends docker-ce-cli docker-buildx-plugin \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Pre-bake ffmpeg: unit-tests run in fresh containers each time; installing ffmpeg
|
||||
# on every job cost ~24 min (apt update + hundreds of codec deps). Bake it into the
|
||||
# image so step_install_ffmpeg.sh detects it and exits instantly.
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends ffmpeg \
|
||||
&& ffmpeg -version | head -1 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Pre-install base deps (layer cache)
|
||||
COPY requirements-base.txt ./
|
||||
RUN python -m venv "$VIRTUAL_ENV" \
|
||||
|
||||
Reference in New Issue
Block a user