1

对于我的 Rails 应用程序,我通常从标记版本部署到生产环境,然后在用户界面中显示标记,将输出分配git describe --alwaysconfig/application.rb.

现在我将一个应用程序移动到 Heroku,并且部署到 Heroku 只发生在使用 master 分支,所以这个技巧将不再起作用。

当我部署到 Heroku 时,是否有任何其他方法可以为我的代码分配版本号并在 UI 上显示它?

谢谢,斯图尔特

4

3 回答 3

3

每当您将新更改推送到 Heroku 时,您可以通过在本地运行此命令来将变量添加到 Heroku 配置:

heroku config:add GIT_TAG=`git describe --always`

然后您可以在应用程序的配置中访问它:

version = ENV['GIT_TAG'] || `git describe --always`

当应用程序在 Heroku 上运行时,它将获取配置变量 ( ENV['GIT_TAG']),当它在本地开发中运行时,它将回退到 running git describe --always

每次部署时都需要更新 Heroku 配置变量,但我通常将这种东西添加到部署脚本或 rake 任务中(以及创建标记部署的新标签和在 Heroku 上运行任何新数据库迁移等有用的东西)。

于 2012-05-28T06:08:06.670 回答
0

如果你想在 UI 上显示它,那么 git SHA 输出可能不是特别有用 - 你有两个选择,设置一个带有用户友好版本号的 Heroku 配置变量,或者在你增加的代码中设置一个版本号当您从 master 部署时。您可以将部署包装在 rake 任务中,该任务将版本号增加一个文件(然后将其读取到 git 并提交它)或简单地增加配置变量中的值。

另外,不要忘记 Heroku 发布管理http://blog.heroku.com/archives/2010/11/17/releases/,您也可以在这里使用它来获取版本号。

于 2012-05-28T07:39:09.387 回答
0

git tag符合您的需求?

为什么老把戏不再奏效了?

于 2012-05-27T23:07:19.417 回答