mina-ext 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +5 -0
- data/README.md +1 -27
- data/lib/mina-ext/deploy.rb +125 -0
- data/lib/mina-ext/version.rb +1 -1
- metadata +2 -1
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -1,29 +1,3 @@
|
|
1
1
|
# Mina::Ext
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
## Installation
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
gem 'mina-ext'
|
10
|
-
|
11
|
-
And then execute:
|
12
|
-
|
13
|
-
$ bundle
|
14
|
-
|
15
|
-
Or install it yourself as:
|
16
|
-
|
17
|
-
$ gem install mina-ext
|
18
|
-
|
19
|
-
## Usage
|
20
|
-
|
21
|
-
TODO: Write usage instructions here
|
22
|
-
|
23
|
-
## Contributing
|
24
|
-
|
25
|
-
1. Fork it
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
-
3. Commit your changes (`git commit -am 'Added some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
-
5. Create new Pull Request
|
3
|
+
My private gem
|
data/lib/mina-ext/deploy.rb
CHANGED
@@ -0,0 +1,125 @@
|
|
1
|
+
def origin_branches
|
2
|
+
`git branch -a`.
|
3
|
+
split("\n").
|
4
|
+
reject{|line| line =~ /HEAD/}.
|
5
|
+
reject{|line| line =~ /master/}.
|
6
|
+
select{|line| line =~ /remotes\/origin\//}.
|
7
|
+
map{|line| line.sub(/.*remotes\/origin\//, '')}
|
8
|
+
end
|
9
|
+
|
10
|
+
def instance_deploy_tasks(prefix, instance, &block)
|
11
|
+
namespace instance do
|
12
|
+
namespace :deploy do
|
13
|
+
origin_branches.each do |branch|
|
14
|
+
desc "Deploy '#{prefix}_#{instance}' from branch '#{branch}'"
|
15
|
+
task branch do
|
16
|
+
set :revision, branch
|
17
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
18
|
+
set :instance, instance
|
19
|
+
set :prefix, prefix
|
20
|
+
deploy do
|
21
|
+
block.call(prefix, instance)
|
22
|
+
end
|
23
|
+
invoke 'deploy:cleanup'
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Deploy '#{prefix}_#{instance}' from master"
|
29
|
+
task :deploy do
|
30
|
+
set :revision, 'master'
|
31
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
32
|
+
set :instance, instance
|
33
|
+
set :prefix, prefix
|
34
|
+
deploy do
|
35
|
+
block.call(prefix, instance)
|
36
|
+
end
|
37
|
+
invoke 'deploy:cleanup'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def instance_setup_task(prefix, instance)
|
43
|
+
namespace instance do
|
44
|
+
desc "Setup '#{prefix}_#{instance}'"
|
45
|
+
task :setup do
|
46
|
+
set :revision, 'master'
|
47
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
48
|
+
set :instance, instance
|
49
|
+
set :prefix, prefix
|
50
|
+
invoke :setup
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def instance_manage_tasks(prefix, instance)
|
56
|
+
namespace instance do
|
57
|
+
desc "Start '#{prefix}_#{instance}'"
|
58
|
+
task :start do
|
59
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
60
|
+
set :instance, instance
|
61
|
+
set :prefix, prefix
|
62
|
+
invoke :__start
|
63
|
+
end
|
64
|
+
|
65
|
+
desc "Restart '#{prefix}_#{instance}'"
|
66
|
+
task :restart do
|
67
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
68
|
+
set :instance, instance
|
69
|
+
set :prefix, prefix
|
70
|
+
invoke :__stop
|
71
|
+
queue 'sleep 10'
|
72
|
+
invoke :__start
|
73
|
+
end
|
74
|
+
|
75
|
+
desc "Stop '#{prefix}_#{instance}'"
|
76
|
+
task :stop do
|
77
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
78
|
+
set :instance, instance
|
79
|
+
set :prefix, prefix
|
80
|
+
invoke :__stop
|
81
|
+
end
|
82
|
+
|
83
|
+
desc "Tail Log '#{prefix}_#{instance}'"
|
84
|
+
task :log do
|
85
|
+
set :deploy_to, "/opt/www/#{prefix}_#{instance}"
|
86
|
+
set :instance, instance
|
87
|
+
set :prefix, prefix
|
88
|
+
invoke :__log
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
task :__git_clone do
|
94
|
+
queue %{
|
95
|
+
echo "-----> Cloning the Git repository"
|
96
|
+
#{echo_cmd %[git clone "#{repository!}" .]}
|
97
|
+
}
|
98
|
+
|
99
|
+
if revision != 'master'
|
100
|
+
queue %{
|
101
|
+
echo "-----> Using revision #{revision}" &&
|
102
|
+
#{echo_cmd %[git checkout "#{revision}"]}
|
103
|
+
}
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
task :__start do
|
108
|
+
queue %{
|
109
|
+
cd #{deploy_to}/current && bundle exec unicorn_rails -c /opt/unicorn-conf/#{prefix}_#{instance}.rb -E production -D &&
|
110
|
+
echo "-----> #{instance} Started"
|
111
|
+
}
|
112
|
+
end
|
113
|
+
|
114
|
+
task :__stop do
|
115
|
+
queue %{
|
116
|
+
kill -QUIT `cat /opt/unicorn-pids/#{prefix}_#{instance}.pid`; true
|
117
|
+
echo "-----> #{instance} Stopped"
|
118
|
+
}
|
119
|
+
end
|
120
|
+
|
121
|
+
task :__log do
|
122
|
+
queue %{
|
123
|
+
cd #{deploy_to}/current && tail -400 log/production.log
|
124
|
+
}
|
125
|
+
end
|
data/lib/mina-ext/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mina-ext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -35,6 +35,7 @@ extensions: []
|
|
35
35
|
extra_rdoc_files: []
|
36
36
|
files:
|
37
37
|
- .gitignore
|
38
|
+
- CHANGELOG.md
|
38
39
|
- Gemfile
|
39
40
|
- LICENSE
|
40
41
|
- README.md
|