2015-10-08 3 views
0

Я пытаюсь создать файл REVISION с полным хэшем commit при развертывании.Echo in capistrano task make empty file

#early.. 
revision = %x[git rev-parse HEAD] 
set :revision, revision 

namespace :assets do 
    task :install do 
     on roles :all do 
      puts fetch(:revision, "") #it's good, print ee51dc1308a07cb0dfadd60b2a9d1b3485614034 

      execute :sh, "-c 'echo #{fetch(:revision, "")} > #{release_path}/REVISION2'" 

      execute :sh, "-c 'cat #{release_path}/REVISION2'" #empty output 

      execute :php, "#{release_path}/public/index.php assetic build" 
     end 
    end 
end 

В результате у меня есть файл REVISION2 без содержания.

Capistrano Версия: 3.4.0 (Rake Версия: 10.1.0) Dev машина: Ubuntu 14.04.2 LTS Deploy на CentOS выпуск 6,4 (Final)

ответ

0

Я решить эту проблему, написав файл ревизией в локально, а затем загрузить его со следующей задачей:

task :save_revision do 
    revision = %x[git rev-parse HEAD] 

    File.open("REVISION", 'w') { |file| file.write(revision) } 

    set :revision, revision #save for future 
    puts revision #print 

    on roles :all do 
     upload! "REVISION", "#{release_path}" 
    end 
end