Nic*_*nto 24 git heroku ruby-on-rails-3.1
每次我将我的应用程序推送到heroku时,我都会看到该行
-----> Launching... done, v43
Run Code Online (Sandbox Code Playgroud)
有没有办法在应用程序中创建该版本号,以便其他人可以看到该号码?
jas*_*ssa 37
为什么要在每次推送后依赖于运行命令?接受的答案比自己设置配置更糟糕.
而是添加到您的Gemfile:
gem 'heroku-api'
Run Code Online (Sandbox Code Playgroud)
将您的应用程序名称和API密钥添加到Heroku配置:
$ heroku config:add HEROKU_APP_NAME=myapp HEROKU_API_KEY=bp6ef3a9...
Run Code Online (Sandbox Code Playgroud)
然后把这样的东西放在config/initializers/heroku.rb:
unless (app_name = ENV["HEROKU_APP_NAME"]).nil?
require 'heroku-api'
heroku = Heroku::API.new(:api_key => ENV["HEROKU_API_KEY"])
release = heroku.get_releases(app_name).body.last
ENV["HEROKU_RELEASE_NAME"] = release["name"]
end
Run Code Online (Sandbox Code Playgroud)
最后:
puts ENV["HEROKU_RELEASE_NAME"]
=> v42
Run Code Online (Sandbox Code Playgroud)
现在它完全自动化了.您可以忘掉它并继续使用您的应用程序.
Ash*_*tan 18
现在可以在没有联系Heroku的情况下尝试Roberto在他的回答中写的Heroku功能.它被称为Heroku实验室:Dyno元数据,您可以通过它启用它
heroku labs:enable runtime-dyno-metadata -a <app name>
Run Code Online (Sandbox Code Playgroud)
然后信息可用(在下次部署时)作为环境变量:
~ $ env
HEROKU_APP_ID: <some-hash-appId>
HEROKU_APP_NAME: example-app
HEROKU_DYNO_ID: <some-hash-dynoId>
HEROKU_RELEASE_VERSION: v42
HEROKU_SLUG_COMMIT: <some-hash-slugCommit>
HEROKU_SLUG_DESCRIPTION: Deploy 2c3a0b2
...
Run Code Online (Sandbox Code Playgroud)
我们不必设置任何配置文件或其他.
之后每 push运行(假设bash壳):
heroku config:add rel=$(heroku releases | tail -2 | awk '{print $1}')
Run Code Online (Sandbox Code Playgroud)
然后,您只需rel从应用程序访问环境变量即可.
或者,如果您想要提供推送日期,IMO代表更有意义的信息:
heroku config:add rel=$(heroku releases | tail -2 | awk '{print $5,$6,$7}')
Run Code Online (Sandbox Code Playgroud)
或者,我最喜欢的,它包含没有空格的日期和版本:
heroku config:add rel=$(heroku releases | tail -2 | awk '{print $5"t"$6$7"."$1}')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3532 次 |
| 最近记录: |