1. 概述
    在Jenkins中从GitLab上拉取代码进行打包或测试。

  2. 安装
    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. 配置
    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使用的是默认的)

错误如下:

 

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐