我从另一个Rake任务调用了三个Rake任务。第一个Rake任务要求在执行环境变量之前设置它。
以下工作,但这意味着我丢失了任务的所有输出,这是至关重要的:
namespace :deploy do
task :staging => :environment do
`EXAMPLE=something rake db:rebuild`
Rake::Task["rake envs:push:staging"].invoke
Rake::Task["rake app:push:staging"].invoke
end
end
如何使用环境变量调用第一个任务并将其输出显示到终端?
答案 0 :(得分:21)
ENV['EXAMPLE'] = 'something'
Rake::Task['db:rebuild'].invoke
答案 1 :(得分:3)
使用system
代替后退:
system("EXAMPLE=something rake db:rebuild")