# Perkins ### A travis compatible standalone CI solution for ruby Behind the scenes perkins uses a slightly modified version of *travis-build* library and uses *Travis-yaml* gem to parse the .travis.yml files on existing repos. Also it integrates the Log.js library to display the build log the same way Travis does. ![screen shot 2015-04-14 at 7 02 02 pm](https://cloud.githubusercontent.com/assets/11976/8642513/971455da-28fb-11e5-8b9b-3741aa499655.png) Said that, big kudos to Travis team for developing such an art piece and save us months of work to develop those components ## Why not use Travis open source app ? Travis code is undoubtedly a piece of art, but at the same time is a complex application, made of several components, at least 8, with a service-oriented architecture. That's great! but for a small team like mine we can't afford manage as many applications for a single task, so we prefer to use a monolithic, lightweight solution to run our specs, in a Travis compatible way, yay! ### Status: Perkins is at experimental fase, use at your own risk. ## Features: + Github webhook receiver. + Github repo selector from user & organizations. + .travis.yml detection. + Build support for ruby (supports bundler and rvm or chruby). + Build support for Go. + Addition of more languages should be trivial thanks to travis-build. + Badge generation through https://img.shields.io/ service. ## Installation `gem install perkins` ## Usage `perkins server config.rb --port=3000` or `bundle exec perkins server config.rb --port=3000` ## Configuration configuration file for perkins to run. ```ruby Perkins.application() do |app| config do |c| c.redis = {host: "localhost"} c.github_client_id = ENV['GITHUB_CLIENT_ID'] c.github_client_secret = ENV['GITHUB_SECRET'] end end ``` ## Config oauth app in github https://github.com/settings/applications ## Webhooks To set the webhook for a repo you can go to github repo admin or visit a perkins repo on `youapp.com/repos/my/repo/config` ## Travis.yml When Perkins runs a build it will search for a travis.yml file on the root of your repository, so existing repos with that file will just work. You can read more info about build config at: http://docs.travis-ci.com/user/build-configuration/ ## Contributing 1. Fork it ( https://github.com/michelson/perkins/fork ) 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 a new Pull Request