Sha256: 0141eac7cbce8dd497aab077e2f267b5fe622775d721c4b1caef8e6edc0d72ca

Contents?: true

Size: 1.97 KB

Versions: 84

Compression:

Stored size: 1.97 KB

Contents

# http://readme.drone.io/usage/variables/
require "danger/request_sources/github/github"
require "danger/request_sources/gitlab"

module Danger
  # ### CI Setup
  #
  # With Drone you run the docker images yourself, so you will want to add `bundle exec danger` at the end of
  # your `.drone.yml`.
  #
  #  ``` shell
  #   build:
  #     image: golang
  #     commands:
  #       - ...
  #       - bundle exec danger
  #  ```
  #
  # ### Token Setup
  #
  # As this is self-hosted, you will need to expose the `DANGER_GITHUB_API_TOKEN` as a secret to your
  # builds:
  #
  # Drone secrets: http://readme.drone.io/usage/secret-guide/
  # NOTE: This is a new syntax in DroneCI 0.6+
  #
  # ```
  #   build:
  #     image: golang
  #     secrets:
  #       - DANGER_GITHUB_API_TOKEN
  #     commands:
  #       - ...
  #       - bundle exec danger
  # ```
  class Drone < CI
    def self.validates_as_ci?(env)
      validates_as_ci_post_06?(env) or validates_as_ci_pre_06?(env)
    end

    def self.validates_as_pr?(env)
      env["DRONE_PULL_REQUEST"].to_i > 0
    end

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

    def initialize(env)
      if self.class.validates_as_ci_post_06?(env)
        self.repo_slug = "#{env['DRONE_REPO_OWNER']}/#{env['DRONE_REPO_NAME']}"
        self.repo_url = env["DRONE_REPO_LINK"] if self.class.validates_as_ci_post_06?(env)
      elsif self.class.validates_as_ci_pre_06?(env)
        self.repo_slug = env["DRONE_REPO"]
        self.repo_url = GitRepo.new.origins
      end

      self.pull_request_id = env["DRONE_PULL_REQUEST"]
    end

    # Check if this build is valid for CI with drone 0.6 or later
    def self.validates_as_ci_post_06?(env)
      env.key? "DRONE_REPO_OWNER" and env.key? "DRONE_REPO_NAME"
    end

    # Checks if this build is valid for CI with drone 0.5 or earlier
    def self.validates_as_ci_pre_06?(env)
      env.key? "DRONE_REPO"
    end
  end
end

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
danger-6.0.7 lib/danger/ci_source/drone.rb
danger-6.0.6 lib/danger/ci_source/drone.rb
danger-6.0.5 lib/danger/ci_source/drone.rb
danger-6.0.4 lib/danger/ci_source/drone.rb
danger-6.0.3 lib/danger/ci_source/drone.rb
danger-6.0.2 lib/danger/ci_source/drone.rb
danger-6.0.1 lib/danger/ci_source/drone.rb
danger-6.0.0 lib/danger/ci_source/drone.rb
danger-5.16.1 lib/danger/ci_source/drone.rb
danger-5.16.0 lib/danger/ci_source/drone.rb
danger-5.15.0 lib/danger/ci_source/drone.rb
danger-5.14.0 lib/danger/ci_source/drone.rb
danger-5.13.0 lib/danger/ci_source/drone.rb
danger-5.12.0 lib/danger/ci_source/drone.rb
danger-5.11.1 lib/danger/ci_source/drone.rb
danger-5.11.0 lib/danger/ci_source/drone.rb
danger-5.10.3 lib/danger/ci_source/drone.rb
danger-5.10.2 lib/danger/ci_source/drone.rb
danger-5.10.1 lib/danger/ci_source/drone.rb
danger-5.10.0 lib/danger/ci_source/drone.rb