本文基于 Jenkins实践(二)------ Jenkinsfile

本文将讲解如何在 Jenkins 中创建多分支流水线任务,使用上一篇文章定义好的 Jenkinsfile 来发布项目。

1. 在 jenkins 管理后台左侧菜单选择 打开Blue Ocean,点击创建流水线,填写 git 地址,账户密码,或者使用SSL 证书,然后点击创建流水线,jenkins 的任务名称会自动以代码的项目名称作为名称。

Jenkins实践(三)------ 创建多分支流程水任务_Jenkins

2. 创建完成之后,我们回到 jenkins 经典的任务配置界面,修改里面的内容。在 Branch Source 中添加一个过滤规则,如下:

Jenkins实践(三)------ 创建多分支流程水任务_Jenkins_02

比如当前 Jenkins 脚本需要部署的是 dev 环境的服务器,那么将 Filter by name 设置为 *master,开发环境拉取 master 分支的代码。测试环境则拉取 dev 分支的代码。正式环境则依旧拉取 prod 分支的代码。(当然如果你自动部署场景为正式环境也需要拉取代码并且编译再部署时,可以参考 dev 和 test 做就行了。因为在我的工作场景中,正式环境不用获取代码编译打包,而是直接获取测试环境下测试通过的最后一个版本,拿到正式环境直接发布即可。)

Jenkins实践(三)------ 创建多分支流程水任务_git_03

将使用的 Jenkinsfile 修改为 Jenkinsfile-dev。测试环境则是 Jenkinsfile-test,正式环境则是 Jenkinsfile-prod

Jenkins实践(三)------ 创建多分支流程水任务_基本语法_04

3. 点击保存,然后就会自动开始编译部署了。


在执行编译任务的过程中,如果出现了 “Scripts not permitted to use method org.apache.maven.model.Model getName” 这种类似的错误,可以在 Jenkins 管理后台中,进入【系统设置】-【In-process Script Approval]】打开权限即可解决。

如果想比较灵活的控制 Jenkinsfile,除了掌握 Jenkinsfile 的基本语法结构之外,最好掌握一点 groovy 的语法,才能更好的编写 Jenkinsfile 脚本。