Carrasco
Heartless and easy script execution.
Simple task runner, yaml config file.
Motivation:
Often in projects we have ./bin folder with project related scripts. On top of that there's grunt, rake, composer... sass compilation tasks...
When trying to figure out what script/task to run we have to check many sources.
Then I decided to make it simpler and a bit more organized. Now we can run
carrasco
and all tasks will be listed. Well, all of the tasks listed in the
.carrasco.yml
file anyway.
Installation
Add this line to your application's Gemfile:
gem 'carrasco'
And then execute:
$ bundle
Or install it yourself as:
$ gem install carrasco
Usage
Given you have a config file like the following in the root of your project:
# .carrasco.yml
commands:
test:
description: execute ruby tests
command: rake test
phpunit:
description: execute php tests
command: ./bin/vendor/phpunit --configuration=tests/phpunit.xml
clear_cache:
description: Clears the application cache
command: rm -rf ./app/cache
composer_install:
description: install php dependencies
command: composer install
npm_install:
description: install node dev tools
command: npm_install
clear_cache:
description: clears application cache
command: rm -rf ./storage/cache/*
db_create:
description: creates database
command: ./bin/db_create.sh
db_migrate:
description: migrates database
command: ./bin/db_migrate.sh
groups:
qa:
description: Runs qa tools
# if you want phpunit to run even if the test task fails you should set
# break_on_failure to true
#
# it will return non zero status code if any of the commands fail
# even if break_on_failure is set to false
#
# this option defaults to true
break_on_failure: false
commands:
- test
- phpunit
# - grunt test
app_setup:
description: run all commands to install the app
commands:
- composer_install
- npm_install
- clear_cache
- db_create
- db_migrate
You can execute:
1 - If you installed with gem install
carrasco # list commands
carrasco phpunit # phpunit only
carrasco qa # all qa scripts
carrasco app_setup # install the application dependencies
2 - If you used bundler
bundle exec carrasco # list commands
bundle exec carrasco phpunit # phpunit only
bundle exec carrasco qa # all qa scripts
bundle exec carrasco app_setup # install the application dependencies
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake test
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/mjacobus/carrasco. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
License
The gem is available as open source under the terms of the MIT License.