96 lines
2.4 KiB
Ruby
96 lines
2.4 KiB
Ruby
GRUNT = "./node_modules/.bin/grunt"
|
|
|
|
task :default => "build"
|
|
|
|
desc "Install dependencies with NPM"
|
|
task :install do
|
|
sh "npm install"
|
|
end
|
|
|
|
desc "Build everything & minify"
|
|
task :build => [ "build:js", "build:css", "build:minify" ] do end
|
|
|
|
desc "Watch everything."
|
|
multitask :watch => [ "watch:js", "watch:css" ]
|
|
|
|
desc "Run tests with mocha"
|
|
task :test do
|
|
sh "#{MOCHA} #{OPTS} --reporter spec"
|
|
end
|
|
|
|
desc "Start a web server on port 8080"
|
|
task :serve do
|
|
SERVER = "./node_modules/.bin/static"
|
|
|
|
sh "#{SERVER} public -H '{\"Cache-Control\": \"no-cache, must-revalidate\"}'"
|
|
end
|
|
|
|
desc "Publish to GitHub Pages"
|
|
task :publish do
|
|
sh "#{GRUNT} pages"
|
|
end
|
|
|
|
desc "Build app and make a commit with latest changes"
|
|
task :commit, [ :message ] => [ "build" ] do |t, args|
|
|
args.with_defaults(:message => ":speech_balloon")
|
|
|
|
sh "git add -A"
|
|
sh "git commit -am \"#{args.message}\""
|
|
sh "git push -u origin master"
|
|
end
|
|
|
|
namespace :watch do
|
|
WATCHIFY = "./node_modules/.bin/watchify"
|
|
WATCH = "./node_modules/.bin/watch"
|
|
|
|
desc "Watch the app"
|
|
task :js do
|
|
sh "#{WATCHIFY} -e ./src/app.coffee -o public/js/app.bundle.js -d -v"
|
|
end
|
|
|
|
desc "Watch the styles"
|
|
task :css => [ "build:css" ] do
|
|
sh "#{WATCH} \"rake build:css\" src/styles"
|
|
end
|
|
end
|
|
|
|
namespace :build do
|
|
BROWSERIFY = "./node_modules/.bin/browserify"
|
|
LESS = "./node_modules/.bin/lessc"
|
|
|
|
desc "Build the app with Browserify"
|
|
task :js do
|
|
sh "#{BROWSERIFY} -e ./src/app.coffee -o public/js/app.bundle.js"
|
|
end
|
|
|
|
desc "Build the styles with LESS"
|
|
task :css do
|
|
sh "#{LESS} src/styles/burnchart.less > public/css/app.bundle.css"
|
|
end
|
|
|
|
desc "Minify build for production"
|
|
task :minify do
|
|
sh "#{GRUNT} minify"
|
|
end
|
|
end
|
|
|
|
namespace :test do
|
|
MOCHA = "./node_modules/.bin/mocha"
|
|
COVERALLS = "./node_modules/.bin/coveralls"
|
|
|
|
OPTS = "--compilers coffee:coffee-script/register --ui exports --timeout 5000 --bail"
|
|
|
|
desc "Run code coverage, mocha with Blanket.js"
|
|
task :coverage do
|
|
sh "#{MOCHA} #{OPTS} --reporter html-cov --require blanket > docs/COVERAGE.html"
|
|
end
|
|
|
|
desc "Run code coverage and publish to Coveralls"
|
|
task :coveralls, :token do |t, args|
|
|
args.with_defaults(:token => "ABC")
|
|
|
|
a = "#{MOCHA} #{OPTS} --reporter mocha-lcov-reporter --require blanket"
|
|
b = "COVERALLS_REPO_TOKEN=#{args.token} COVERALLS_SERVICE_NAME=MOCHA #{COVERALLS}"
|
|
sh "#{a} | #{b}"
|
|
end
|
|
end |