2 Star 0 Fork 0

mirrors_jenkinsci/phabricator-plugin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Phabricator-Jenkins Plugin Build Status Coverage Status

This plugin provides Phabricator integration with Jenkins. It allows Jenkins to report build status and coverage information over Harbormaster (or via comments if Harbormaster is not enabled).

Table of Contents

Configuration

Before the plugin can be used, a few configuration steps on your Phabricator and Jenkins instances need to be completed.

Phabricator Configuration

In this section, you'll create a bot user in Phabricator and generate a Conduit API token. If you already have a bot user and a Conduit API token, skip to the "Jenkins Setup Section".

  1. Create a bot user in Phabricator.
  2. Click Edit Settings on the manage page for that user
  3. Click Conduit API Tokens on the left of the settings page
  4. Click Generate API Token, and accept.
  5. Copy the token.

Jenkins Setup

  1. Navigate to https://ci.example.com/configure with your base Jenkins URL in place of "ci.example.com".
  2. Navigate to the Phabricator section and click the Add button. Add Credentials
  3. From the Kind dropdown, select Phabricator Conduit Key.
  4. Enter the base URL for your Phabricator instance in the Phabricator URL field. For example https://phabricator.example.com.
  5. Enter a description in the Description field for readability.Configure Credentials
  6. Paste the Conduit API token (created in the Phabricator Configuration section) in the Conduit Token field.
  7. Click the Add button.
  8. Click the Save button.

Usage

Now that Jenkins and Phabricator are configured you can configure your Jenkins job and Harbormaster.

Jenkins Job

  1. Navigate to the Jenkins job you want to integrate with Phabricator.
  2. Click the Configure button.
  3. Click the Add Parameter button and select String Parameter.
  4. Enter DIFF_ID in the Name field of the parameter.
  5. Repeat step 3.
  6. Enter PHID in the Name field of the second parameter. Configure job parameters
  7. If you want to apply the differential to your workspace before each test run, navigate to the Build Environment section and select the Apply Phabricator Differential checkbox. This resets to the base commit the differential was generated from. If you'd rather apply the patch to master, select the Apply patch to master checkbox. Enable build environment
  8. To report the build status to Phabricator after the test completes:
  9. Navigate to the Post-build Actions section.
  10. Click the Add post-build action button and select Post to Phabricator.
  11. Make sure the Comment on Success and Comment with console link on Failure checkboxes are selected.
  12. Optionally: 1. If you have Uberalls enabled, enter a path to scan for Cobertura reports. 2. If you want to post additional text to Phabricator other than "Pass" and "Fail", select the Add Custom Comment checkbox. Then create a .phabricator-comment file and enter the text you want Jenkins to add to the build status comment in Phabricator. Add post-build action

Harbormaster

With Phabricator, Jenkins, and your Jenkins jobs configured it's time to configure a new Harbormaster build plan. This build plan will trigger the Jenkins job using a Herald rule that will be configured in the next section.

  1. Navigate to https://phabricator.example/harbormaster/plan/ with your base Phabricator URL in place of phabricator.example.

  2. Click the New Build Plan button in the top right corner of the page.

  3. Enter a name for the build plan in the Plan Name field. For these instructions, we'll use "test-example" as the build name.

  4. Click the Create Build Plan button.

  5. Click the Add Build Step button.

  6. Click the Make HTTP Request step.

  7. Use this template URI to fill in the URI field for the build plan: https://ci.example.com/buildByToken/buildWithParameters?job=test-example&DIFF_ID=${buildable.diff}&PHID=${target.phid}

    Be sure to replace https://ci.example.com with the URI of your Jenkins instance and test-example with the name of your Jenkins job.

    If your Jenkins instance is exposed to the internet, make sure to install the Build Token Root Plugin and fill in the token parameter.

  1. Click the When Complete dropdown menu and select Wait For Message.
  2. Click the Create Build Step button. Harbormaster plan

Herald

With the build plans created it's time to create a Herald Rule to trigger the plans. The steps below will configure a Herald Rule to trigger the build plans on Differential Revisions to your repository.

  1. Navigate to https://phabricator.example/herald/ with your base Phabricator URL in place of phabricator.example.
  2. Click the Create Herald Rule button in the top right corner of the page.
  3. Select the Differential Revisions checkbox and click Continue.
  4. Select the Global checkbox and click Continue.
  5. Enter a name for the Herald Rule in the Rule Name field.
  6. In the Conditions section, click the dropdown menu that says "Author" and select "Repository".
  7. Enter your repository name in to the blank field in the Conditions section.
  8. In the Actions section, click the dropdown menu that says "Add blocking reviewers" and select "Run build plans".
  9. Enter the build plans that were created in the previous section in to the blank field in the Action section.
  10. Click Save Rule.

Herald rule

Test Your Configuration

Try arc diff-ing on your repo. If everything goes well, you should see Jenkins commenting on your diff:

Example

Advanced Usage

Now that you have build status and optionally coverage data set up, check out some advanced features.

Development

Set up your Maven file according to https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial.

Testing

Start up Jenkins with the plugin installed:

mvn hpi:run

Open your browser to your local instance.

Pull Requests

Please open all pull requests and issues against https://github.com/uber/phabricator-jenkins-plugin.

License

MIT Licensed

The MIT License (MIT) Copyright (c) 2015 Uber Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

暂无描述 展开 收起
Java 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors_jenkinsci/phabricator-plugin.git
git@gitee.com:mirrors_jenkinsci/phabricator-plugin.git
mirrors_jenkinsci
phabricator-plugin
phabricator-plugin
master

搜索帮助