My application is going into user testing and I would like to see which "release" the user has been testing against by the release appearing somewhere on the view. I can then check it on screen prints etc. I am using Git and Capistrano in a multi-stage environment. I expect I could access the capistrano release name from the filesystem directory somehow. Any clever way of doing this in the application controller? Even better would be to somehow get Capistrano to capture the SHA (e.g. 1837213156f56b850e9045622d5c2f4a1607ef53) that it is checking out and placing that somewhere where I can read. That way I can track any errors based on the Git release. Perhaps just displaying the first 4 digits would be enough. Has anyone done this somehow? Any other ideas? O. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Peter De Berdt
2010-Apr-22 17:02 UTC
Re: App to Pick up application release from Git/Capistrano?
On 22 Apr 2010, at 18:00, Owain wrote:> My application is going into user testing and I would like to see > which "release" the user has been testing against by the release > appearing somewhere on the view. I can then check it on screen prints > etc. > > I am using Git and Capistrano in a multi-stage environment. > > I expect I could access the capistrano release name from the > filesystem directory somehow. Any clever way of doing this in the > application controller? > > Even better would be to somehow get Capistrano to capture the SHA > (e.g. 1837213156f56b850e9045622d5c2f4a1607ef53) that it is checking > out and placing that somewhere where I can read. That way I can track > any errors based on the Git release. Perhaps just displaying the > first 4 digits would be enough. Has anyone done this somehow?>> p = `cd #{RAILS_ROOT} && git rev-parse HEAD`.strip => "031154343573f846dc4f9d31806e58438bfe783e" >> q = `cd #{RAILS_ROOT} && git show-ref`.strip => "031154343573f846dc4f9d31806e58438bfe783e refs/heads/master" Would be best if you store the result in a constant at startup, so the IO operation isn''t called on every page. Hope this helps. Best regards Peter De Berdt -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Rob Biedenharn
2010-Apr-22 18:02 UTC
Re: App to Pick up application release from Git/Capistrano?
On Apr 22, 2010, at 1:02 PM, Peter De Berdt wrote:> On 22 Apr 2010, at 18:00, Owain wrote: >> My application is going into user testing and I would like to see >> which "release" the user has been testing against by the release >> appearing somewhere on the view. I can then check it on screen >> prints >> etc. >> >> I am using Git and Capistrano in a multi-stage environment. >> >> I expect I could access the capistrano release name from the >> filesystem directory somehow. Any clever way of doing this in the >> application controller? >> >> Even better would be to somehow get Capistrano to capture the SHA >> (e.g. 1837213156f56b850e9045622d5c2f4a1607ef53) that it is checking >> out and placing that somewhere where I can read. That way I can >> track >> any errors based on the Git release. Perhaps just displaying the >> first 4 digits would be enough. Has anyone done this somehow? > > >> p = `cd #{RAILS_ROOT} && git rev-parse HEAD`.strip > => "031154343573f846dc4f9d31806e58438bfe783e" > >> q = `cd #{RAILS_ROOT} && git show-ref`.strip > => "031154343573f846dc4f9d31806e58438bfe783e refs/heads/master" > > Would be best if you store the result in a constant at startup, so > the IO operation isn''t called on every page. > > Hope this helps. > > Best regards > > Peter De BerdtYou can always use the contents of the REVISION file that cap puts in your Rails.root directory File.read(File.expand_path(''REVISION'', RAILS_ROOT)) -Rob Rob Biedenharn http://agileconsultingllc.com Rob-xa9cJyRlE0mWcWVYNo9pwxS2lgjeYSpx@public.gmane.org +1 513-295-4739 Skype: rob.biedenharn -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Peter De Berdt
2010-Apr-22 22:38 UTC
Re: App to Pick up application release from Git/Capistrano?
On 22 Apr 2010, at 20:02, Rob Biedenharn wrote:>> >> p = `cd #{RAILS_ROOT} && git rev-parse HEAD`.strip >> => "031154343573f846dc4f9d31806e58438bfe783e" >> >> q = `cd #{RAILS_ROOT} && git show-ref`.strip >> => "031154343573f846dc4f9d31806e58438bfe783e refs/heads/master" >> >> Would be best if you store the result in a constant at startup, so >> the IO operation isn''t called on every page. >> >> Hope this helps. >> >> Best regards >> >> Peter De Berdt > > You can always use the contents of the REVISION file that cap puts > in your Rails.root directory > > File.read(File.expand_path(''REVISION'', RAILS_ROOT))Ah indeed, totally forgot about that one. Best regards Peter De Berdt -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Thanks Peter and Rob. I think it would still make sense to do this during initialization rather than at the application controller since it is during initialization is then it will change. I will also add some logic to the view just to check REVISION is there, perhaps in future the app might not be deployed using Cap. Sounds like a little helper. O. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
so here it is my solution; /app/config/initializers/revision.rb filename = File.expand_path(''REVISION'', RAILS_ROOT) REVISION = File.exist?(filename) ? File.read(filename) : `cd #{RAILS_ROOT} && git rev-parse HEAD`.strip /app/views/layout/application.html.erb <%- unless production? %> <p id=''revision''><%= "#{REVISION[0..3]} #{Time.now.to_s(:db)} "%></ p> <%- end -%> /app/helpers/application_helper.rb def production? @is_production ||=(ENV[''RAILS_ENV'']==''production'') end /public/stylesheets/content.css #revision { color: gray; position: absolute; z-index: 9; top: 10px; left: 0px; } -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.