lib/danger/ci_source/jenkins.rb in danger-2.0.1 vs lib/danger/ci_source/jenkins.rb in danger-2.1.0
- old
+ new
@@ -1,28 +1,40 @@
# https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project#Buildingasoftwareproject-JenkinsSetEnvironmentVariables
# https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin
module Danger
- module CISource
- # https://jenkins-ci.org
- class Jenkins < CI
- def self.validates?(env)
- return false unless env["ghprbPullId"].to_i > 0
- return false unless env["GIT_URL"]
+ # https://jenkins-ci.org
- return true
- end
+ ### CI Setup
+ #
+ # Ah Jenkins, so many memories. So, if you're using Jenkins, you're hosting your own environment. You
+ # will want to be using the [GitHub pull request builder plugin](https://wiki.jenkins-ci.org/display/JENKINS/GitHub+pull+request+builder+plugin)
+ # in order to ensure that you have the build environment set up for PR integration.
+ #
+ # With that set up, you can edit your job to add `bundle exec danger` at the build action.
+ #
+ # ### Token Setup
+ #
+ # As you own the machine, it's up to you to add the enviroment variable for the `DANGER_GITHUB_API_TOKEN`.
+ #
+ class Jenkins < CI
+ def self.validates_as_ci?(env)
+ env.key? "JENKINS_URL"
+ end
- def supported_request_sources
- @supported_request_sources ||= [Danger::RequestSources::GitHub]
- end
+ def self.validates_as_pr?(env)
+ ["ghprbPullId"].all? { |x| env[x] }
+ end
- def initialize(env)
- self.repo_url = env["GIT_URL"]
- self.pull_request_id = env["ghprbPullId"]
+ def supported_request_sources
+ @supported_request_sources ||= [Danger::RequestSources::GitHub]
+ end
- repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$})
- self.repo_slug = repo_matches[2] unless repo_matches.nil?
- end
+ def initialize(env)
+ self.repo_url = env["GIT_URL"]
+ self.pull_request_id = env["ghprbPullId"]
+
+ repo_matches = self.repo_url.match(%r{([\/:])([^\/]+\/[^\/.]+)(?:.git)?$})
+ self.repo_slug = repo_matches[2] unless repo_matches.nil?
end
end
end