Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/AutobahnSwift/Autobahn
CLI tool written in Swift heavily inspired by https://github.com/fastlane/fastlane
https://github.com/AutobahnSwift/Autobahn
automation cli fastlane swift swift-library swift-package swift4
Last synced: about 1 month ago
JSON representation
CLI tool written in Swift heavily inspired by https://github.com/fastlane/fastlane
- Host: GitHub
- URL: https://github.com/AutobahnSwift/Autobahn
- Owner: AutobahnSwift
- License: mit
- Archived: true
- Created: 2017-08-29T18:49:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-09-17T16:38:29.000Z (over 7 years ago)
- Last Synced: 2024-08-29T04:01:34.781Z (4 months ago)
- Topics: automation, cli, fastlane, swift, swift-library, swift-package, swift4
- Language: Swift
- Homepage:
- Size: 59.6 KB
- Stars: 129
- Watchers: 10
- Forks: 6
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Autobahn
Autobahn is a set of tools (written in Swift) heavily inspired by [fastlane](https://github.com/fastlane/fastlane) to automate many day to day tasks associated with development of apps in the Apple ecosystem. Currently most progess has been made on a sub package called [Shuttle](https://github.com/kdawgwilk/Shuttle) that is basically a port of fastlane's [spaceship](https://github.com/fastlane/fastlane/tree/master/spaceship) which is an HTTP client for interacting with the Apple Developer portal and iTunesConnect.
>NOTE: This is still a work in progress and there is still much to do, here is a rough list of things I would like to see in the near future
### ToDO List:
- [x] DSL for defining `highways`
- [ ] >90% Code Coverage
- [ ] CLI tool
- [x] `drive ` drives the highway specified
- [ ] need to make this the default still
- [x] `init` creates template `Autobahn.swift` file
- [ ] `edit` command that creates a temp playground with autocomplete working for Autobahn.swift
- [ ] `verbose` obviously
- [ ] `actions` lists all available actions
- [ ] `action ` that describes the action
- [x] `help` to explain how each command works
- [x] Autobahn.swift config file see [danger-swift](https://github.com/danger/danger-swift)
- [ ] Homebrew install support
- [ ] Plugin architecture
- [ ] Git support
- [ ] Support `.env`## Usage
```
$ autobahn drive [highway]
```## Example Autobahn.swift
```swift
enum Highway: String, AutobahnDescription.Highway {
case build, test, deploy, release
}Autobahn(Highway.self)
.beforeAll { highway in
print("Driving highway: \(highway)")
}.highway(.build) {
print("Building...")
try sh("swift", "build")
}.highway(.test) {
try sh("swift", "test")
}.highway(.deploy) {
print("Deploying...")
}.highway(.release, dependsOn: [.build, .deploy]) {
print("Releasing...")
}.afterAll { highway in
print("Successfully drove highway: \(highway)")
}.onError { name, error in
print("Error driving highway: \(name)")
print("Error: \(error)")
}.drive()
```## Installation
TODO: Not supported quite yet
```
$ brew tap kdawgwilk/homebrew-tap
$ brew install autobahn
```### Development
```sh
$ git clone https://github.com/kdawgwilk/Autobahn.git
$ cd Autobahn
$ swift build# You can run the cli from the build dir like this:
# .build/debug/autobahn drive
$ .build/debug/autobahn drive build# Or I find it helpful to symlink to `/usr/local/bin` so I can run it directly
$ ln -s `pwd`/.build/debug/autobahn /usr/local/bin/autobahn# autobahn drive
$ autobahn drive build
```### 🚀 Contributing
All developers should feel welcome and encouraged to contribute to Autobahn, see our [getting started](/CONTRIBUTING.md) document here to get involved.
### 💙 Code of Conduct
Our goal is to create a safe and empowering environment for anyone who decides to use or contribute to Autobahn. Please help us make the community a better place by abiding to this [Code of Conduct](/CODE_OF_CONDUCT.md) during your interactions surrounding this project.
> This project is in no way affiliated with Apple Inc.