eclipse / omr

Eclipse OMR™ Cross platform components for building reliable, high performance language runtimes
http://www.eclipse.org/omr
Other
940 stars 394 forks source link

Branch and PR builds on ci.eclipse.org/omr #1703

Open charliegracie opened 6 years ago

charliegracie commented 6 years ago

The Eclipse OMR project recently obtained some Linux PPC LE and Linux 390 machines to perform automated testing for PR and pushes to branches. The Eclipse foundation enabled a Jenkins CI server for us which we will be using to perform testing on the 2 platforms mentioned above. To help launch builds and set GitHub status for a commit we will be using a bot account named genie-omr.

When a PR is opened the new CI testing will not automatically kick off builds. To start the PR builds a committer has to put a comment in the PR with the following text genie-omr build [all,zlinux,plinux,zos,aix]. When this comment is added one of each of the PR builds will be started. Currently committers and whitelisted contributors can launch all of the PR builds with this command as there is no mechanism to allow a selection. In the future they may be able to select certain platforms based on the code that has changed. These builds will set a GitHub status similar to the Travis.vi and AppVeyor builds already being used by the Eclipse OMR project. You can check out the status of the commit in #1683 to see an example of how the Eclipse OMR CI updates the PR commit status. The Jenkins plugin being used for this fully supports the [skip ci] tag but since we are only launching builds via a request it should not matter right now.

When a PR is merged into a branch (currently there is only master) or a commit is pushed directly (this is not currently allowed in this project) builds will be kicked off for each of the branch builds on the projects Jenkins CI. These jobs will also update the GitHub status for the commit they test. You can see an example of what the status check looks like for these builds here if you click on the status for any recent merge commit (starting with SHA 0366145). Currently this build does not support and sort of [skip ci] tag but it is something we can incorporate over time.

charliegracie commented 6 years ago

Possible improvements/modifications:

mgaudet commented 6 years ago

Currently only committers can launch builds I believe; Is there a middle ground state we expect where non-committers may gain the ability to launch builds, but not become a committer?

charliegracie commented 6 years ago

There is a mechanism for adding users and github organizations to a whitelist which I believe allows them to launch builds in their own PRs (maybe any PR but it I haven't tested yet). My opinion is that we grant users/organizations this ability very quickly. If a contributor is known to the project I say we should allow them to launch builds. My 2 cents but we will need consensus from the leads and committers.

charliegracie commented 6 years ago

@mgaudet I added you to the whitelist to help test out the support :). Do you want to try launching the CI build in #1704?

mgaudet commented 6 years ago

Looks to have worked 👍

charliegracie commented 6 years ago

Updated the text to reflect this :) Thanks

charliegracie commented 6 years ago

@mstoodle, @0xdaryl, @youngar, @vijaysun-omr and @jduimovich any thoughts on on the current process and the suggested improvements/modifications?

mgaudet commented 6 years ago
charliegracie commented 6 years ago
mgaudet commented 6 years ago

If a downstream project is available in the open, do you foresee implementing the ability to request a build that combines a PR and downstream project?

genie build dependent rubyomr

or somesuch?

charliegracie commented 6 years ago

hmmm it appears sometimes the command only kicks off one of the builds (it seems to miss the PPC LE one if it misses a build). We should keep an eye on it but I think it means we should implement the ability to kick off a single platform sooner rather than later. EDIT: I have added the ability to launch just a single platform and updated the original text