我们的代码使用git存储库来获得应用程序的版本(我们制作了类似于{git-tag}-build{git-hash}的内容,并且使用Capistrano来部署应用程序)。
但是,使用Capistrano v3.0 (由Jenkins运行),我发现git存储库被删除了。
我试着做一些类似的东西:
namespace :environment do
desc 'Copies .git folder'
task :copy_git do
on roles(:app) do
within release_path do
execute :mkdir, ".git"
execute :cp, "-R * .git/"
end
end
end
end但正如你所理解的,这是行不通的。
这就是我遇到的问题:
Could not get version string (no version file andgit描述了failed)。
对于如何解决这个问题,或者如何将.git文件夹包含在release_path中,有什么想法吗?任何关于版本控制的其他想法都是可以接受的。
发布于 2015-10-05 22:38:44
缺少.git文件夹的原因是通过git archive | tar -xf (简化)进行部署。
部署时,release_path包含一个名为REVISION的文件,您可以在该文件中找到已部署代码的git哈希。你可以用这个得到精确的修订。
我通常建议您在代码库中添加一个变量来跟踪发布版本,例如1.0.0。RubyGems模板就是这样做的。这样,您的代码版本就不绑定到版本控制系统。
希望这能有所帮助!
https://stackoverflow.com/questions/32958509
复制相似问题