gitruby-on-rails-3.1heroku

Reflecting Heroku push version within the app


Every time I push my app to heroku I see the line

-----> Launching... done, v43

Is there a way to make that version number apear within the app so other people can see that number?


Solution

  • Why would you want to depend on running a command after every push? The accepted answer is worse than setting the config yourself.

    Instead add to your Gemfile:

    gem 'heroku-api'
    

    Add your App name and API key to the Heroku config:

    $ heroku config:add HEROKU_APP_NAME=myapp HEROKU_API_KEY=bp6ef3a9...
    

    Then put something like this in 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
    

    Finally:

    puts ENV["HEROKU_RELEASE_NAME"]
    => v42
    

    Now it's fully automated. You can forget about it and continue to work on your app.