Heroku:在视图中显示Git修订哈希和时间戳?
Heroku用提交散列ENV['COMMIT_HASH']
设置环境变量。
至于时间戳,如果您在那里托管您的代码,您可以使用散列点击github api。看起来ruby-github gem可以帮助你,或者你可以自己做HTTParty。
有安装在Heroku grit。所以你可以使用它打开仓库。
repo = Repo.new(Rails.root + '.git')
last_commit = repo.commits.first
p last_commit.id
p last_commit.authored_date
感谢您的提示。不幸的是,在heroku控制台中它不适用于我(它在应用程序本身会有所不同吗?)。在Repo.new之后,我得到'Grit :: NoSuchPathError:'任何想法? – 2009-10-18 14:43:54
试图解决类似的问题,我可以证实,这不符合描述。 – Andrew 2011-01-27 06:29:48
这不起作用,因为.git目录在Heroku上不可用,至少不在当前的Cedar堆栈中。 – 2012-08-08 12:21:49
这样做的原因是因为当你的应用部署到赛道网格服务请求时,它就是被编译成“弹头”的快速部署,并将该渣屑没有按”不再有git repo了。
这似乎是第一个评论(由Rich Apodaca)回答http://stackoverflow.com/a/1584452/1034080(由Damien MATHIEU)的回应。 – 2012-01-12 15:23:37
另一种方法是使用rake任务进行部署,该任务从本地回购获取所需的版本信息并更新Heroku一侧的环境变量。然后,您可以使用标签,或提交散列或其他任何内容,而不必依赖Heroku方面的行为。
例如,如果你想使用最新的标签,在你的rake任务:在任务的身体
def app_version
%x[git describe --tags --abbrev=0].strip
end
然后:
run "git push blah:blah blah"
run "heroku config:add APP_VERSION=#{app_version}"
我想能够从Heroku的git上直接获取这些信息,而不是间接偷偷摸摸地找到它,但我从来没有想过如何做到这一点。
'ENV ['COMMIT_HASH']'适用于Bamboo,但不适用于Cedar。 – 2012-02-29 17:20:37