一、Jenkins从Git拉取源码

实现目标

Jenkins通过流水线从Git上拉取源码到Jenkins的工作空间,用于后续的编译、打包、发布、部署。

所用工具

  1. git客户端
  2. Jenkins插件git plugin

工作原理

Jenkins的git插件封装了git客户端的操作命令(类似于研发过程中使用的git GUI工具:https://www.cnblogs.com/ups216/p/5603199.html),为流水线配置人员提供了git指令的配置界面,只需通过在“流水线语法/git”中配置获取代码的相关参数,并在Pipeline脚本中执行,即可将Git远程仓库中的代码拉取待Jenkins工作空间(不指定时,默认是Jenkins工作目录/worksapce/job名称)。
image.png

原理解说

由图中可以看出以下几点:

  • git插件只是一个命令配置和解析器,负责将配置的命令转换成git客户端相关命令,实际的代码拉取工作是由git客户端完成
  • (git插件可绕过)通过sh直接调用git客户端执行命令拉取代码
  • 插件提供的GUI方式配置请求参数、生成git请求并调用git客户端对远程git仓库操作,具备便捷性、易用性
  • Jenkins执行命令权限问题导致必须找到git的命令目录(即使已在系统中配置了全局path)

理解配置

从工作原理章节可以看出,要拉取代码,需要做配置:

  • 下载并安装git客户端【拉取代码执行员】
  • 通过whereis git获取到git的安装目录并配置到Jenkins【Jenkins要找到执行员】
[root@localhost bin]# whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz
[root@localhost bin]# 

进入到“Jenkins/全局工具配置”中,按照该下图中配置路径(名字任意取),如/usr/bin/git
65612876-10B6-42a8-BCCD-E10D8F81E4B2.png

  • 【Tips】未配置或者配置不正确执行时出现如下报错

image.png

Git插件配置详解

image.png

  • 仓库URL地址,就是git远程仓库的地址。登录到git远程仓库(我们用的是github),根据以下步骤从第三步中拷贝出地址,格式如下:
    http://xx.xx.xx.xx:xxxx/项目路径/项目名称.git

image.png

  • 分支,就是项目分支,从下图中直接获取

image.png

  • 凭证获取代码的登录信息,可以是用户名/密码(需具备相应权限),也可用SSH登录,如无凭证点击“添加”,进入添加界面(目前选择用户名密码方式),填写红色区域即可

image.png
以上填写完成后,点击“生成流水线脚本”,并将其拷贝到流水线中即可执行。

二、获取git分支信息

实现目标

Jenkins上构建时通过参数选择不同的分支进行构建

所用工具

  1. Jenkins插件:Git Parameter Plug-In

原理

不需要工具/参数,只需要插件安装即可使用

分支参数配置

  • 直接在项目中配置参数:

image.png

  • 用流水线语法生成:(好处是和流水线融合,具备可移植性)

image.png
然后将其放置到到流水线脚本的参数或者环境变量中

三、Git远程仓库通过webhook自动触发构建

实现目标

研发在git上提交代码后自动触发Jenkins构建

所用工具

Jenkins插件:GitLab Plugin和GitLab Hook Plugin

流程原理

image.png

配置过程

Git的AccessToken创建过程

  • 创建AccessToken

image.png

  • 复制token

image.png

Jenkins中创建回调URL

  • gitlab配置

进入“Jenkins/系统管理/系统配置”,找到gitlab如下图配置
image.png

  • Gitlab API凭证创建和使用

image.png

  • 测试验证通信是否正常

点击testConnection返回如下则正常
image.png

  • 获取webhook URL地址

image.png

Git远程仓库配置webhook触发器

  • 配置webhook,将上一步获取到的回调(钩子)URL按照下图配置到Git远程仓库

image.png
image.png

  • 触发测试

点击下图中的test,在当前页面最上方会显示结果,如果返回200则说明配置成功,然后去jenkins相应job查看是否执行构建。
image.png

  • 问题及解决方式(403错误)

https://blog.csdn.net/qq_19674905/article/details/89139722
关于版本changelog获取,形成结果

关于版本提交信息控制触发构建模式


贝加尔湖畔的阳光
3 声望0 粉丝

引用和评论

0 条评论