danger-SwiftInfo

A Danger plugin that runs and prints SwiftInfo results to pull requests.

Requires SwiftInfo 2.3.1 or newer.

How does it look?

Installation

Just add the gem to your Gemfile:

gem 'danger-SwiftInfo'

Usage

To use this plugin, you need to modify both your Dangerfile and your SwiftInfo's Infofile.

Dangerfile

Call swiftinfo.run with the path to your SwiftInfo binary as an argument. (inside Pods if CocoaPods was used or just swiftinfo if Homebrew was used)

swiftinfo.run './Pods/SwiftInfo/bin/swiftinfo'

Infofile

To print the final output to Danger, call api.print(output) from your Infofile.

Note that when ran from this plugin, SwiftInfo will be executed with the -pullRequest -s arguments which can be inspected and used as a condition. This logic is abstracted under the isInPullRequestMode boolean, which you can use to extract different providers in Danger runs and prevent saving the output, for example.

if isInPullRequestMode {
    // The specific Danger flow
    api.print(output: output)
} else {
    // The regular release flow
    api.sendToSlack(output: output, webhookUrl: url)
    api.save(output: output)
}

Development

  1. Clone this repo
  2. Run bundle install to setup dependencies.
  3. Run bundle exec rake spec to run the tests.
  4. Use bundle exec guard to automatically have tests run as you make changes.
  5. Make your changes.