tasks/mina/git.rb in mina-1.0.0.beta2 vs tasks/mina/git.rb in mina-1.0.0.beta3

- old
+ new

@@ -1,19 +1,21 @@ require 'mina/default' set :branch, 'master' set :remove_git_dir, true +set :remote, 'origin' +set :git_not_pushed_message, -> { "Your branch #{fetch(:branch)} needs to be pushed to #{fetch(:remote)} before deploying" } namespace :git do desc 'Clones the Git repository to the release path.' task clone: :environment do ensure!(:repository) ensure!(:deploy_to) if set?(:commit) - comment "Using git commit '#{fetch(:commit)}'" - command "git clone '#{fetch(:repository)}' . --recursive" - command "git checkout -b current_release '#{fetch(:commit)}' --force" + comment %(Using git commit \\"#{fetch(:commit)}\\") + command %(git clone "#{fetch(:repository)}" . --recursive) + command %(git checkout -b current_release "#{fetch(:commit)}" --force) else command %(if [ ! -d "#{fetch(:deploy_to)}/scm/objects" ]; then echo "-----> Cloning the Git repository" #{echo_cmd %[git clone "#{fetch(:repository)}" "#{fetch(:deploy_to)}/scm" --bare]} else @@ -22,18 +24,28 @@ fi && echo "-----> Using git branch '#{fetch(:branch)}'" && #{echo_cmd %[git clone "#{fetch(:deploy_to)}/scm" . --recursive --branch "#{fetch(:branch)}"]}), quiet: true end - comment 'Using this git commit' - command 'git rev-parse HEAD > .mina_git_revision' - command "git --no-pager log --format='%aN (%h):%n> %s' -n 1" + comment %(Using this git commit) + command %(git rev-parse HEAD > .mina_git_revision) + command %(git --no-pager log --format="%aN (%h):%n> %s" -n 1) if fetch(:remove_git_dir) - command 'rm -rf .git' + command %(rm -rf .git) end end task revision: :environment do ensure!(:deploy_to) - command "cat #{fetch(:current_path)}/.mina_git_revision" + command %(cat #{fetch(:current_path)}/.mina_git_revision) + end + + task ensure_pushed: :environment do + run :local do + comment %(Ensuring everyting is pushed to git) + command %( if [ $(git log #{fetch(:remote)}/#{fetch(:branch)}..#{fetch(:branch)} | wc -l) -ne 0 ]; then + echo "! #{fetch(:git_not_pushed_message)}" + exit 1 + fi) + end end end