You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 11, 2019. It is now read-only.
A tool for automatically validating github pull requests with Jenkins
Configuring
Here's an example ghpr.conf file.
scala: {
jenkins: {
url = "https://my.company.com/jenkins"
user: {
user = "buildbot"
password = "MY PASSWORD IS SECRET"
}
jobs: [ "flush-silly-mistakes" ]
}
github: {
user: {
user = "gh-commenter"
password = "MY PASSWORD IS SECRET"
}
project: {
user = "myname"
project = "myproject"
}
}
}
The outer object is given any random name. This name represents the "project" name used in logging. The inside is made up for two config blocks: jenkins and github.
The jenkins configuration consists of:
url - The location where we can access Jenkins REST API. Right now, that's the same as the website URL.
user - A user/password pair we should use to log in to Jenkins and execute builds.
The github configurations consists of:
user - The credentials of a github user that can comments on pull requests.
project - The user/project github combo of which project to monitor. e.g. "scala/scala" or "jsuereth/scala-arm"
Setting up Jenkins
Any jenkins job will work for validating pull requests, as long as it supports two build parameters:
mergebranch - The branch to merge the pullrequest onto. This lets us test for merge-related build failures.
pullrequest - The pull request number from github. This is the code that should be merged in.
Here's an example bash script that, when run inside jenkins on an appropriate repository, can resolve the appropriate git commit:
newbranchname="pull-$pullrequest-merge"
# Checkout
git checkout $mergebranch
# Update branch
git pull origin $mergebranch
# Create new merging branch
git checkout -B $newbranchname
# Fetch pull request and merge into new branch.
git fetch origin "+pull/${pullrequest}/head:pullreq/${pullrequest}"
git merge "pullreq/${pullrequest}"
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
About
A simple utility to run pull requests against jenkins jobs. Uses Akka.