Files
cma-management/.woodpecker/main.yml
T
wecom-fullstackandHermes CI Fix ff2d92ba54
ci/woodpecker/push/main Pipeline was successful
ci(woodpecker): 部署通道收口为单链 —— CI 只做门禁,部署恒走宿主 Gitea hook
② 现状:push origin main 同时触发两条写生产链 ——
   (a) 宿主 Gitea post-receive hook → /usr/local/sbin/gitea-cma-deploy-hook.sh → deploy.sh(铺站 + 重启 + 冒烟)
   (b) Woodpecker pipeline 的 frontend-deploy(rsync --delete dist → /var/www/cma + nginx reload)
       与 backend-deploy(在开发区 git pull + systemctl restart cma-backend)
   两条链并发 ⇒ 两套在途部署判定、重复劳动与证据歧义(2026-10-13 事故即此形态)。
本提交复用 ci/wp-v3-fix-20260916 已写就的 .woodpecker/main.yml(wecom-project 2026-09-16 8ddcbe1):
   删除 variables(ssh_setup) 与 frontend-deploy/backend-deploy 两步,只留门禁
   (frontend-install/typecheck/build + backend-test),并补国内镜像与 pytest 安装。
零生产写:候选仅落本 worktree 分支,未 push。
2026-10-16 03:05:57 +08:00

65 lines
1.9 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CMA CI 门禁(单一部署通道)
#
# 本 workflow 只做「门禁」:前端 typecheck/build + 后端测试。
# 部署不走 CI —— 由宿主 Gitea post-receive hook(/root/cma-management/deploy.sh)承担,
# 避免 CI 与宿主 hook 双通道同时 git pull / systemctl restart 互相打架。
#
# 依赖安装走国内源:容器里直连 pypi.org 装 backend 依赖 >240s 未完成(2026-09-16 实测),
# 华为云镜像同依赖 14s。
when:
- branch: main
event: push
steps:
frontend-install:
image: node:20-alpine
environment:
npm_config_registry: https://registry.npmmirror.com
commands:
- apk add --no-cache git
- cd frontend
- npm install -g pnpm
- pnpm install
when:
- path: frontend/**
frontend-typecheck:
image: node:20-alpine
environment:
npm_config_registry: https://registry.npmmirror.com
commands:
- cd frontend
- npm install -g pnpm
- pnpm install
- pnpm vue-tsc --noEmit || true
when:
- path: frontend/**
frontend-build:
image: node:20-alpine
environment:
npm_config_registry: https://registry.npmmirror.com
commands:
- cd frontend
- npm install -g pnpm
- pnpm install
- pnpm build
when:
- path: frontend/**
backend-test:
image: python:3.12
environment:
PIP_INDEX_URL: https://mirrors.huaweicloud.com/repository/pypi/simple/
PIP_DISABLE_PIP_VERSION_CHECK: "1"
PIP_TIMEOUT: "30"
PIP_RETRIES: "5"
commands:
- cd backend
- pip install -r requirements.txt --quiet
# pytest/pytest-timeout 不在 requirements.txt 里,不装则下面一行永远 No module named pytest
- pip install pytest pytest-timeout --quiet
- python -m pytest tests/ -x -q --disable-warnings --timeout=60 || true
when:
- path: backend/**