-
概述
在Jenkins中从GitLab上拉取代码进行打包或测试。 -
安装
Jenkins和GitLab默认已经安装好,安装过程此处不再赘述。
Jenkins下载地址:https://www.jenkins.io/zh/download/
下载完成解压后直接安装:
在登录地址:http://localhost:8080/
选择默认安装部分插件并设置账号/密码
在Jenkins上安装Git和Gitlab插件,如下图:
主要插件
GitLab Plugin ;
Gitlab Hook Plugin ;
NodeJS ;
Build Authorization Token Root Plugin ;
其中gitLab plugin用于jenkins连接gitLab项目,gitlab Hook plugin和Build Authorization Token
Root Plugin用于进行gitLab变动后jenkins自动进行任务部署;NodeJs 用于jenkins进行vue项目打包;
配置git路径:
1.打开命令行输入where git
将git路径填入jenkins的全局工具配置中如下图 -
配置
3.1. 系统配置
Jenkins连接gitlab需要配置access token,所以先在gitlab上生成access token,后将该token配置在Jenkins上。(access token只需配置一次,后续每个工程直接使用即可)
3.1.1. 获取连接token
1)登陆gitlab,在用户头像下拉图标,选择“Setting”
2)点击“Access Tokens”,输入“Name”和“Expries at”,勾选“api”;
3)点击“Create personal access token”,生成access token,记录下来。
6VPMCsYnHZKFdUEKaAw1
3.1.2. 配置系统Gitlab连接信息
1)登陆Jenkins,点击“系统管理”->“系统设置”-> “gitlab”,配置如下:
l Connetction name:连接名称,随便填写;
l URL:gitlab的访问地址;
l Credentials:鉴权凭证,即添加access token的地方;
2)添加Credentials,点击旁边的“Add”,弹框如下:
选好Kind,把access token输入在“API token”,ID是标识,随便填写。
3)如果填写好对应信息后点击“Add”,即可选择对应的“Credentials”。
3.2. 项目配置
以上是系统配置完成,下面说下在具体工程里需要怎么配置。
1)在工程配置中会指定使用的gitlab连接,如下所示:
2)在“源码管理”中选择“git”,配置如下:
l URL:工程的gitlab地址,本例中使用的是用户名密码鉴权的http访问;
l Credentials:此处填写访问gitlab项目的用户名和密码。添加方式与之前系统配置的类似,只是类型为用户名密码方式。
构建
选择下方的增加构建步骤。
增加构建步骤
可以选择的项很多。这里就介绍"Invoke Ant" 和"Execute shell".
Eexcute shell: 执行shell命令,该工具是针对linux环境的,windows环境也有对应的工 具"Execute Windows batch command"。 在构建之前,可能我们需要执行一些命令,比如压缩包的解压之类的。为了演示,我就简单的执行 “echo $RANDOM” 这样的linux shell下生产随机数命令。
Invoke Ant:Ant是一款java项目构建工具,当然也能用来构建php。
Ant Version: 选择Ant版本。这个ant版本是安装在jenkins服务器上的版本,并且需要在jenkins"系统工具"中设置好。
Targets:要执行的操作,一行一个操作任务。以上图为例,build是构建,tar是打包。
Build File: 是Ant构建的配置文件,如果不指定,则是在项目路径下的workspace目录中的build.xml。build.xml文件具体怎么配置,后面再细讲。
properties: 设定一些变量,这些变量可以在build.xml 中被引用。
Send files or execute commands over SSH:发送文件到远程主机或执行命令(脚本)
Name: SSH Server的名称。SSH Server可以在jenkins-系统设置中配置。
source files: 需要发送给远程主机的源文件。
Remove prefix: 移除前面的路径。如果不设置这个参数,则远程主机会自动创建构建源 source files 包含的那个路径。
Remote directory: 远程主机目录。
Exec command:在远程主机上执行的命令,或者执行的脚本。
构建后操作
构建后操作,就是对project构建完成后的一些后续操作,比如生成相应的代码测试报告。
邮件通知
Publish Clover PHP Coverage Report:发布代码覆盖率xml格式的文件报告。路径会在"build.xml"文件中定义
Publish HTML reports:发布代码覆盖率的HTML报告。
Report Crap: 发布crap报告。
E-mail Notification: 邮件通知,构建完成后发邮件到指定的邮箱。
真实使用,需要注意
gitlab连接jenkins
需要设置GitLab webhook URL
把这个设置到gitlab项目这里,
需要注意两个地方:
第一个是路径问题,jenkins上路径自动生成是
需要把8082改为8080,同时把jenkins给删掉,才行。
第二个问题是,如果刚刚创建的项目,那么在gitlab测试时就会碰到500问题,这是因为项目不能为空。(如果为空,则user_id和url使用的是默认的)
错误如下: