jenkins
jenkins是一个基于java的自动化构建工具,使用它可以为我们解决很多重复的工作,其官网提供了很多插件,根据不同的需求选择相应的插件,可以很大的提高我们的开发或者部署的效率。
本篇文章主要介绍如何实现使用git提交代码到github时,怎么触发Jenkins的自动构建任务。
一、安装jenkins
下载jenkins.war项目
jenkins的安装很简单,只要下载官网的jenkins.war包就行。因为Jenkins是基于java的,所以你首先得安装java的jdk并且配置好环境遍历。做好以上两个步骤,只需在命令行中输入以下命令就可以启动jenkins了:
java -jar jenkins.war
第一次启动可能有点慢,直达看到fully up and running
才算启动完成,在这之前访问,浏览器控制台可能报错,默认访问地址是localhost:8080
。
启动后,命令行会提示一个初始化密码,打开浏览器访问时需要这个密码去初始化jenkins。
配置工作目录
初始化完成后,我们可以自己配置一下Jenkins的工作目录,也就是拉取代码存储的目录,这个配置config.xml在Jenkins.war解压后的目录,在命令行里可以看到,找到config.xml,在里面重新配置workspaceDir:
二、安装github插件并进行配置
插件安装
在插件管理中切换到可选插件tab页,输入github过滤,在下方的列表中选择github
插件并进行安装:
安装好后回到首页点击新建任务:
源码路径
点击刚新建的项目,配置源码管理,这里配置成github的地址,这样每次构建时都会pull一次远程的代码到本地,然后再进行构建。认证只需点击add,添加自己的github名称和密码就行了:
使用触发器
想要监听git的push操作,需要配置构建触发器,这个触发器可以让github有更新时触发Jenkins的构建任务:
构建任务
接下来时配置具体的构建任务,我这里是用git diff --name-only HEAD~ HEAD
命令在控制台输出变化的文件,然后进行模块安装和项目编译cnpm install && npm run build
(只能输入两行,多个命令可以用&&连接),Windows batch command构建任务可以输入任何在命令行中的命令,执行命令时的目录就是我们配置的工作目录(代码存放的地方)。
生成github token
为了让github有更新时,能够及时发送HTTP请求给Jenkins,需要在全局配置里配置github server,这个配置主要用来进行github与Jenkins的通信验证,验证是基于token的,所以我们需要先在github上生成一个token,打开token配置链接 添加一个就行了,需要注意的是,token的配置中需要添加admin:org权限。
配置连接github server
生成好token后就可以配置Jenkins的github server配置了。
首先在Credentials管理中添加一个Credentials,secret就是刚刚生成的token:
随后打开全局配置,添加id为test的Credentials:
配置github webhook
最后需要在github上配置一个webhook钩子,将其地址配置成我们Jenkins服务器的地址,因为我的Jenkins服务器在本地,所以使用了花生壳动态域名,将其映射到内外的8080端口,这样github更新时才能发送post请求通知到Jenkins。
将动态域名地址配置到github:
secret就是之前添加的token。
测试
做完这些就可以开始测试了,我们使用git添加一个test.txt空文件push到github,这时就可以在Jenkins任务面板里看到有个任务正在构建:
构建完成后,点击进去,选择控制台信息,可以查看到构建的详细信息:
命令行的工作目录就是Jenkins拉取下来的源码存储的目录: