Class: Danger::Travis

Inherits:
CI
  • Object
show all
Defined in:
lib/danger/ci_source/travis.rb

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`

```ruby
  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

Methods inherited from CI

available_ci_sources, inherited, #supports?

Constructor Details

#initialize(env) ⇒ Travis

Returns a new instance of Travis.



43
44
45
46
47
48
49
# File 'lib/danger/ci_source/travis.rb', line 43

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

Returns:

  • (Boolean)


30
31
32
# File 'lib/danger/ci_source/travis.rb', line 30

def self.validates_as_ci?(env)
  env.key? "HAS_JOSH_K_SEAL_OF_APPROVAL"
end

.validates_as_pr?(env) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
# File 'lib/danger/ci_source/travis.rb', line 34

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_sourcesObject



39
40
41
# File 'lib/danger/ci_source/travis.rb', line 39

def supported_request_sources
  @supported_request_sources ||= [Danger::RequestSources::GitHub]
end