1、基础知识
1.1、场景需求
当我们的业务场景中,不同项目的代码、甚至同一个项目的不同版本的代码都存放在不同的分支上,在这种情况下,我们直接获取所有项目代码的方式就不合适了,所以我们就需要基于功能分支的名称来定制的获取代
码,从而能快速高效的完成docker镜像的构建工作。
对于这种基于参数的构建方式在jenkins平台中有非常多的插件可以实现不同的参数构建功能,我们常用的就是git 参数构建场景,这就需要一个插件
1.2、插件安装
1.2.1、Git Parameter Plug-In插件安装
1.2.2、Version Number插件安装
2、基本配置
2.1、任务需求
在git仓库定制多个分支(dev,test,release,prod),然后分别在不同的分支上定制tomcat-web首页,在构建的时候,选择分支进行构建,在构建历史记录中将其分支信息显示出来
2.2、定制仓库【创建多分支】
cd /tmp/tomcat_pro
# dev
git checkout -b dev
sed -i "s/买 1/买 dev/" tomcat-web/ROOT/index.jsp
git add . && git commit -m "dev" && git push origin dev:dev
# test
git checkout main && git checkout -b test
sed -i "s/买 1/买 test/" tomcat-web/ROOT/index.jsp
git add . && git commit -m "test" && git push origin test:test
# release
git checkout main && git checkout -b release
sed -i "s/买 1/买 release/" tomcat-web/ROOT/index.jsp
git add . && git commit -m "release" && git push origin release:release
# prod
git checkout main && git checkout -b prod
sed -i "s/买 1/买 prod/" tomcat-web/ROOT/index.jsp
git add . && git commit -m "prod" && git push origin prod:prod
2.3、定制任务
2.3.1、定制Git 参数
进入到tomcat-web任务,在全局部分定制git参数构建,选择"Git parameter",按照如下方式进行定制
注意:Name 定制的名称,在当前任务中就是一个变量,我们可以在其他部分以${NAME}的方式来调用该变量的值。
2.3.2、定制Choice parameter
2.3.3、在源代码仓库部分,修改获取分支的方式为"${branch}"
2.3.4、配置git remote名字
点击仓库的高级部分,然后再Name右侧写上仓库的名字origin(git remote),便于后面创建提交tag标签用默认的值是只获取master分支
上面我们采用branch的参数方式自动获取所有分支,这里使用${branch}直接调用即可。
2.3.5、定制历史记录名称
在构建变量定制部分选择"Create a formatted version number",在定制格式里面输入如下内容:${branch}_${environment}
注意:这里的构建变量是我们定制的变量,如果同名的话,可以自动覆盖同名变量,一定要勾选 "Build Display Name",否则的话,我们定制的变量不会自动生效。
2.3.6、定制构建后动作
在 "Post-build Actions" 部分,点击"ADD post-build action"
选择"Git publisher"
勾选"Push Only if Build Succeeds"
点击"Add Tag"
Tag to push 右侧添加"tomcat-web-$BUILD_NUMBER"
Tag message 右侧添加"创建代码标签"
勾选"Create new tag"
Target remote name 右侧添加"origin",名字与仓库名称一致
注意:
一定要保证我们的仓库是具备 user.name 和 user.email 的相关信息,否则会因为git认证的原因导致提交失败
2.3.7、保存
结果显示:我们可以看到左侧边栏有个"Build with Parameters"
2.4、点击参数构建,查看效果
2.4.1、选择dev构建
2.4.2、查看构建后的名字是否改变
2.4.3、查看日志是否有创建标签的动作
2.4.4、gitlab查看是否创建标签