Skip to content
返回部署

Jenkins CI/CD

自托管 CI/CD,Jenkinsfile、插件和分布式 agent。

CI/CD高级

为什么

Jenkins 最可扩展 CI/CD,1800+ 插件。Jenkinsfile(Groovy DSL)定义流水线即代码。自托管完全控制 runner。

何时使用

复杂企业 CI、本地需求和已用团队用 Jenkins。新云原生避免(用 GH Actions)。

如何做

1. 安装 — Jenkins WAR 或 Docker 2. 流水线 — 仓库中 Jenkinsfile 3. Agent — 分布式构建 agent 4. 插件 — 安装所需插件 5. 凭证 — Jenkins 凭证存储 6. 多分支 — 自动发现分支 7. 声明式 — pipeline { } 语法

示例

# Jenkinsfile pipeline { agent any stages { stage('Build') { steps { sh 'npm ci && npm run build' } } stage('Test') { steps { sh 'npm test' } } stage('Deploy') { when: { branch 'main' } steps { withCredentials([string(credentialsId: 'vercel-token', variable: 'TOKEN')]) { sh 'npx vercel --prod --token $TOKEN' } } } } } # Docker 中运行 Jenkins docker run -d -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts

常见问题

  • ⚠插件地狱 — 插件过多,慢且脆弱,最小化插件
  • ⚠Jenkinsfile 语法错误 — 用 Jenkins VS Code 扩展验证
  • ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致

最佳实践

  • ✓用声明式流水线 — 更清晰语法,更好 IDE 支持
  • ✓最小化插件 — 每插件加风险,仅装所需
  • ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求

常见问题解答