Jenkins 流水线 获取git 分支列表_Jenkins多分支流水线

本文介绍了如何使用Jenkins多分支流水线管理不同git分支,通过Jenkinsfile实现自动化构建。Jenkinsfile根据dev、test、master分支执行不同操作,如开发部署、测试部署和邮件通知。在实践中,多分支流水线简化了项目管理,但可能引发版本冲突,建议采用共享库优化。
摘要由CSDN通过智能技术生成
d7d50d368bdc1cf5955213c6b2869217.png

Jenkins+Docker+git实现多环境快速交付-compose优化升级一文中我们使用docker-compose对项目的环境校验、发版/回滚/重启、操作校验等步骤进行了优化。但是由于job使用的是“自由风格项目”或“mvn项目”,因此都是一个分支对应一个job,虽然也可以通过参数化构建方式实现一个job对应多个分支,常此以往一个项目需要建立很多job,管理非常不便。

解决方案:

Jenkin多分支流水线,允许Jenkinsfile与需要 Jenkins 构建的应用程序代码放在一起,然后 Jenkins 从源代码管理系统中检出 Jenkinsfile 文件作为流水线项目构建过程的一部分并接着执行你的流水线。

下面我们就来体验下Jenkins多分支的构建过程吧。

Jenkinsfile

Jenkins流水线的定义通常需要写入到一个文本文件(称为 Jenkinsfile )中,该文件可以被放入项目的源代码版本库中。

注意:Jenkinsfile放到项目版本库的根路径下。

在此我们还是延续使用helloworld的java项目。

ef85fbc1943288b2114567ef3d648c3d.png

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。''&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值