Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

NSDanger

 NSDanger

@ Cocoaheads Taipei 2016 October Meetup

Errata: p.3 Cocoapods should be CocoaPods. Thanks orta to point out!

Juanito Fatas

October 13, 2016
Tweet

More Decks by Juanito Fatas

Other Decks in Technology

Transcript

  1. " CI # SCM tells CI to build MODERN WORKFLOW

    ! Source Control Management Continuous Integration
  2. Paths for files that were added during the diff added_files

    [String] Paths for files that were removed during the diff deleted_files [String] Paths for files that changed during the diff modified_files [String] The overall lines of code added/removed in the diff lines_of_code Int The overall lines of code removed in the diff deletions Int The overall lines of code added in the diff insertions Int The log of commits inside the diff commits Git::Log Details for a specific file in this diff diff_for_file Git::Diff::DiffFile GIT
  3. The title of the Pull Request. pr_title String The body

    text of the Pull Request. pr_body String The username of the author of the Pull Request. pr_author String The labels assigned to the Pull Request. pr_labels String The base commit to which the PR is going to be merged as a parent. base_commit String The head commit to which the PR is requesting to be merged from. head_commit String The hash that represents the PR's JSON. pr_json Hash Provides access to an API client used inside Danger. Different per platform. api Octokit::Client GITHUB gitlab bitbucket
  4. Print markdown to below the table markdown (message: String, file=nil:

    String, line=nil: String) Print out a generate message on the PR message (message: String, sticky=true: Boolean, file=nil: String, line=nil: String) Specifies a problem, but not critical warn (message: String, sticky=true: Boolean, file=nil: String, line=nil: String) Declares a CI blocking error fail (message: String, sticky=true: Boolean, file=nil: String, line=nil: String) A list of all messages passed to Danger, including the markdowns. status_report Hash A list of all violations passed to Danger, we don't anticipate users of Danger needing to use this. violation_report Hash MESSAGING
  5. Warn reviewers if PR is classed as Work In Progress

    Enforce CHANGELOG for big changes Enforce CHANGELOG for big changes that needs test on iPhone Fail if someone accidentally committed skipped tests Fail if changes Developer Specific files Fail if changes Analytics without tests Fail if CHANGELOG is broken Fail if Snapshots fails Warn if has unstubbed network requests Warn performance outliners in PR Artsy/eigen
  6. Spell Check Markdown Highlight JUnit Errors Highlight Xcode build issues

    Apply Commit Rules Enforce CHANGLOGs Only let certain developers touch some files Show slow swift compilation steps Keep your Git history short highlight undocumented methods Check if the author is in an org Ensure PR summaries Ensure each PR has a JIRA ticket Ensure developers write tests Only accept PRs to a specific branch Ensure all PRs have an assignee Warn when specific libs are added Fail big PRs Add links to build artifacts Run linters on your code, highlighting per line Ensure some files are never changed Ensure some texts are never added to files Ensure coupled files are both changed Prose check files Ensure PR title Merge OK PRs automatically