mina-multistage 0.1.1 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +44 -10
- data/lib/mina/multistage.rb +11 -4
- data/lib/mina/multistage/version.rb +1 -1
- data/mina_multistage.gemspec +1 -1
- metadata +19 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8980adf43c9d6808c017527a35559999b022fc0c
|
4
|
+
data.tar.gz: 8748a2af82cf2b6468ab387777a340a90ba6ab10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dfcc430b2f564ecc9229d27dbee71a89f0d77ccc3529812a3fc0b3e86699a29e2798783d60b50b3cbf7513ed512add357547b8c9106d57b35701f48c5b68fe35
|
7
|
+
data.tar.gz: 520e50d0819fc8c7ae7edd2085e706e75057955e91692e66cdf142c1c35ddeb967743f44d20285cbbd132db0774797e1309a3cceed02ad0b770ae7057c2c1716
|
data/README.md
CHANGED
@@ -26,7 +26,7 @@ Or install it yourself as:
|
|
26
26
|
$ gem install mina-multistage
|
27
27
|
```
|
28
28
|
|
29
|
-
Require `mina/multistage` in `config/deploy.rb`:
|
29
|
+
Require `mina/multistage` in your `config/deploy.rb`:
|
30
30
|
|
31
31
|
```rb
|
32
32
|
require 'mina/multistage'
|
@@ -49,11 +49,20 @@ end
|
|
49
49
|
Then run:
|
50
50
|
|
51
51
|
```shell
|
52
|
-
$ mina multistage:init
|
52
|
+
$ bundle exec mina multistage:init
|
53
53
|
```
|
54
54
|
|
55
|
-
|
56
|
-
Use them to define stage
|
55
|
+
This will create `config/deploy/staging.rb` and `config/deploy/production.rb` stage files.
|
56
|
+
Use them to define stage specific configuration.
|
57
|
+
|
58
|
+
If you receive the following error, make sure that you've required 'mina/multistage' in
|
59
|
+
your `config/deploy.rb`
|
60
|
+
|
61
|
+
```shell
|
62
|
+
$ bundle exec mina multistage:init
|
63
|
+
mina aborted!
|
64
|
+
Don't know how to build task 'multistage:init'
|
65
|
+
```
|
57
66
|
|
58
67
|
```rb
|
59
68
|
# config/deploy/staging.rb
|
@@ -65,10 +74,10 @@ set :user, 'www'
|
|
65
74
|
set :rails_env, 'staging'
|
66
75
|
```
|
67
76
|
|
68
|
-
Now deploy
|
77
|
+
Now you can deploy the default stage with:
|
69
78
|
|
70
79
|
```shell
|
71
|
-
$ mina deploy
|
80
|
+
$ mina deploy # this deploys staging by default
|
72
81
|
```
|
73
82
|
|
74
83
|
Or specify a stage explicitly:
|
@@ -81,11 +90,36 @@ $ mina production deploy
|
|
81
90
|
|
82
91
|
## Configuration
|
83
92
|
|
84
|
-
* `stages` - array of stages names, default is
|
85
|
-
* `stages_dir` - stages files directory, default is `config/deploy`
|
86
|
-
* `default_stage` - default stage, default is `staging`
|
93
|
+
* `stages` - array of stages names, the default is the name of all `*.rb` files from `stages_dir`
|
94
|
+
* `stages_dir` - stages files directory, the default is `config/deploy`
|
95
|
+
* `default_stage` - default stage, the default is `staging`
|
96
|
+
|
97
|
+
If you want to override the default values for any of these options, they should be set before requiring `mina/multistage`.
|
98
|
+
|
99
|
+
```rb
|
100
|
+
# config/deploy.rb
|
101
|
+
|
102
|
+
set stages, %w(development test staging production)
|
103
|
+
set stages_dir, 'config/deploy_stages'
|
104
|
+
set default_stage, 'development'
|
105
|
+
|
106
|
+
require 'mina/multistage'
|
107
|
+
require 'mina/bundler'
|
108
|
+
require 'mina/rails'
|
109
|
+
require 'mina/git'
|
110
|
+
|
111
|
+
...
|
112
|
+
|
113
|
+
task setup: :environment do
|
114
|
+
...
|
115
|
+
end
|
116
|
+
|
117
|
+
desc 'Deploys the current version to the server.'
|
118
|
+
task deploy: :environment do
|
119
|
+
...
|
120
|
+
end
|
121
|
+
```
|
87
122
|
|
88
|
-
If you want to override default values of these options, they should be set before requiring `mina/multistage` file.
|
89
123
|
|
90
124
|
## Contributing
|
91
125
|
|
data/lib/mina/multistage.rb
CHANGED
@@ -3,6 +3,10 @@ def _default_stage
|
|
3
3
|
fetch(:default_stage, 'staging')
|
4
4
|
end
|
5
5
|
|
6
|
+
def _default_stages
|
7
|
+
fetch(:stages, %w(staging production))
|
8
|
+
end
|
9
|
+
|
6
10
|
def _stages_dir
|
7
11
|
fetch(:stages_dir, 'config/deploy')
|
8
12
|
end
|
@@ -16,7 +20,7 @@ def _file_for_stage(stage_name)
|
|
16
20
|
end
|
17
21
|
|
18
22
|
def _stage_file_exists?(stage_name)
|
19
|
-
File.exists?(_file_for_stage(stage_name))
|
23
|
+
File.exists?(File.expand_path(_file_for_stage(stage_name)))
|
20
24
|
end
|
21
25
|
|
22
26
|
def _get_all_stages
|
@@ -41,12 +45,13 @@ end
|
|
41
45
|
invoke _default_stage if _stage_file_exists?(_default_stage) && !_argument_included_in_stages?(ARGV.first)
|
42
46
|
|
43
47
|
namespace :multistage do
|
44
|
-
desc 'Create
|
48
|
+
desc 'Create stage files'
|
45
49
|
task :init do
|
46
50
|
FileUtils.mkdir_p _stages_dir if !File.exists? _stages_dir
|
47
|
-
|
51
|
+
_default_stages.each do |stage|
|
48
52
|
stagefile = _file_for_stage(stage)
|
49
|
-
if !_stage_file_exists?(
|
53
|
+
if !_stage_file_exists?(stage)
|
54
|
+
puts "Creating #{stagefile}"
|
50
55
|
File.open(stagefile, 'w') do |f|
|
51
56
|
f.puts "set :domain, ''"
|
52
57
|
f.puts "set :deploy_to, ''"
|
@@ -54,6 +59,8 @@ namespace :multistage do
|
|
54
59
|
f.puts "set :branch, ''"
|
55
60
|
f.puts "set :user, ''"
|
56
61
|
end
|
62
|
+
else
|
63
|
+
puts "Skipping #{stagefile}, it already exists"
|
57
64
|
end
|
58
65
|
end
|
59
66
|
end
|
data/mina_multistage.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["Chris@WideEyeLabs.com"]
|
11
11
|
spec.description = %q{Adds multistage capabilities to Mina}
|
12
12
|
spec.summary = %q{Adds multistage capabilities to Mina}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "http://endoze.github.io/mina-multistage/"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mina-multistage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
+
name: mina
|
14
15
|
requirement: !ruby/object:Gem::Requirement
|
15
16
|
requirements:
|
16
|
-
- -
|
17
|
+
- - ">="
|
17
18
|
- !ruby/object:Gem::Version
|
18
19
|
version: 0.2.1
|
20
|
+
type: :runtime
|
19
21
|
prerelease: false
|
20
|
-
name: mina
|
21
22
|
version_requirements: !ruby/object:Gem::Requirement
|
22
23
|
requirements:
|
23
|
-
- -
|
24
|
+
- - ">="
|
24
25
|
- !ruby/object:Gem::Version
|
25
26
|
version: 0.2.1
|
26
|
-
type: :runtime
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
28
29
|
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ">="
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 1.3.5
|
34
|
+
type: :development
|
33
35
|
prerelease: false
|
34
|
-
name: bundler
|
35
36
|
version_requirements: !ruby/object:Gem::Requirement
|
36
37
|
requirements:
|
37
|
-
- -
|
38
|
+
- - ">="
|
38
39
|
- !ruby/object:Gem::Version
|
39
40
|
version: 1.3.5
|
40
|
-
type: :development
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
42
43
|
requirement: !ruby/object:Gem::Requirement
|
43
44
|
requirements:
|
44
|
-
- -
|
45
|
+
- - ">="
|
45
46
|
- !ruby/object:Gem::Version
|
46
47
|
version: '0'
|
48
|
+
type: :development
|
47
49
|
prerelease: false
|
48
|
-
name: rake
|
49
50
|
version_requirements: !ruby/object:Gem::Requirement
|
50
51
|
requirements:
|
51
|
-
- -
|
52
|
+
- - ">="
|
52
53
|
- !ruby/object:Gem::Version
|
53
54
|
version: '0'
|
54
|
-
type: :development
|
55
55
|
description: Adds multistage capabilities to Mina
|
56
56
|
email:
|
57
57
|
- Chris@WideEyeLabs.com
|
@@ -59,7 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- .gitignore
|
62
|
+
- ".gitignore"
|
63
63
|
- Gemfile
|
64
64
|
- LICENSE.txt
|
65
65
|
- README.md
|
@@ -67,7 +67,7 @@ files:
|
|
67
67
|
- lib/mina/multistage.rb
|
68
68
|
- lib/mina/multistage/version.rb
|
69
69
|
- mina_multistage.gemspec
|
70
|
-
homepage:
|
70
|
+
homepage: http://endoze.github.io/mina-multistage/
|
71
71
|
licenses:
|
72
72
|
- MIT
|
73
73
|
metadata: {}
|
@@ -77,17 +77,17 @@ require_paths:
|
|
77
77
|
- lib
|
78
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
89
|
rubyforge_project:
|
90
|
-
rubygems_version: 2.
|
90
|
+
rubygems_version: 2.4.5
|
91
91
|
signing_key:
|
92
92
|
specification_version: 4
|
93
93
|
summary: Adds multistage capabilities to Mina
|