mina-multistage 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.
- checksums.yaml +7 -0
- data/README.md +49 -46
- data/lib/mina/multistage.rb +11 -15
- data/lib/mina/multistage/version.rb +1 -1
- metadata +24 -38
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 343b8b5a53ba6cd81bfe47a9bb4be30bfde7fc92
|
4
|
+
data.tar.gz: 70a80e05557ad23bda60b529c150f744f4b2e7d9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 39c9ddbc1c5f5d4524ddad7199164c438477a9479af47ec630ac6759c7a36aca5d784f9050e1c09b80f961fbdd9b51da4c556c1887cc4958c732a3bb6366c5a5
|
7
|
+
data.tar.gz: bae67d0c2dae04bd5621b5df59ff6dc65d029a151cf047ace4212700df554e291681e46bd3bf3d62baf325eb46df7dcee8c40cd20371375994594911f6c05679
|
data/README.md
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
+
[](http://badge.fury.io/rb/mina-multistage) [](https://waffle.io/Endoze/mina-multistage)
|
2
|
+
|
3
|
+
|
1
4
|
# Mina::Multistage
|
2
5
|
|
3
6
|
Plugin for Mina that adds support for multiple stages.
|
4
7
|
|
5
|
-
|
8
|
+
|
9
|
+
## Installation & Usage
|
6
10
|
|
7
11
|
Add this line to your application's Gemfile:
|
8
12
|
|
9
13
|
```rb
|
10
|
-
gem 'mina-multistage',
|
14
|
+
gem 'mina-multistage', require: false
|
11
15
|
```
|
12
16
|
|
13
17
|
And then execute:
|
@@ -22,67 +26,66 @@ Or install it yourself as:
|
|
22
26
|
$ gem install mina-multistage
|
23
27
|
```
|
24
28
|
|
25
|
-
|
29
|
+
Require `mina/multistage` in `config/deploy.rb`:
|
26
30
|
|
27
31
|
```rb
|
28
32
|
require 'mina/multistage'
|
33
|
+
require 'mina/bundler'
|
34
|
+
require 'mina/rails'
|
35
|
+
require 'mina/git'
|
36
|
+
|
37
|
+
...
|
38
|
+
|
39
|
+
task setup: :environment do
|
40
|
+
...
|
41
|
+
end
|
42
|
+
|
43
|
+
desc 'Deploys the current version to the server.'
|
44
|
+
task deploy: :environment do
|
45
|
+
...
|
46
|
+
end
|
29
47
|
```
|
30
48
|
|
31
|
-
|
49
|
+
Then run:
|
32
50
|
|
33
|
-
|
51
|
+
```shell
|
52
|
+
$ mina multistage:init
|
53
|
+
```
|
34
54
|
|
55
|
+
It will create `config/deploy/staging.rb` and `config/deploy/production.rb` stage files.
|
56
|
+
Use them to define stage-specific configuration.
|
35
57
|
|
36
58
|
```rb
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
59
|
+
# config/deploy/staging.rb
|
60
|
+
set :domain, 'example.com'
|
61
|
+
set :deploy_to, '/var/www/my_app'
|
62
|
+
set :repository, 'https://github.com/user/repo'
|
63
|
+
set :branch, 'master'
|
64
|
+
set :user, 'www'
|
65
|
+
set :rails_env, 'staging'
|
66
|
+
```
|
42
67
|
|
43
|
-
|
68
|
+
Now deploy `staging` with:
|
44
69
|
|
45
|
-
|
46
|
-
|
47
|
-
|
70
|
+
```shell
|
71
|
+
$ mina deploy
|
72
|
+
```
|
48
73
|
|
49
|
-
|
50
|
-
queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/config"]
|
74
|
+
Or specify a stage explicitly:
|
51
75
|
|
52
|
-
|
53
|
-
|
76
|
+
```shell
|
77
|
+
$ mina staging deploy
|
78
|
+
$ mina production deploy
|
79
|
+
```
|
54
80
|
|
55
|
-
queue! %[mkdir -p "#{deploy_to}/shared/pid/pids"]
|
56
|
-
queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/pid/pids"]
|
57
81
|
|
58
|
-
|
59
|
-
queue %[#-----> Be sure to edit 'shared/config/database.yml'.]
|
60
|
-
end
|
82
|
+
## Configuration
|
61
83
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
invoke :'git:clone'
|
66
|
-
invoke :'deploy:link_shared_paths'
|
67
|
-
invoke :'bundle:install'
|
68
|
-
invoke :'rails:db_migrate'
|
69
|
-
invoke :'rails:assets_precompile'
|
70
|
-
|
71
|
-
to :launch do
|
72
|
-
queue "bundle exec thin restart -C #{deploy_to}/shared/config/thin.yml"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
```
|
84
|
+
* `stages` - array of stages names, default is names of all `*.rb` files from `stages_dir`
|
85
|
+
* `stages_dir` - stages files directory, default is `config/deploy`
|
86
|
+
* `default_stage` - default stage, default is `staging`
|
77
87
|
|
78
|
-
|
79
|
-
```rb
|
80
|
-
set :domain, 'localhost'
|
81
|
-
set :deploy_to, '/var/www/my_app'
|
82
|
-
set :repository, 'https://github.com/gitlabhq/gitlabhq'
|
83
|
-
set :branch, '6-1-stable'
|
84
|
-
set :user, 'deploy'
|
85
|
-
```
|
88
|
+
If you want to override default values of these options, they should be set before requiring `mina/multistage` file.
|
86
89
|
|
87
90
|
## Contributing
|
88
91
|
|
data/lib/mina/multistage.rb
CHANGED
@@ -1,35 +1,30 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
|
-
|
3
|
+
default_stage = fetch(:default_stage, 'staging')
|
4
|
+
location = fetch(:stages_dir, 'config/deploy')
|
4
5
|
|
5
6
|
unless exists?(:stages)
|
6
|
-
set :stages, Dir["#{location}/*.rb"].map { |f| File.basename(f,
|
7
|
+
set :stages, Dir["#{location}/*.rb"].map { |f| File.basename(f, '.rb') }
|
7
8
|
end
|
8
9
|
|
9
10
|
stages.each do |name|
|
10
11
|
desc "Set the target stage to `#{name}'."
|
11
12
|
task(name) do
|
12
|
-
set :stage, name
|
13
|
-
|
13
|
+
set :stage, name
|
14
14
|
file = "#{location}/#{stage}.rb"
|
15
15
|
load file
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
invoke :development
|
22
|
-
else
|
23
|
-
invoke stages.first
|
24
|
-
end
|
19
|
+
unless stages.include?(ARGV.first)
|
20
|
+
invoke default_stage
|
25
21
|
end
|
26
22
|
|
27
23
|
namespace :multistage do
|
28
|
-
desc
|
29
|
-
task :
|
30
|
-
Dir.
|
31
|
-
|
32
|
-
%w{ development staging production }.each do |stage|
|
24
|
+
desc 'Create staging and production stage files'
|
25
|
+
task :init do
|
26
|
+
Dir.mkdir_p location if !File.exists? location
|
27
|
+
%w{staging production}.each do |stage|
|
33
28
|
stagefile = File.join(location, "#{stage}.rb")
|
34
29
|
if !File.exists?(stagefile)
|
35
30
|
File.open(stagefile, 'w') do |f|
|
@@ -38,6 +33,7 @@ namespace :multistage do
|
|
38
33
|
f.puts "set :repository, ''"
|
39
34
|
f.puts "set :branch, ''"
|
40
35
|
f.puts "set :user, ''"
|
36
|
+
f.puts "set :rails_env, '#{stage}'"
|
41
37
|
end
|
42
38
|
end
|
43
39
|
end
|
metadata
CHANGED
@@ -1,64 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mina-multistage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Chris
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-07-04 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
version_requirements: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - '>='
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: 0.2.1
|
19
|
+
prerelease: false
|
15
20
|
name: mina
|
16
21
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
22
|
requirements:
|
19
|
-
- -
|
23
|
+
- - '>='
|
20
24
|
- !ruby/object:Gem::Version
|
21
25
|
version: 0.2.1
|
22
26
|
type: :runtime
|
23
|
-
|
27
|
+
- !ruby/object:Gem::Dependency
|
24
28
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
29
|
requirements:
|
27
|
-
- -
|
30
|
+
- - '>='
|
28
31
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
30
|
-
|
32
|
+
version: 1.3.5
|
33
|
+
prerelease: false
|
31
34
|
name: bundler
|
32
35
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
36
|
requirements:
|
35
|
-
- -
|
37
|
+
- - '>='
|
36
38
|
- !ruby/object:Gem::Version
|
37
39
|
version: 1.3.5
|
38
40
|
type: :development
|
39
|
-
|
41
|
+
- !ruby/object:Gem::Dependency
|
40
42
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
43
|
requirements:
|
43
|
-
- -
|
44
|
+
- - '>='
|
44
45
|
- !ruby/object:Gem::Version
|
45
|
-
version:
|
46
|
-
|
46
|
+
version: '0'
|
47
|
+
prerelease: false
|
47
48
|
name: rake
|
48
49
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
type: :development
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ! '>='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
55
|
description: Adds multistage capabilities to Mina
|
63
56
|
email:
|
64
57
|
- Chris@WideEyeLabs.com
|
@@ -77,32 +70,25 @@ files:
|
|
77
70
|
homepage: ''
|
78
71
|
licenses:
|
79
72
|
- MIT
|
73
|
+
metadata: {}
|
80
74
|
post_install_message:
|
81
75
|
rdoc_options: []
|
82
76
|
require_paths:
|
83
77
|
- lib
|
84
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
-
none: false
|
86
79
|
requirements:
|
87
|
-
- -
|
80
|
+
- - '>='
|
88
81
|
- !ruby/object:Gem::Version
|
89
82
|
version: '0'
|
90
|
-
segments:
|
91
|
-
- 0
|
92
|
-
hash: -3037949548670809400
|
93
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
|
-
none: false
|
95
84
|
requirements:
|
96
|
-
- -
|
85
|
+
- - '>='
|
97
86
|
- !ruby/object:Gem::Version
|
98
87
|
version: '0'
|
99
|
-
segments:
|
100
|
-
- 0
|
101
|
-
hash: -3037949548670809400
|
102
88
|
requirements: []
|
103
89
|
rubyforge_project:
|
104
|
-
rubygems_version:
|
90
|
+
rubygems_version: 2.2.1
|
105
91
|
signing_key:
|
106
|
-
specification_version:
|
92
|
+
specification_version: 4
|
107
93
|
summary: Adds multistage capabilities to Mina
|
108
94
|
test_files: []
|