(分享)Jenkins 构建根据 git commit id 加Jenkins构建次数为 docker 镜像 tag

有这么一种场景,Jenkins 打包成docker镜像,镜像 tag 是根据 git commit id 为 tag 的。有时候开发没提交代码,只是更改了公共的组件包。Jenkins 构建发布到 k8s 的时候。k8s 并没有发布,可能是镜像的 ID,也就是k8s的 yaml 文件没有变更。shell 执行 kubectl 去发布的时候不会发布。还是原来的pod。这样有啥好办法解决呢?

通过Jenkins 内置变量 BUILD_NUMBER 加上构建次数即可解决。

env.GIT_COMMIT = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim()
#获取git commit id 

env.COMMIT_MSG = sh(script: "git log -1 --pretty=%B", returnStdout: true).trim()
#获取git 提交信息

env.imageTag = env.GIT_COMMIT + env.BUILD_NUMBER
#env.GIT_COMMIT + env.BUILD_NUMBER 赋值给 env.imageTag

docker build -t xxxx:${imageTag} . 
#引用imageTag

image

感谢 I.G.V、DLY

1赞

能把 pipeline 语句里,这一段完整写法,截个图说明一下吗?