Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 31 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,16 +44,20 @@ All of the docs are on the user-facing website: https://danger.systems/swift/
### Commands

- `danger-swift ci` - Use this on CI
- `danger-swift pr https://github.com/Moya/Harvey/pull/23` - Use this to build your Dangerfile
- `danger-swift local` - Use this to run danger against your local changes from master
- `danger-swift edit` - Creates a temporary Xcode project for working on a Dangerfile
- `danger-swift pr https://github.com/Moya/Harvey/pull/23` - Use this to build
your Dangerfile
- `danger-swift local` - Use this to run danger against your local changes from
master
- `danger-swift edit` - Creates a temporary Xcode project for working on a
Dangerfile

#### Plugins

Infrastructure exists to support plugins, which can help you avoid repeating the same Danger rules across separate
repos.
Infrastructure exists to support plugins, which can help you avoid repeating the
same Danger rules across separate repos.

e.g. A plugin implemented with the following at https://github.com/username/DangerPlugin.git.
e.g. A plugin implemented with the following at
https://github.com/username/DangerPlugin.git.

```swift
// DangerPlugin.swift
Expand Down Expand Up @@ -103,18 +107,20 @@ You can use Swift PM to install both `danger-swift` and your plugins:
DangerPlugin.doYourThing()
```

- Create a folder called `DangerDependencies` in `Sources` with an empty file inside like
[Fake.swift](Sources/Sources/Danger-Swift/Fake.swift)
- Create a folder called `DangerDependencies` in `Sources` with an empty file
inside like [Fake.swift](Sources/Sources/Danger-Swift/Fake.swift)
- To run `Danger` use `swift run danger-swift command`
- **(Recommended)** If you are using Swift PM to distribute your framework, use
[Rocket](https://github.com/f-meloni/Rocket), or a similar tool, to comment out all the dev dependencies from your
`Package.swift`. This prevents these dev dependencies from being downloaded and compiled with your framework by
[Rocket](https://github.com/f-meloni/Rocket), or a similar tool, to comment
out all the dev dependencies from your `Package.swift`. This prevents these
dev dependencies from being downloaded and compiled with your framework by
consumers.
- **(Recommended)** cache the `.build` folder on your repo

#### Marathon (Easy to use)

By suffixing `package: [url]` to an import, you can directly import Swift PM package as a dependency
By suffixing `package: [url]` to an import, you can directly import Swift PM
package as a dependency

For example, a plugin could be used by the following.

Expand All @@ -126,7 +132,8 @@ import DangerPlugin // package: https://github.com/username/DangerPlugin.git
DangerPlugin.doYourThing()
```

You can see an [example danger-swift plugin](https://github.com/ashfurrow/danger-swiftlint#danger-swiftlint).
You can see an
[example danger-swift plugin](https://github.com/ashfurrow/danger-swiftlint#danger-swiftlint).

**(Recommended)** Cache the `~/.danger-swift` folder

Expand All @@ -136,6 +143,8 @@ For a Mac:

```sh
# Install danger-swift, and a bundled danger-js locally
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdyna-dot%2FSwift-5.0-For-Linux.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdyna-dot%2FSwift-5.0-For-Linux?ref=badge_shield)

brew install danger/tap/danger-swift
# Run danger
danger-swift ci
Expand Down Expand Up @@ -197,10 +206,16 @@ Run `swift run rocket $VERSION` on `master` e.g. `swift run rocket 1.0.0`

### Long-term

I, orta, only plan on bootstrapping this project, as I won't be using this in production. I'm happy to help support
others who want to own this idea and really make it shine though! So if you're interested in helping out, make a few PRs
and I'll give you org access.
I, orta, only plan on bootstrapping this project, as I won't be using this in
production. I'm happy to help support others who want to own this idea and
really make it shine though! So if you're interested in helping out, make a few
PRs and I'll give you org access.

[m]: https://github.com/JohnSundell/Marathon
[spm-lr]: http://bhargavg.com/swift/2016/06/11/how-swiftpm-parses-manifest-file.html
[spm-lr]:
http://bhargavg.com/swift/2016/06/11/how-swiftpm-parses-manifest-file.html
[dsl]: https://github.com/danger/danger-js/pull/341

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fdyna-dot%2FSwift-5.0-For-Linux.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fdyna-dot%2FSwift-5.0-For-Linux?ref=badge_large)