对于我的Rails应用程序,我通常从标记版本部署到生产环境,然后在用户界面中显示标记,将git describe --always
的输出分配给config/application.rb
中的变量。
现在我正在将应用程序移动到Heroku,并且只使用主分支进行到heroku的部署,因此这个技巧将不再起作用。
当我部署到heroku时,还有其他方法可以为我的代码分配版本号并在UI上显示它吗?
谢谢, 斯图尔特
答案 0 :(得分:3)
只要将新更改推送到Heroku,就可以通过在本地运行此命令将变量添加到Heroku配置中:
heroku config:add GIT_TAG=`git describe --always`
然后您可以在应用的配置中访问它:
version = ENV['GIT_TAG'] || `git describe --always`
当应用程序在Heroku上运行时,它将获取配置变量(ENV['GIT_TAG']
),当它在开发中本地运行时,它将回退到运行git describe --always
。
每次部署时都需要更新Heroku配置变量,但我通常会将这种事情添加到部署脚本或rake任务中(以及创建标记部署和运行任何新数据库的新标记等有用的东西) Heroku上的迁移。)
答案 1 :(得分:0)
git tag
不符合您的需求吗?
为什么旧技巧不再适用?
答案 2 :(得分:0)
如果你想在UI上显示它,那么git SHA输出可能不是特别有用 - 你有两个选项,设置一个Heroku配置变量,用户友好的版本号或在你的代码中设置一个版本号从master部署时增加。您可以将部署包装在rake任务中,该任务将版本号增加一个文件(然后将其读入git并提交它),或者只是增加config变量中的值。
另外,不要忘记Heroku发布管理http://blog.heroku.com/archives/2010/11/17/releases/,您也可以在这里使用它来获取版本号。