Jenkins+Docker+git实现多环境快速交付-compose优化升级一文中我们使用docker-compose对项目的环境校验、发版/回滚/重启、操作校验等步骤进行了优化。但是由于job使用的是“自由风格项目”或“mvn项目”,因此都是一个分支对应一个job,虽然也可以通过参数化构建方式实现一个job对应多个分支,常此以往一个项目需要建立很多job,管理非常不便。
解决方案:
Jenkin多分支流水线,允许Jenkinsfile与需要 Jenkins 构建的应用程序代码放在一起,然后 Jenkins 从源代码管理系统中检出 Jenkinsfile 文件作为流水线项目构建过程的一部分并接着执行你的流水线。
下面我们就来体验下Jenkins多分支的构建过程吧。
Jenkinsfile
Jenkins流水线的定义通常需要写入到一个文本文件(称为 Jenkinsfile )中,该文件可以被放入项目的源代码版本库中。
注意:Jenkinsfile放到项目版本库的根路径下。
在此我们还是延续使用helloworld的java项目。
Jenkinsfile的代码如下:
vim Jenkinsfilepipeline { options { ansiColor('xterm') timestamps() } agent { label 'docker-slave-java' } triggers { GenericTrigger (causeString: 'Generic Cause', genericVariables: [[defaultValue: 'deploy', key: 'deploy_env', regexpFilter: '', value: '']], regexpFilterExpression: '', regexpFilterText: '', token: '123456') } environment { APP_NAME = "helloworld" IMAGE_NAME = "helloworld/helloworld" MONITOR_URL = "http://127.0.0.1:8080" JAVA_OPTS = "-Xmx128m -Xms128m -Dspring.profiles.active=branch" PORT = "9080:8080" } parameters { choice choices: ['deploy', 'rollback', 'restart'], description: '''deploy:发布 rollback:回滚 restart:重启 注意:restart 参数只适用与docker环境''', name: 'deploy_env' string defaultValue: '0', description: '''回滚版本号,发版时忽略 注意: 版本号为git commitid,如7e2c56522188c98f6294d91c8568dfcedf994e42。''&#

本文介绍了如何使用Jenkins多分支流水线管理不同git分支,通过Jenkinsfile实现自动化构建。Jenkinsfile根据dev、test、master分支执行不同操作,如开发部署、测试部署和邮件通知。在实践中,多分支流水线简化了项目管理,但可能引发版本冲突,建议采用共享库优化。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



