Read more

Capistrano: How to find out which version of your application is currently live

Arne Hartherz
July 23, 2012Software engineer at makandra GmbH

When deploying, Capistrano puts a REVISION file into your application's release directory. It contains the hash of the commit which was deployed.

Illustration online protection

Rails Long Term Support

Rails LTS provides security patches for old versions of Ruby on Rails (2.3, 3.2, 4.2 and 5.2)

  • Prevents you from data breaches and liability risks
  • Upgrade at your own pace
  • Works with modern Rubies
Read more Show archive.org snapshot

If you want to know the currently deployed release, simply SSH to a server and view that file.

$ cat /var/www/my-project/current/REVISION
cf8734ece3938fc67262ad5e0d4336f820689307

Capistrano task

When your application is deployed to multiple servers, you probably want to see a result for all of them.
Here is a Capistrano task that checks all servers with the :app role.

namespace :deploy do
  desc 'Show deployed revision'
  task :revision do
    on roles :app do |host|
      within current_path do
        info "#{host}: #{capture :cat, 'REVISION'}"
      end
    end
  end
end

Output looks like this:

$ cap production deploy:revision
00:00 deploy:revision
      app01.example.com: cf8734ece3938fc67262ad5e0d4336f820689307
      app02.example.com: cf8734ece3938fc67262ad5e0d4336f820689307
      app03.example.com: cf8734ece3938fc67262ad5e0d4336f820689307

Deployment log

Note that Capistrano also logs each deployment. We have a separate card on finding out user/branch/commit/timestamp for past deployments.

Posted by Arne Hartherz to makandra dev (2012-07-23 10:28)