Jenkins构建镜像成功后,向Gitlab建立标签

1 环境介绍

  • 私有部署 jenkins 2.121.2
  • 私有部署 GitLab 2.3.0

2 前提知识

本教程不会详细介绍构建参数,适合有必定构建基础的同窗来看。git

3 Jenkins构建参数

3.1 设置源码管理Name属性

  1. 在Name中输入一个字符串,例如demo
  2. 若是你看不到Name字段,那么应该点击高级按钮,默认该字段是隐藏的

图片描述

3.2 增长构建步骤执行shell

若是不配置git email 和 name, 下一步向GitLab的对应仓库中建立标签时,会报错。docker

git config --global user.email "your email"
git config --global user.name "your name"

图片描述

3.3 增长构建后的步骤:Git Publisher

若是没有Git Publisher,那么你须要安装该插件。shell

  • 勾选 Push Only If Build Successds
  • 勾选 Force Push
  • Tag to push 我通常会设置和docker镜像同样的标签,这样若是要建立hotfix分支,只须要知道镜像标签,就能够知道Git中对应的Tag号是什么。
  • Taget remote name 要和源码管理中的Name字段值同样便可

图片描述

3.4 GitLab中查看结果

能够看到,tag已经建立成功。缓存

图片描述

4 总结

Jenkins构建镜像成功后,镜像的标签和GitLab中该仓库的标签能够一一对应。性能

这样一个项目能够不用太多的分支,若是线上项目须要当即上线一个hotfix,那么就能够从镜像的的tag追溯到GitLab中的tag, 而后能够很方便的从该tag上建立hotfix分支。ui

以前我也尝试过在docker构建过程当中,将本次构建的commitId写入docker环境变量中。可是每次构建commitId通常都是不同的,这一层构建基本上都没办法使用缓存,并且因为机器性能不足,每次构建十分耗时。spa

索性,我就不把commmitId写入Docker镜像中。Docker构建的镜像tag写入GitLab还有个好处,即便Jenkins挂了,构建历史仍是会安稳的保存在GitLab中。插件

若是安装了Build+Timestamp+Plugin插件,能够在git tag 的message填入。"$BUILD_TIMESTAMP $BUILD_DISPLAY_NAME", 那么tag就会带有Jenkins构建事件。code

相关文章
相关标签/搜索