使用chef将已部署的提交哈希写入文件

时间:2012-10-31 02:41:08

标签: git chef

使用Chef将当前部署的提交哈希写入version.txt文件的最佳方法是什么,类似于Etsy的工作方式?这就是我想出来的。

execute "update_version" do
   command git log -1 --format="%H" > public/version.txt
   creates "#{app_config['deploy_dir']}/current/public/version.txt"
   owner app_user
   group app_group
   action:run
end

1 个答案:

答案 0 :(得分:1)

   owner app_user
   group app_group

可能无法在执行资源中工作 http://wiki.opscode.com/display/chef/Resources#Resources-Execute

我可能会做类似

的事情
bash "update_revision" do
   code "git log -1 --format="%H" > public/version.txt"
   creates "#{app_config['deploy_dir']}/current/public/version.txt"
end

file "public/version.txt" do
  owner app_user
  group app_group
  mode  0644
end

或者您也可以使用类似

的内容创建模板
<%= shell_out!('git log -1 --format="%H"') %>

并使用类似

的模板资源
template( "public/version.txt") do
      owner app_user
      group app_group
      mode  0644
end