EggSeed is a command-line tool for creating swift pacakges with continous integration support. While swift package init
, creates simple packages, there is no guarantee that your package will work on everyone else's device. That's where continuous integration goes in.
By using eggseed
, you can create a package with full integration into CI services such as: GitHub Actions, Travis-CI, BitRise, CircleCI and more. Not only that but EggSeed also sets up code documentation, linting, and more...
Check out the roadmap below for more details on future integrations.
mint install brightdigit/EggSeed
Use as CLI
git clone https://github.com/brightdigit/EggSeed.git
cd EggSeed
swift run eggseed
Use as dependency
Add the following to your Package.swift file's dependencies:
.package(url: "https://github.com/brightdigit/EggSeed.git", from: "0.2.0"),
And then import wherever needed: import EggSeed
USAGE: eggseed [--package-type <package-type>] [--user-name <user-name>] [--path <path>]
OPTIONS:
--package-type <package-type>
Swift Package Type (default: library)
--user-name <user-name> User name or Owner of Repostory.
--path <path> Root path of the Swift Package.
-h, --help Show help information.
Eggseed can be run without any options. However there are a few options which can help customize your package:
Desginates what type of package you are creating.
The owner to user name of the repository. If not specified, EggSeed will attempt to parse the URL for that information.
Directory to create the Swift Package in, otherwise use the current directory.
All code documentation is here.
Future Released Will Include:
- Choosing a License (MIT, GNU GPLv3, Apache License 2.0, etc...)
- Choosing Target OS and Version for CI (macOS v10_12, watchOS v6_2, Ubuntu Focal, iOS 12, etc...)
- Choosing CI Services (GitHub Actions, Travis-CI, BitRise, CircleCI, etc...)
- Custom Template URLs
- Adding Cocoapod Support
- Adding Carthage Support
- Adding Homebrew Support
- Choosing Code Documentation Tool (SourceDocs, Jazzy, etc...)
- Choosing Linting Support (SwiftFormat, SwiftLint, etc...)
- Allow For Multiple Products On Setup
- Choosing Architecture Support (amd64, aarch64, etc...)
- Support for Komondor
- Support for Rocket
- Support for Swift Package Index
- Automated Code Quality Integrations (codebeat, Code Climate, Code Factory, etc...)
- README template and badges
Feel free to add an issue for any suggestions.
Follow and contact me on Twitter. If you find an issue, just open a ticket on it. Pull requests are warmly welcome as well.
EggSeed is licensed under the MIT license. See LICENSE for more info.