Merge pull request #158 from szajbus/master
Run rake through bundle exec
This commit is contained in:
commit
648587b416
@ -19,4 +19,12 @@ module Whenever
|
|||||||
Dir.pwd
|
Dir.pwd
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
def self.rails3?
|
||||||
|
File.exists?(File.join(path, 'script', 'rails'))
|
||||||
|
end
|
||||||
|
|
||||||
|
def self.bundler?
|
||||||
|
File.exists?(File.join(path, 'Gemfile'))
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
@ -8,10 +8,16 @@ set :path, Whenever.path
|
|||||||
set :job_template, "/bin/bash -l -c ':job'"
|
set :job_template, "/bin/bash -l -c ':job'"
|
||||||
|
|
||||||
job_type :command, ":task :output"
|
job_type :command, ":task :output"
|
||||||
job_type :rake, "cd :path && RAILS_ENV=:environment rake :task --silent :output"
|
|
||||||
|
# Run rake through bundler if possible
|
||||||
|
if Whenever.bundler?
|
||||||
|
job_type :rake, "cd :path && RAILS_ENV=:environment bundle exec rake :task --silent :output"
|
||||||
|
else
|
||||||
|
job_type :rake, "cd :path && RAILS_ENV=:environment rake :task --silent :output"
|
||||||
|
end
|
||||||
|
|
||||||
# Create a runner job that's appropriate for the Rails version,
|
# Create a runner job that's appropriate for the Rails version,
|
||||||
if File.exists?(File.join(path, 'script', 'rails'))
|
if Whenever.rails3?
|
||||||
job_type :runner, "cd :path && script/rails runner -e :environment ':task' :output"
|
job_type :runner, "cd :path && script/rails runner -e :environment ':task' :output"
|
||||||
else
|
else
|
||||||
job_type :runner, "cd :path && script/runner -e :environment ':task' :output"
|
job_type :runner, "cd :path && script/runner -e :environment ':task' :output"
|
||||||
|
@ -114,7 +114,7 @@ class OutputAtTest < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
should "output the rake task using one entry because the times are aligned" do
|
should "output the rake task using one entry because the times are aligned" do
|
||||||
assert_match '2 5,15 * * 1,3,5 cd /your/path && RAILS_ENV=production rake blah:blah --silent', @output
|
assert_match '2 5,15 * * 1,3,5 cd /your/path && RAILS_ENV=production bundle exec rake blah:blah --silent', @output
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ class OutputAtTest < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
should "output all of the commands @daily" do
|
should "output all of the commands @daily" do
|
||||||
assert_match '@daily cd /your/path && RAILS_ENV=production rake blah:blah --silent', @output
|
assert_match '@daily cd /your/path && RAILS_ENV=production bundle exec rake blah:blah --silent', @output
|
||||||
assert_match %(@daily cd /your/path && script/runner -e production 'runner_1'), @output
|
assert_match %(@daily cd /your/path && script/runner -e production 'runner_1'), @output
|
||||||
assert_match '@daily command_1', @output
|
assert_match '@daily command_1', @output
|
||||||
assert_match %(@daily cd /your/path && script/runner -e production 'runner_2'), @output
|
assert_match %(@daily cd /your/path && script/runner -e production 'runner_2'), @output
|
||||||
|
@ -110,7 +110,7 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
|
|||||||
context "A runner for a Rails 3 app" do
|
context "A runner for a Rails 3 app" do
|
||||||
setup do
|
setup do
|
||||||
Whenever.expects(:path).at_least_once.returns('/my/path')
|
Whenever.expects(:path).at_least_once.returns('/my/path')
|
||||||
File.expects(:exists?).with('/my/path/script/rails').returns(true)
|
Whenever.expects(:rails3?).returns(true)
|
||||||
@output = Whenever.cron \
|
@output = Whenever.cron \
|
||||||
<<-file
|
<<-file
|
||||||
set :job_template, nil
|
set :job_template, nil
|
||||||
@ -140,6 +140,24 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
should "output the rake command using that path" do
|
should "output the rake command using that path" do
|
||||||
|
assert_match two_hours + ' cd /my/path && RAILS_ENV=production bundle exec rake blahblah --silent', @output
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "A rake for a non-bundler app" do
|
||||||
|
setup do
|
||||||
|
Whenever.expects(:path).at_least_once.returns('/my/path')
|
||||||
|
Whenever.expects(:bundler?).returns(false)
|
||||||
|
@output = Whenever.cron \
|
||||||
|
<<-file
|
||||||
|
set :job_template, nil
|
||||||
|
every 2.hours do
|
||||||
|
rake 'blahblah'
|
||||||
|
end
|
||||||
|
file
|
||||||
|
end
|
||||||
|
|
||||||
|
should "not use invoke through bundler" do
|
||||||
assert_match two_hours + ' cd /my/path && RAILS_ENV=production rake blahblah --silent', @output
|
assert_match two_hours + ' cd /my/path && RAILS_ENV=production rake blahblah --silent', @output
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -157,7 +175,7 @@ class OutputDefaultDefinedJobsTest < Test::Unit::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
should "output the rake command using that path" do
|
should "output the rake command using that path" do
|
||||||
assert_match two_hours + ' cd /some/other/path && RAILS_ENV=production rake blahblah --silent', @output
|
assert_match two_hours + ' cd /some/other/path && RAILS_ENV=production bundle exec rake blahblah --silent', @output
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user