Class: Danger::Travis
Overview
CI Setup
You need to edit your .travis.yml to include bundle exec danger. If you already have
a script: section then we recommend adding this command at the end of the script step: - bundle exec danger.
Otherwise, add a before_script step to the root of the .travis.yml with bundle exec danger
before_script:
- bundle exec danger
Adding this to your .travis.yml allows Danger to fail your build, both on the TravisCI website and within your Pull Request.
With that set up, you can edit your job to add bundle exec danger at the build action.
Note: Travis CI defaults to using an older version of Ruby, so you may need to add rvm: 2.0.0 to the root your .travis.yml.
Token Setup
You need to add the DANGER_GITHUB_API_TOKEN environment variable, to do this,
go to your repo's settings, which should look like: https://travis-ci.org/[user]/[repo]/settings.
If you have an open source project, you should ensure "Display value in build log" enabled, so that PRs from forks work.
Instance Attribute Summary
Attributes inherited from CI
#pull_request_id, #repo_slug, #repo_url
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(env) ⇒ Travis
constructor
A new instance of Travis.
- #supported_request_sources ⇒ Object
Methods inherited from CI
available_ci_sources, inherited, #supports?
Constructor Details
#initialize(env) ⇒ Travis
Returns a new instance of Travis.
45 46 47 48 49 50 51 |
# File 'lib/danger/ci_source/travis.rb', line 45 def initialize(env) self.repo_slug = env["TRAVIS_REPO_SLUG"] if env["TRAVIS_PULL_REQUEST"].to_i > 0 self.pull_request_id = env["TRAVIS_PULL_REQUEST"] end self.repo_url = GitRepo.new.origins # Travis doesn't provide a repo url env variable :/ end |
Class Method Details
.validates_as_ci?(env) ⇒ Boolean
32 33 34 |
# File 'lib/danger/ci_source/travis.rb', line 32 def self.validates_as_ci?(env) env.key? "HAS_JOSH_K_SEAL_OF_APPROVAL" end |
.validates_as_pr?(env) ⇒ Boolean
36 37 38 39 |
# File 'lib/danger/ci_source/travis.rb', line 36 def self.validates_as_pr?(env) exists = ["TRAVIS_PULL_REQUEST", "TRAVIS_REPO_SLUG"].all? { |x| env[x] && !env[x].empty? } exists && env["TRAVIS_PULL_REQUEST"].to_i > 0 end |
Instance Method Details
#supported_request_sources ⇒ Object
41 42 43 |
# File 'lib/danger/ci_source/travis.rb', line 41 def supported_request_sources @supported_request_sources ||= [Danger::RequestSources::GitHub] end |