1:git配置,达到两个目的,一是拉取代码,二是配合push到仓库就触发jenkins的工作流。
1.1 目标一,位了jenkins那边能拉取到代码,git仓库配置
由于服务器git配置的是我的git账号,所以需要走CI流程的项目需要把我的账号加到项目中 zhangpengfei@iairportcloud.com
1.2:目标二提交代码push之后触发jenkins的工作流
在你所在的项目,Settings - > WebHooks 新建WebHooks
填写一个url 格式基本是这样的,
http://你的jenkins dashboard的地址/gitlab/notify_commit
我们公司,就填写如下的地址就ok了
http://122.224.248.26:6666/gitlab/notify_commit
Trigger这里勾选上Push events就好了
2:登录jenkins dashboard
http://192.168.1.193:8080
3:发布项目
3.1:发布一个java项目
3.1.1 拉取代码
填入需要发布项目的名称,选择 构建一个maven 项目,然后点击 确定
进入下一个界面,在源码管理的地方选择Git
Repository UR : 这里填入你的仓库地址,这里需要注意的是:目前仅支持https的方式,还不支持git的方式
Credentials : 基于第一步git仓库也添加了我的账号,所以这里配置我的账号拉取代码即可
Branches to build :Branch Specifier (blank for 'any') 这里 选择你所需要发布的分支,一般来说是 master 或者dev
到这一步为止,如何拉取代码已经配置完毕。
3.1.2:构建触发器
这里勾选上Poll SCM 就好了,由于我们已经在git那边做了钩子,这里勾上Poll SCM ,文本框里面什么内容都不填
3.1.3:Pre Steps
在build这里,填写Root Pom的地址,这里是指定pom.xml所在的位置,示例中,我们这个工作量为 java-demo,发布的项目为guest-employee,所以这里地址按照如下的格式写
/opt/tomcat/.jenkins/workspace/java-demo/guest-employee/pom.xml
这里说一下为什么是这个地址,这里可以看一下发布好之后pom.xml所在的位置,我也是摸索了几次才发现这个问题。(这里了解一下就好了)
3.3.4 构建后的操作 上一步结束,已经打包完成,现在需要部署到服务器上去。
在下拉框 增加构建后的操作步骤 选择 Send build aritfacts over SSH
SSH server 我已经配置好了,比如要部署到测试环境,选择130-test就好了
Transfers
Source files :选择target下面的所有文件都打包过去,包含打包后的jar,lib等
Remove prefix :guest-employee/target
Exec Command: 这里首先切换目录到你服务器上的位置,然后重命名
cd /home/nfs-share/code/test/guest-employee
mv guest-employee-1.0.jar guest-employee.jar
到此位置,就已经完成了。点击保存。我们现在去构建这个job
返回后点击立即构建
接下来:就是看刚跑的job是否success。
出现如下图中的蓝色图标,说明就发布成功了。
4.1:发布一个go项目
4.1.1go项目的发布
4.1.2源码管理
4.1.3 构建触发器,勾选上Poll SCM
4.1.4:构建后的操作
在下拉框 增加构建后的操作步骤 选择 Send build aritfacts over SSH
由于go项目不需要编译,这里我们只是把代码pull下来,然后上传到服务器上去。
ok 保存,结束。
接下来:就是看刚跑的job是否success。
出现如下图中的蓝色图标,说明就发布成功了。
4.1:发布一个node项目
4.1.1 源码管理
4.1.2构建环境
勾选上 Provide Node & npm bin/ folder to PATH
NodeJS Installation 选择我配置好的Node JS的环境 NodeJS-8.10.0
4.1.3:构建
4.1.4构建后的操作
在下拉框 增加构建后的操作步骤 选择 Send build aritfacts over SSH
这里配置说明一下,
Source files 是指要拷贝的来源,这里,对于node项目,需要拷贝dist下面所有的文件所以这里用了 dist/**
之前遇到的问题:只写了dist/*,导致只拷贝了dist下面的文件,而没有拷贝dist下面的文件夹
Remote directory 是指你需要发布到远程地址的目录
Exec command 是指我们的共享目录,由于我们系统配置里已经写好了需要发布的位置,所以这里可以不写。如下图所示
接下来:就是看刚跑的job是否success。
出现如下图中的蓝色图标,说明就发布成功了。
系统配置方面
SSH服务器配置 用户名 root,密码