Skip to content
返回部署

使用 Woodpecker CI 部署

Drone CI 的社区分支,改进功能并积极开发。

CI/CD进阶

为什么

Woodpecker 是轻量级、容器原生的 CI,完全开源且可自托管。DORA 2024 DevOps 状态报告显示精英团队部署频率比低绩效团队高 973 倍。

带自动化测试的 CI/CD 管道将变更失败率降至 5-15%,而手动部署为 40-60%。

何时使用

需要自托管 CI,支持 Docker 原生执行和 Gitea/Forgejo 集成。贡献者少于 5 人的仓库避免复杂管道编排 — pre-commit 钩子 + GitHub Actions 足够。

除非需要 GPU 或 VPN 访问,否则跳过自托管 runner。

如何做

# .woodpecker.YML steps: build: image: node:20 commands: - npm ci - npm run build - npm test deploy: image: bitnami/kubectl commands: - kubectl apply -f k8s/ when: branch: main event: push 4. 验证部署 — curl -I https://your-app.example.com 5. 监控日志 — 前 5 分钟检查错误 6. 需要时回滚 — 回退到上一版本

示例

# Woodpecker 服务器 via Docker docker run -d --name woodpecker-server \ -p 8000:8000 \ -e WOODPECKER_OPEN=true \ -e WOODPECKER_HOST=https://ci.example.com \ -e WOODPECKER_GITEA=true \ -e WOODPECKER_GITEA_URL=https://gitea.example.com \ -v woodpecker-data:/var/lib/woodpecker \ woodpeckerci/woodpecker-server:latest

常见问题

  • ⚠Agent 无法拉镜像 — 检查 Docker socket 挂载
  • ⚠Webhook 未触发 — 在 Gitea 中验证仓库设置
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓用矩阵构建 — 跨 Node 版本测试
  • ✓用 Woodpecker secret — 切勿硬编码凭据
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答