Top Level Namespace

Defined Under Namespace

Modules: MinaExt

Instance Method Summary collapse

Instance Method Details

#instance_deploy_tasks(prefix, instance, &block) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/mina-ext/deploy.rb', line 10

def instance_deploy_tasks(prefix, instance, &block)
  namespace instance do
    namespace :deploy do
      origin_branches.each do |branch|
        desc "Deploy '#{prefix}_#{instance}' from branch '#{branch}'"
        task branch do
          set :revision, branch
          set :deploy_to, "/opt/www/#{prefix}_#{instance}"
          set :instance, instance
          set :prefix, prefix
          deploy do
            block.call(prefix, instance)
          end
          invoke :__stop
          queue 'sleep 10'
          invoke :__start
          invoke 'deploy:cleanup'
        end
      end
    end

    desc "Deploy '#{prefix}_#{instance}' from master"
    task :deploy do
      set :revision, 'master'
      set :deploy_to, "/opt/www/#{prefix}_#{instance}"
      set :instance, instance
      set :prefix, prefix
      deploy do
        block.call(prefix, instance)
      end
      invoke :__stop
      queue 'sleep 10'
      invoke :__start
      invoke 'deploy:cleanup'
    end
  end
end

#instance_manage_tasks(prefix, instance) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/mina-ext/deploy.rb', line 61

def instance_manage_tasks(prefix, instance)
  namespace instance do
    desc "Start '#{prefix}_#{instance}'"
    task :start do
      set :deploy_to, "/opt/www/#{prefix}_#{instance}"
      set :instance, instance
      set :prefix, prefix
      invoke :__start
    end

    desc "Restart '#{prefix}_#{instance}'"
    task :restart do
      set :deploy_to, "/opt/www/#{prefix}_#{instance}"
      set :instance, instance
      set :prefix, prefix
      invoke :__stop
      queue 'sleep 10'
      invoke :__start
    end

    desc "Stop '#{prefix}_#{instance}'"
    task :stop do
      set :deploy_to, "/opt/www/#{prefix}_#{instance}"
      set :instance, instance
      set :prefix, prefix
      invoke :__stop
    end

    desc "Tail Log '#{prefix}_#{instance}'"
    task :log do
      set :deploy_to, "/opt/www/#{prefix}_#{instance}"
      set :instance, instance
      set :prefix, prefix
      invoke :__log
    end
  end
end

#instance_setup_task(prefix, instance) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/mina-ext/deploy.rb', line 48

def instance_setup_task(prefix, instance)
  namespace instance do
    desc "Setup '#{prefix}_#{instance}'"
    task :setup do
      set :revision, 'master'
      set :deploy_to, "/opt/www/#{prefix}_#{instance}"
      set :instance, instance
      set :prefix, prefix
      invoke :setup
    end
  end
end

#origin_branchesObject



1
2
3
4
5
6
7
8
# File 'lib/mina-ext/deploy.rb', line 1

def origin_branches
  `git branch -a`.
    split("\n").
    reject{|line| line =~ /HEAD/}.
    reject{|line| line =~ /master/}.
    select{|line| line =~ /remotes\/origin\//}.
    map{|line| line.sub(/.*remotes\/origin\//, '')}
end