Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "MicroProfile/Continuous Integration"

(Added instructions for creating a new job, and also for using the GitHub Pull Request Builder)
m (Fix formatting)
Line 3: Line 3:
 
== How to ... ==
 
== How to ... ==
  
=== Create a new job
+
=== Create a new job ===
  
 
If you are a committer for the MicroProfile project, you will have access to create and configure jobs on the [https://ci.eclipse.org/microprofile/ MicroProfile Jenkins instance]. Just log in with your Eclipse id.
 
If you are a committer for the MicroProfile project, you will have access to create and configure jobs on the [https://ci.eclipse.org/microprofile/ MicroProfile Jenkins instance]. Just log in with your Eclipse id.
Line 19: Line 19:
 
# Hit save
 
# Hit save
  
=== Setting up GitHub Pull Request Builder
+
=== Setting up GitHub Pull Request Builder ===
  
 
The GitHub Pull Request Builder will automatically build all PRs on a repository, and set the status of the PRs to passed or failed based on whether the build passed or failed. To enable it, you should create a new job for building PRs. This can either be done by copying an existing job that builds PRs for another repository (easiest, it just requires updating the GitHub project URL, the git repository URL, description, and goals if necessary), or copying an existing job that doesn't build PRs but does build a project in the way you want.
 
The GitHub Pull Request Builder will automatically build all PRs on a repository, and set the status of the PRs to passed or failed based on whether the build passed or failed. To enable it, you should create a new job for building PRs. This can either be done by copying an existing job that builds PRs for another repository (easiest, it just requires updating the GitHub project URL, the git repository URL, description, and goals if necessary), or copying an existing job that doesn't build PRs but does build a project in the way you want.

Revision as of 22:24, 3 June 2018

We're using Jenkins provided by Eclipse for CI.

How to ...

Create a new job

If you are a committer for the MicroProfile project, you will have access to create and configure jobs on the MicroProfile Jenkins instance. Just log in with your Eclipse id.

The simplest way to create a new job is to copy an existing one.

  1. From the dashboard, click New Item.
  2. Enter a name for the new build.
  3. At the bottom of the page, where it says "Copy from", start typing the name of the job you want to copy the build from, and select the job when it appears.
  4. Click OK.
  5. On the next screen, update the following fields:
    1. Description
    2. Repository URL
    3. Goals and options for the maven build, if necessary
  6. Hit save

Setting up GitHub Pull Request Builder

The GitHub Pull Request Builder will automatically build all PRs on a repository, and set the status of the PRs to passed or failed based on whether the build passed or failed. To enable it, you should create a new job for building PRs. This can either be done by copying an existing job that builds PRs for another repository (easiest, it just requires updating the GitHub project URL, the git repository URL, description, and goals if necessary), or copying an existing job that doesn't build PRs but does build a project in the way you want.

To create a new pull request builder job based on another pull request builder job:

  1. Copy the PR job
  2. Update the description of the build
  3. Update the GitHub project URL in the general configuration
  4. Update the git repository URL in the git repository configuration
  5. Update the maven goals if necessary
  6. Save the build

To create a new pull request builder job based on an existing non pull request builder job for the same repository:

  1. Copy the job you want to base the PR job on.
  2. Update general configuration
    1. Update the description of the build.
    2. Enter the GitHub project URL in the "GitHub project" field, eg https://github.com/eclipse/microprofile-reactive
  3. Update Git Repository configuration:
    1. Under advanced, enter +refs/pull/*:refs/remotes/origin/pr/* into the refspec field.
    2. Enter ${sha1}<tt> into the branch specifier
  4. Update build triggers configuration
    1. Uncheck any of the exist build triggers
    2. Check GitHub Pull Request Builder
    3. Leave use GitHub hooks for build triggering unchecked - it requires admin access on the repo which the build bot account doesn't have. The pull request builder will poll GitHub for updates instead.
    4. In the advanced section of the GitHub Pull Request Builder configuration:
      1. Optional: configure a trigger phrase. Useful for retriggering PR builds that failed for reasons unrelated to the PR. I set it to <tt>.*[Bb]uild [Pp]lease.*
      2. Enter eclipse into the whitelisted organizations field.
      3. Check "Allow members of whitelisted organizations as admins"
  5. Important: Disable email notifactions - notifications will be given directly on the GitHub pull request
  6. Important: Delete the "Deploy artifacts to Maven repository" post build action
  7. Save the build

Once done, within 5 minutes, the job should start building all existing open PRs.

Using the above configuration, by default, it will only build pull requests opened by members of the Eclipse GitHub organization. To build pull requests from non members, you can use the following commands, which are given by adding comments to the pull request:

  • "ok to test" to accept this pull request for testing
  • "test this please" for a one time test run
  • "add to whitelist" to add the author to the whitelist

The pull request builder will only respond to commands from admins, which is configured to be anyone in the Eclipse GitHub organization.

Upload a file to download.eclipse.org from a Jenkins job?

download.eclipse.org is available under the path /home/data/httpd/download.eclipse.org (file hierarchy below that is the same as on the web). You should be able to "cp" your files to the proper subfolder. Just create a "shell script" build step. (info provided in the CBI-dev mailing list)

Back to the top