在上一章我们将gitlab 上传的代码通过jenkins打成jar包后发送到目标主机进行构建镜像操作
这里存在一个问题,我们每次构建的时候都是拿到最新的代码去构建的,那么包永远都是最新的latest,然而最新的包反而bug可能最多,为了版本发布的可靠性,我们会在测试中选定一个最稳定的版本去发布,所以当我们认为当前版本是可用的,我们就给他打一个标签tag
1、定义参数化构建
在参数化构建,让我们在构建的时候选择一个版本去进行部署,这里的tag标签来自于gitlab定义的
2、定义构建之前切换分支操作
这里操作的意思是,让我们在做maven编译之前先切换到指定版本的分支上
切换分支操作
git checkout $tag //这里的$tag 的值是取自我们上面获取到gitlab标签的值
3、在gitlab上添加版本标签
下图中我们在gitlab上打了一个标签v1.0.0版本,这个相当于是打了一个快照
将当前代码从master分支上复刻了一份,起名叫做v1.0.0 然后jenkins自动识别到这个标签
我们在根据这个标签手动选择我们要发布的版本是那个
标签名称 v1.0.0
代码来自于 master分支
4、修改idea代码重新上传
上面我们设置了一个稳定版本v1.0.0 现在假设我们程序更新到v2.0.0版本
为了区分不同的版本,我们先修改代码上传后,将新版本也打一套标签
mytest-dev.yaml
17 image: mytest:v2.0.0 //修改镜像版本为v2.0.0
handler.java
59 String data = "<html><body><h1>Hello Jenkins! --Version v2.0.0</h1></body></html>";
5、修改项目构建后打镜像的操作
我们在发送到指定服务器上后有几步是用来构建镜像的,当时写死了这里改一下
cd /usr/local/test/docker
mv ../target/*.jar ./
docker build -t ${JOB_NAME}:${tag} .
kubectl apply -f mytest-dev.yaml
说明
${JOB_NAME} jenkins项目的名称 mytest
${tag} 标签名称 取自gitlab的分支标签
如上,我们就可以在不同版本中随意滚动了( •̀ ω •́ )y