Jenkins CI/CD流水线配置
Jenkins是最老牌的CI/CD工具,拥有最丰富的插件生态。通过Jenkins Pipeline,可以实现代码提交后自动构建、测试、部署的完整流程。本文分享Jenkins流水线的配置方法和最佳实践。
Jenkinsfile
Jenkins使用Jenkinsfile(放在项目根目录)定义流水线。Pipeline分为Declarative(声明式,推荐)和Scripted(脚本式)两种语法。声明式语法更清晰易读。
一个典型的Java项目Pipeline:checkout → build(Maven编译)→ unit test → code quality(SonarQube扫描)→ docker build → push image → deploy to staging → integration test → approve → deploy to production。
关键配置
agent:指定在哪个节点执行。可以指定Docker容器作为构建环境,保证构建环境一致性。
stages:定义各个阶段。每个stage包含steps(具体操作)。stage之间可以设置并行(parallel)。
post:定义Pipeline结束后的操作。always(总是执行,如清理工作空间)、success(成功时发送通知)、failure(失败时发送告警)。
凭证管理
Jenkins Credentials Plugin管理敏感信息:SSH密钥、Docker Registry密码、数据库密码等。在Pipeline中通过 withCredentials 使用,不会在日志中暴露。
最佳实践
使用Jenkins Shared Library抽取公共逻辑,多个项目复用。使用 when 条件控制stage执行(如只在master分支部署到生产)。配置构建超时(timeout),防止僵尸构建。使用Blue Ocean界面查看Pipeline可视化。定期清理构建历史,释放磁盘空间。
