Capistrano 任务中的回声使文件为空
Echo in capistrano task make empty file
我尝试在部署时创建具有完整提交哈希的 REVISION 文件。
#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)
开发机器:Ubuntu 14.04.2 LTS
部署到 CentOS 6.4 版(最终版)
我通过在本地写入REVISION文件然后使用以下任务上传来解决这个问题
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
我尝试在部署时创建具有完整提交哈希的 REVISION 文件。
#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) 开发机器:Ubuntu 14.04.2 LTS 部署到 CentOS 6.4 版(最终版)
我通过在本地写入REVISION文件然后使用以下任务上传来解决这个问题
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