jenkins 对接 phabricator 的使用

环境需求

1. 安装 java,下载地址
[root@service java]# ls
jdk-8u221-linux-x64.rpm
[root@service java]# rpm -i jdk-8u221-linux-x64.rpm
2. 安装 maven,下载地址
3. 环境变量
[root@service java]# cat <> ~/.bashrc
export JAVA_HOME="/usr/java/jdk1.8.0_221-amd64"
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:/opt/apache-maven-3.6.1/bin:$PATH
EOF

[root@service ~]# mvn -version
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /opt/apache-maven-3.6.1
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_221-amd64/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "linux", version: "4.14.124", arch: "amd64", family: "unix"
4. 如若是在公有云上,需要安全组开放端口 8080,或自己自定义的端口

安装 jenkins

1. 下载 jenkins

[root@service jenkins]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

2. 进入下载目录,运行命令
[root@service jenkins]# java -jar jenkins.war --httpPort=8080 
3. 打开浏览器,进去链接
http://$your_ip:8080
4. 从界面提示的路径中获取管理员密码,解锁 jenkins
image.png
5. 选择 安装推荐插件
image.png
6. 等待安装完成
image.png
7. 初步安装配置完成
image.png
8. 登陆到界面
image.png

配置 jenkins job (此案例对接 phabricator )

1. 安装需要的插件
phabricator diff
2. 添加 jenkins 安装所在机器系统的 ssh key 到全局凭据(凭据 > 系统 > 全局凭据 > 添加凭据)
image.png

类型选择:“SSH Username with private key”
范围:全局(jenkins,nodes,items,all child items, etc)
Private Key: 添加 jenkins server 的私钥

image.png
3. 配置全局工具(以maven为例,系统管理 > 全局工具配置 > Maven,也可选择由 jenkins 自动安装)
image.png
4. 配置系统设置(系统管理 > 系统设置 > Phabricator > 添加 phabricator credential)
image.png
  • credential 的配置
    类型:Phabricator Conduit Key
    Description: 自定义
    Conduit Token:从 phabricator 上获取 (conduit token 需要在 phabricator 上新建一个 bot 类型的用户,并在 setting > API Conduit Tokens 处获取)
image.png
  • 添加了 credential 后,选择
image.png
  • Notification 也选择
image.png
  • 保存退出
5. 新建一个 FreeStyle job
image.png
6. 配置 参数构建

此处添加两个参数 DIFF_ID/PHID ,具体参数内容将从 phabricator 的 webhook 中传递进来

image.png
7. 源码管理设置(repo url/ credential /branch,credential为前面添加的 Jenkins server密钥)
image.png
8. 构建远程触发器
image.png
9. 构建环境,应用 phabricator differential
image.png
10. 根据不同项目添加构建操作(构建前xxx / 构建后xxx)
11. 将想要返回的结果添加到 phabriactor 的 comment 中
#!/bin/bash
PHABRICATOR_COMMENT=".phabricator-comment"
BuildURL=${BUILD_URL%*/}
SonarURL="http://sonar.xxx.xxx/sonarqube/dashboard?id”
echo "Sonarqube: " >> $PHABRICATOR_COMMENT
echo "$SonarURL=${JOB_NAME}" >> $PHABRICATOR_COMMENT

11. 为 phabricator 添加构建后操作
image.png

你可能感兴趣的:(jenkins 对接 phabricator 的使用)