Forgejo Actions CI/CD 共享 workflow 模板(gitleaks、Trivy、WP 发布)
- 空容器列表跳过 docker ps 检查(cravatar-prod/wptea-prod) - cravatar.cn → cn.cravatar.com(直接检查目标,跳过 301) - 移除已停用的 fonts.wptea.com(网站+SSL) - 网站检查改用默认 SSL 上下文(CERT_NONE 导致部分服务器 TLS 握手失败) - 品牌名修正:微小朵 → 薇晓朵 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| docs/plans | ||
| scripts | ||
| .gitignore | ||
| CLAUDE.md | ||
| README.md | ||
| renovate-default.json | ||
| renovate-global.json | ||
CI Workflows 共享模板
Forgejo Actions CI/CD 共享 workflow 模板,供 feicode.com 上的仓库使用。
包含的 Workflow
1. gitleaks 密钥泄露扫描 (gitleaks.yml)
- 每次 push 和 PR 自动扫描代码中的 API key、密码、token 等敏感信息
- 使用 gitleaks 引擎
2. Trivy 依赖漏洞扫描 (trivy.yml)
- 扫描
composer.lock、package-lock.json等锁文件中的已知漏洞 - 仅报告 HIGH 和 CRITICAL 级别
- 支持
.trivyignore文件忽略特定 CVE - 每周一定时扫描 + lockfile 变更时触发
3. WordPress 插件 CI (wp-plugin-ci.yml)
- Push/PR 到 main/master 时自动触发
- PHP Parallel Lint 语法检查
- PHPCS 代码规范检查(支持自定义配置)
- Gitleaks 密钥泄露扫描
4. Go 项目 CI (go-ci.yml)
- Push/PR 到 main/master 时自动触发
go vet静态检查golangci-lint代码规范检查(支持自定义配置,未安装时自动安装)go test -race单元测试 + 覆盖率- Gitleaks 密钥泄露扫描
5. TypeScript/JS 项目 CI (ts-ci.yml)
- Push/PR 到 main/master 时自动触发
- 自动检测包管理器(npm/yarn/pnpm)
tsc --noEmitTypeScript 类型检查- ESLint 代码规范检查(支持 flat config)
- Gitleaks 密钥泄露扫描
6. WordPress 插件自动发布 (wp-release.yml)
- 打 tag 时自动触发:
v*格式 - 版本一致性校验(tag vs 插件头 vs readme.txt Stable tag)
- PHP lint 语法检查
- ZIP 构建 + SHA-256 校验和
- 智能 Release 创建/更新 + 资产上传(带重试和验证)
- 可选:部署后 composer repair(需配置
DEPLOY_*secrets) - 可选:更新 API 元数据验证(需配置
UPDATE_API_BASE) - 可选:失败时通知 AI CI 助手(需配置
AI_WEBHOOK_ENDPOINT) - 需要在仓库 Settings → Secrets 中配置
RELEASE_TOKEN
7. 综合安全扫描 (security-scan.yml)
- Push/PR 到 main/master 时自动触发(依赖文件或 Dockerfile 变更)
- 每周一定时扫描
- Hadolint Dockerfile 规范检查
- Composer / npm / Go 依赖安全审计
- Trivy 容器镜像漏洞扫描
- 高危漏洞阻断合并
8. Renovate 依赖更新 (renovate.yml)
- 每周一、四凌晨 4 点自动运行
- 自动发现 WenPai-org 下所有仓库
- 检测 composer.json / package.json / go.mod 依赖更新
- patch 更新自动合并,minor/major 需审核
- 安全漏洞更新优先处理
- 需要配置 Secrets:
FORGEJO_URL、RENOVATE_TOKEN - 各仓库可放置
renovate.json自定义策略(参考renovate-default.json)
9. Stale Issue/PR 清理 (stale-cleanup.yml)
- 每周一凌晨 5 点自动运行
- Issue: 60 天无活动标记 stale,74 天自动关闭
- PR: 30 天无活动标记 stale,44 天自动关闭
- 排除 pinned / help-wanted / bug / security 标签
- 需要配置 Secret:
RELEASE_TOKEN
10. Auto Label (auto-label.yml)
- PR 创建/更新时自动触发
- 根据文件类型打标签:php / frontend / go / ci/cd / dependencies / documentation / docker / style
- 根据 PR 变更量打大小标签:size/S / size/M / size/L / size/XL
- 标签不存在时自动创建(含预设颜色)
- 需要配置 Secret:
RELEASE_TOKEN
使用方法
将需要的 .yml 文件复制到你的仓库的 .forgejo/workflows/ 目录下即可。
# 示例:为你的仓库添加 gitleaks 扫描
mkdir -p .forgejo/workflows
curl -o .forgejo/workflows/gitleaks.yml \
https://feicode.com/WenPai-org/ci-workflows/raw/branch/main/.forgejo/workflows/gitleaks.yml
git add .forgejo/workflows/gitleaks.yml
git commit -m "ci: 添加 gitleaks 密钥泄露扫描"