Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Pre-deploy hooks #20
I'm interested in running pre-deploy hooks:
namespace :deploy do namespace :staging do task :pre_deploy do Rake::Task['deploy:web:disable'].invoke if changes?('db/schema.rb') && role?(:web) end task :post_deploy do if changes?('db/schema.rb') Rake::Task['db:migrate'].invoke if role?(:db) Rake::Task['depoy:web:enable'].invoke if role?(:web) end end end end
The pre-deploy hook should run with:
I didn't get a chance to get to this on the plane. A couple of clarifying questions now that I'm thinking more about it:
I read your pre-deploy state as:
I'm not sure which .whiskey_disk-files you're asking for -- do you mean the files which track changes? For a single repo this would be possible (as that's deducible via git from the hashes of the current HEAD and the new origin/ HEAD), but for information from the other repositories it would be harder (as that information comes from applying those files, currently via rsync).
I'm mentally walking myself through the "business value" of the three preconditions. Having the previous version checked out seems obvious to me (and would be the state I think most people would expect the checkout to be in); having origin/ available (i.e., post-fetch) seems reasonable, as then one could do one's own arbitrary comparisons as to state. If it's changes files we're discussing in #3 then that might also be useful, it just happens to be (quite?) a bit more difficult.