按分支发布
在实际开发过程中,一般会使用Git Flow流程开发,多个迭代伴随着多个分支,比如develop、release、master等分支,所以存在发布同分支代码的情况。
选择指定分支发布,需要借助Git Parameter插件,也就是参数化构建中可选Git参数,插件安装如下:
保存后,点击构建,此时可以看到目前我们的代码只有一个master分支,就算你配置的默认值是develop,也不会显示出来。
分支新建完成后,再次构建
修改test分支的返回代码,develop分支的不做改动,我们来看2个分支发布后的不同效果
先构建test分支,再构建develop分支,并在浏览器地址访问,查看不同分支的构建效果是否成功
上面我们介绍了按照分支发布,但是分支发布具有一定的局限性,是属于一个粗粒度较大的发布方式,所以在企业中更多的会选择Tag(标签)进行发布,Tag更具备追溯性,回滚控制会更加简单。
Tag一般用来做里程碑式的存档,比如阿里开源的Nacos框架,其中就有v1.1.0、v1.2.0
2种创建tag的方式(命令行、Git托管平台界面)
# 创建tag,并推送
$ git tag dev_20210221_01
$ git push origin --tags
注意:Tag不跟随分支,是独立在分支之外的,你在master打了一个名为A的tag,在develop分支打了一个名为B的tag,都叫tag,是存了当前代码的一份快照,但tag并不是挂靠在某一个分支。
Gitee中的标签列表
参数构建过程继续选择Git参数,并命名,参数类型选择标签
源码管理中指定参数名称
点击构建查看效果
构建后分别访问浏览器查看构建后效果
扩展:
- Git按照tag构建时企业中使用非常广泛的构建方式,同时由于Git天生具备快照功能,就算git打错,发布出错了也可以即时发布上一个Tag达到回滚的效果,这招非常强大,在以往我们使用SVN时,并未使用Tag的功能,而是将每个文件打好标签放在backup中,回滚时使用shell脚本将历史存档的jar包取回重启,这个操作虽然也能实现回滚,但很显然没有Git的标签功能强大。
- 参数化构建的配置页,高级选项也是非常不错的,如下图:
have a good time
webhook自动构建
背景:在企业中,我们非常频繁的将代码推送到Git服务器上,如果要看到最新代码生效,需要手动去点击jenkins构建,这样的操作非常繁琐,但是jenkins提供了webhook自动构建的能力。
webhook:是指HTTP回调
,GitHub、GitLab、Gitee、Codeup、Coding等各个平台都有提供有相应的回调机制,比如我push代码后,触发某一个回调,我merge代码后触发某一个回调。
各大平台的webhook如下:
- jenkins安装gitee插件,其他平台略有差异,但原理一样
配置码云
webhook
对应push事件执行jenkins
构建去除参数化构建,同时设置为构建指定分支
由于触发构建需要外网回调支持,我们在本地演示没有公网IP或域名,此时需要借助内网穿透工具来实现,为了快速演示效果,这里我推荐使用钉钉穿透工具,使用步骤如下
在安装
jenkins
的机器上下载工具# clone下载 $ git clone --depth=1 https://github.com/open-dingtalk/pierced.git # 必须在外层目录授权 $ chmod -R 777 pierced
# 运行如下命令 ,jungejenkins是你的二级域名前缀,越复杂越好 ./ding -config=./ding.cfg -subdomain=jungejenkins 8777
如果你的
jenkins
部署在windows
机器上,则使用CMD命令行进入目录运行即可# 使用cmd的方式进入该目录 $ cd F:\install\pierced\windows_64 # 运行如下命令 ,jungejenkins是你的二级域名前缀,越复杂越好 ding -config=ding.cfg -subdomain=jungejenkins 8777
- 在浏览器上访问域名:
http://jungejenkins.vaiwan.com
,根据你的二级域名前缀来哦
- 配置码云
- 测试构建,3秒后你会看到
jenkins
已经触发了自动构建,但此时构建会出现失败的错误,如下:该错误主要是由于gitee模拟的push测试参数问题导致,接下来我们手动进行修改代码推送测试
手动修改代码,并进行提交推送操作
$ git clone http:xxx # 切换到develop分支,修改指定代码 $ git add . $ git commit -m "push自动构建测试" $ git push
- 观察
jenkins
已经自动触发构建,并且构建成功,在浏览器访问查看效果,到此webhook自动构建完成
总结
本篇所讲的分支构建和自动化构建是企业中较为常见的构建方式,能覆盖大部分的发布常见