mina-multistage 0.1.1 → 1.0.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 +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
|