Project

cinder

0.0
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Cinder does the heavy lifting for building and distributing iOS applications in a continuous integration environment.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
~> 0.4.2
>= 0
>= 0

Runtime

~> 0.20.0
~> 4.1.3
~> 0.7.0
~> 0.9.16
~> 3.1.0
~> 0.16.0
~> 0.3.1
 Project Readme

Cinder Dependency Status Code Climate

Continuous Delivery for iOS Apps.

Cinder favors convention over configuration. Of the myriad ways to organize an iOS project, Cinder supports a subset that still gets the job done.

Flaming Butterfly and Flowers

iOS projects using Cinder:

  • have developers up and running after running a single command following git clone
  • build your app's ipa whenever code is pushed to your GitHub repo
  • publish successful builds of master as versions in TestFlight. The "What's New" shows changes since the last build and since the last release.
  • publish successful builds of topic branches as comments in the pull request with links to install a version of the app with that feature
  • comment and close pull requests of failed builds

Items in de-emphasized text are still being developed.

Usage

  • script/setup - run this after cloning a project and you're ready to develop in Xcode. Re-run it whenever project dependencies have changed.

  • script/cibuild - is the two-liner shell script which tells the Janky continuous integration server how to build Ad Hoc or Enterprise versions of your app:

      #!/bin/bash
      exec "$(dirname $0)/build" --configuration Enterprise
    
  • bin/cinder lint - will guide you through setting up a new project or modifying an existing project to work with Cinder.

New Project Quickstart

In the top-level of your project run:

ruby -e "$(curl -fsSL https://raw.github.com/detroit-labs/cinder/hot)"

This is a one-time initialization that only one developer must complete. Afterwards, anyone cloning the project can simply run:

script/setup

Installation for Existing Projects

If your project doesn't use Bundler (e.g. doesn't have a Gemfile) then follow New Project Quickstart above.

Cinder is available on Rubygems. Add this line to your Gemfile:

gem 'cinder'

Cinder expects that you use binstubs with Bundler and vendor gems under .bundle. Run:

bundle install --binstubs --path .bundle
git add .bundle/config
echo '/.bundle/ruby/' >>.gitignore

Henceforth bundle install without flags is sufficient.

The cinder CLI should now be available under bin/. It will guide you the rest of the way:

bin/cinder lint
# 10 fix errors
# 20 bin/cinder lint
# 30 if errors GOTO 10

Cinder is Opinionated

  • Ruby is an integral part of the development, build, and release toolchain for native iOS apps
  • Ruby versions are managed by rbenv
  • Automation always wins
  • Convention over configuration; when there's more than one way to do it, pick one

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Credits

Cinder is built and maintained at Detroit Labs by Tim Taylor and Nate West.

Detroit Labs

License

Cinder is released under the MIT license.