app_builder-rails 0.1.4 → 0.2.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +34 -0
- data/Gemfile +1 -1
- data/README.md +30 -9
- data/Rakefile +1 -1
- data/app_builder-rails.gemspec +7 -6
- data/lib/app_builder/rails/version.rb +1 -1
- data/lib/generators/app_builder/install/templates/deploy.rake +22 -25
- data/lib/generators/app_builder/install/templates/deploy_s3.rake +17 -20
- data/lib/generators/app_builder/install/templates/environment.yml +6 -6
- data/lib/generators/app_builder/install/templates/environment_s3.yml +3 -3
- data/lib/generators/app_builder/install/templates/manifest.yml.erb +2 -0
- metadata +45 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c316150a306a4022e81a316c49837269d86e0b4389580174b6b197a2ce046d72
|
4
|
+
data.tar.gz: 620a06b0c9534fc51d9f4b35c0390bff662f47d47685329c3951c2331166f784
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a5bfd4ed4dd276328006cf304bc8b31cb813f8ee6fc2e65e363a4d56cd628879624272a57b47f08850ec9ab3f90857438e37dabb92c3f671db502e7ae62d663
|
7
|
+
data.tar.gz: b191de9fdc2aaaa71b31118b5c26558d9697e77d8c0b4ddaa094f0e16686973738c838e499b308db19e46c82429534a782dfdd0e8a75d86a423a93e9dd6d580f
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
Style/StringLiterals:
|
2
|
+
EnforcedStyle: double_quotes
|
3
|
+
|
4
|
+
Style/StringLiteralsInInterpolation:
|
5
|
+
EnforcedStyle: double_quotes
|
6
|
+
|
7
|
+
Style/Documentation:
|
8
|
+
Enabled: false
|
9
|
+
|
10
|
+
Style/BlockDelimiters:
|
11
|
+
Enabled: false
|
12
|
+
|
13
|
+
Style/MultilineBlockChain:
|
14
|
+
Enabled: false
|
15
|
+
|
16
|
+
Style/ClassAndModuleChildren:
|
17
|
+
Enabled: false
|
18
|
+
|
19
|
+
Layout/IndentationConsistency:
|
20
|
+
Enabled: true
|
21
|
+
EnforcedStyle: rails
|
22
|
+
|
23
|
+
Metrics/AbcSize:
|
24
|
+
Max: 20
|
25
|
+
|
26
|
+
Metrics/BlockLength:
|
27
|
+
Exclude:
|
28
|
+
- "**/*.rake"
|
29
|
+
|
30
|
+
Metrics/MethodLength:
|
31
|
+
Max: 20
|
32
|
+
|
33
|
+
Metrics/LineLength:
|
34
|
+
Max: 120
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,28 +1,49 @@
|
|
1
1
|
# AppBuilder::Rails
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
3
|
+
Generate application to be deployed and upload to s3 (or deploy server).
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
|
9
7
|
Add this line to your application's Gemfile:
|
10
8
|
|
11
9
|
```ruby
|
12
|
-
gem
|
10
|
+
gem "app_builder-rails"
|
13
11
|
```
|
14
12
|
|
15
13
|
And then execute:
|
16
14
|
|
17
|
-
|
15
|
+
```
|
16
|
+
$ bundle install
|
17
|
+
$ bundle exec rails generate app_builder:install
|
18
|
+
```
|
18
19
|
|
19
|
-
|
20
|
+
Adds following files:
|
20
21
|
|
21
|
-
|
22
|
+
- `config/deploy/environment.yml`
|
23
|
+
- `config/deploy/templates/manifest.yml.erb`
|
24
|
+
- `lib/tasks/deploy.rake`
|
22
25
|
|
23
26
|
## Usage
|
24
27
|
|
25
|
-
|
28
|
+
Build source and upload to S3:
|
29
|
+
|
30
|
+
```
|
31
|
+
$ APP_ENV=develop TARGET_BRANCH=develop bundle exec rails deploy:prepare
|
32
|
+
INFO 2018-01-01 12:00:00.000000 9999 Execute command [local]: mkdir -p /var/tmp/project /var/tmp/project/archive/20180101120000 /var/tmp/project/build/20180101120000
|
33
|
+
INFO 2018-01-01 12:00:00.000000 9999 Execute command [local]: git remote update (with: {:chdir=>"/var/tmp/project/repo"})
|
34
|
+
INFO 2018-01-01 12:00:00.000000 9999 Execute command [local]: git archive develop | tar -x -C /var/tmp/project/archive/20180101120000 (with: {:chdir=>"/var/tmp/project/repo"})
|
35
|
+
INFO 2018-01-01 12:00:00.000000 9999 Create revision: {"branch"=>"develop", "revision"=>"0123456789abcdef0123456789abcdef0123456"}
|
36
|
+
INFO 2018-01-01 12:00:00.000000 9999 Execute command [local]: tar zcf /var/tmp/project/build/20180101120000/20180101120000.tar.gz . (with: {:chdir=>"/var/tmp/project/archive/20180101120000"})
|
37
|
+
INFO 2018-01-01 12:00:00.000000 9999 Uploaded /var/tmp/project/build/20180101120000/20180101120000.tar.gz to s3://dev-source-example-com/assets/20180101120000.tar.gz
|
38
|
+
INFO 2018-01-01 12:00:00.000000 9999 Uploaded /var/tmp/project/build/20180101120000/20180101120000.yml to s3://dev-source-example-com/manifests/20180101120000.yml
|
39
|
+
```
|
40
|
+
|
41
|
+
And then deploy with stretcher in target server:
|
42
|
+
|
43
|
+
```
|
44
|
+
$ ssh target-server
|
45
|
+
$ echo s3://dev-source-example-com/manifests/20180101120000.yml | stretcher
|
46
|
+
```
|
26
47
|
|
27
48
|
## Development
|
28
49
|
|
@@ -32,7 +53,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
|
|
32
53
|
|
33
54
|
## Contributing
|
34
55
|
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
56
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/i2bskn/app_builder-rails.
|
36
57
|
|
37
58
|
## License
|
38
59
|
|
data/Rakefile
CHANGED
data/app_builder-rails.gemspec
CHANGED
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
1
|
+
lib = File.expand_path("lib", __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require "app_builder/rails/version"
|
5
4
|
|
@@ -9,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
9
8
|
spec.authors = ["i2bskn"]
|
10
9
|
spec.email = ["i2bskn@gmail.com"]
|
11
10
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
11
|
+
spec.summary = "Generate application to be deployed and upload to s3 (or deploy server)."
|
12
|
+
spec.description = "Generate application to be deployed and upload to s3 (or deploy server)."
|
14
13
|
spec.homepage = "https://github.com/i2bskn/app_builder-rails"
|
15
14
|
spec.license = "MIT"
|
16
15
|
|
@@ -21,11 +20,13 @@ Gem::Specification.new do |spec|
|
|
21
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
21
|
spec.require_paths = ["lib"]
|
23
22
|
|
24
|
-
spec.add_dependency "app_builder"
|
23
|
+
spec.add_dependency "app_builder", "0.2.9"
|
25
24
|
spec.add_dependency "railties"
|
25
|
+
spec.add_dependency "vars", "0.0.4"
|
26
26
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1.16"
|
28
|
-
spec.add_development_dependency "rake", "~> 10.0"
|
29
28
|
spec.add_development_dependency "minitest", "~> 5.0"
|
30
29
|
spec.add_development_dependency "pry"
|
30
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
31
|
+
spec.add_development_dependency "rubocop"
|
31
32
|
end
|
@@ -1,39 +1,36 @@
|
|
1
1
|
namespace :deploy do
|
2
|
-
def
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
)
|
2
|
+
def deploy_params(env)
|
3
|
+
{
|
4
|
+
resource_type: env.resource_type,
|
5
|
+
upload_id: env.upload_id,
|
6
|
+
remote_app_home_base: env.remote_app_home_base,
|
7
|
+
resource_host: env.resource_host,
|
8
|
+
resource_user: env.resource_user,
|
9
|
+
resource_ssh_options: env.resource_ssh_options.symbolize_keys,
|
10
|
+
resource_document_root: env.resource_document_root
|
11
|
+
}
|
12
|
+
end
|
13
|
+
|
14
|
+
def deploy_config
|
15
|
+
env = Vars.new(path: "config/deploy/environment.yml", source_type: :git)
|
16
|
+
config = AppBuilder::Config.new(**deploy_params(env))
|
17
17
|
|
18
|
-
env = AppBuilder::Environment.new(
|
19
|
-
env_name,
|
20
|
-
File.join(config.archive_path, "config", "deploy", "environment.yml"),
|
21
|
-
)
|
22
18
|
config.manifest_template_path = File.join(config.archive_path, "config", "deploy", "templates", "manifest.yml.erb")
|
23
19
|
config.after_archive = [
|
24
20
|
proc {
|
25
|
-
env.
|
26
|
-
File.join(config.archive_path, "config", "deploy", "templates"
|
27
|
-
File.join(config.archive_path, "config"
|
21
|
+
env.resolve_templates(
|
22
|
+
File.join(config.archive_path, "config", "deploy", "templates"),
|
23
|
+
File.join(config.archive_path, "config"),
|
24
|
+
excludes: ["manifest.yml"]
|
28
25
|
)
|
29
|
-
}
|
26
|
+
}
|
30
27
|
]
|
31
28
|
|
32
29
|
config
|
33
30
|
end
|
34
31
|
|
35
32
|
desc "Upload builded source and stretcher manifest file."
|
36
|
-
task :
|
37
|
-
AppBuilder::Uploader.upload(
|
33
|
+
task :prepare do
|
34
|
+
AppBuilder::Uploader.upload(deploy_config)
|
38
35
|
end
|
39
36
|
end
|
@@ -1,34 +1,31 @@
|
|
1
1
|
namespace :deploy do
|
2
|
-
def
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
)
|
2
|
+
def deploy_params(env)
|
3
|
+
{
|
4
|
+
upload_id: env.upload_id,
|
5
|
+
remote_app_home_base: env.remote_app_home_base
|
6
|
+
}
|
7
|
+
end
|
8
|
+
|
9
|
+
def deploy_config
|
10
|
+
env = Vars.new(path: "config/deploy/environment.yml", source_type: :git)
|
11
|
+
config = AppBuilder::Config.new(**deploy_params(env))
|
12
12
|
|
13
|
-
env = AppBuilder::Environment.new(
|
14
|
-
env_name,
|
15
|
-
File.join(config.archive_path, "config", "deploy", "environment.yml"),
|
16
|
-
)
|
17
13
|
config.manifest_template_path = File.join(config.archive_path, "config", "deploy", "templates", "manifest.yml.erb")
|
18
14
|
config.after_archive = [
|
19
15
|
proc {
|
20
|
-
env.
|
21
|
-
File.join(config.archive_path, "config", "deploy", "templates"
|
22
|
-
File.join(config.archive_path, "config"
|
16
|
+
env.resolve_templates(
|
17
|
+
File.join(config.archive_path, "config", "deploy", "templates"),
|
18
|
+
File.join(config.archive_path, "config"),
|
19
|
+
excludes: ["manifest.yml"]
|
23
20
|
)
|
24
|
-
}
|
21
|
+
}
|
25
22
|
]
|
26
23
|
|
27
24
|
config
|
28
25
|
end
|
29
26
|
|
30
27
|
desc "Upload builded source and stretcher manifest file."
|
31
|
-
task :
|
32
|
-
AppBuilder::Uploader.upload(
|
28
|
+
task :prepare do
|
29
|
+
AppBuilder::Uploader.upload(deploy_config)
|
33
30
|
end
|
34
31
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
default: &default
|
2
2
|
resource_type: "http"
|
3
|
-
upload_id: "
|
4
|
-
remote_app_home_base: "/
|
5
|
-
resource_host: "
|
3
|
+
upload_id: "source.example.com"
|
4
|
+
remote_app_home_base: "/var/www"
|
5
|
+
resource_host: "source.example.com"
|
6
6
|
resource_user: "centos"
|
7
7
|
resource_ssh_options:
|
8
8
|
port: 22
|
9
9
|
keys: <%= File.expand_path("~/.ssh/id_rsa") %>
|
10
|
-
resource_document_root: "/
|
10
|
+
resource_document_root: "/var/www/source/public"
|
11
11
|
|
12
12
|
develop:
|
13
13
|
<<: *default
|
14
|
-
upload_id: "dev-
|
15
|
-
resource_host: "dev-
|
14
|
+
upload_id: "dev-source.exampl.com"
|
15
|
+
resource_host: "dev-source.example.com"
|
16
16
|
|
17
17
|
production:
|
18
18
|
<<: *default
|
@@ -1,10 +1,10 @@
|
|
1
1
|
default: &default
|
2
|
-
upload_id: "
|
3
|
-
remote_app_home_base: "/
|
2
|
+
upload_id: "source-example-com"
|
3
|
+
remote_app_home_base: "/var/www"
|
4
4
|
|
5
5
|
develop:
|
6
6
|
<<: *default
|
7
|
-
upload_id: "dev-
|
7
|
+
upload_id: "dev-source-example-com"
|
8
8
|
|
9
9
|
production:
|
10
10
|
<<: *default
|
@@ -8,12 +8,14 @@ commands:
|
|
8
8
|
- mkdir -p <%= remote_app_home %>/shared/log
|
9
9
|
- mkdir -p <%= remote_app_home %>/shared/pids
|
10
10
|
- mkdir -p <%= remote_app_home %>/shared/bundle
|
11
|
+
- mkdir -p <%= remote_app_home %>/shared/sockets
|
11
12
|
post:
|
12
13
|
- ln -nfs <%= remote_app_home %>/releases/<%= build_id %> <%= remote_app_home %>/current
|
13
14
|
- rm -rf <%= remote_app_home %>/current/log
|
14
15
|
- ln -nfs <%= remote_app_home %>/shared/log <%= remote_app_home %>/current/log
|
15
16
|
- mkdir -p <%= remote_app_home %>/current/tmp
|
16
17
|
- ln -nfs <%= remote_app_home %>/shared/pids <%= remote_app_home %>/current/tmp/pids
|
18
|
+
- ln -nfs <%= remote_app_home %>/shared/sockets <%= remote_app_home %>/current/tmp/sockets
|
17
19
|
- cd <%= remote_app_home %>/current && bundle install --deployment --without development test --path <%= remote_app_home %>/shared/bundle
|
18
20
|
- echo 'deploy done'
|
19
21
|
success:
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: app_builder-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- i2bskn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: app_builder
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.2.9
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.2.9
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: railties
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: vars
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.0.4
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.0.4
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: bundler
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,35 +67,49 @@ dependencies:
|
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '1.16'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
70
|
+
name: minitest
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
73
|
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
75
|
+
version: '5.0'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
80
|
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
82
|
+
version: '5.0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rake
|
71
99
|
requirement: !ruby/object:Gem::Requirement
|
72
100
|
requirements:
|
73
101
|
- - "~>"
|
74
102
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
103
|
+
version: '10.0'
|
76
104
|
type: :development
|
77
105
|
prerelease: false
|
78
106
|
version_requirements: !ruby/object:Gem::Requirement
|
79
107
|
requirements:
|
80
108
|
- - "~>"
|
81
109
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
110
|
+
version: '10.0'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
112
|
+
name: rubocop
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
86
114
|
requirements:
|
87
115
|
- - ">="
|
@@ -94,7 +122,7 @@ dependencies:
|
|
94
122
|
- - ">="
|
95
123
|
- !ruby/object:Gem::Version
|
96
124
|
version: '0'
|
97
|
-
description:
|
125
|
+
description: Generate application to be deployed and upload to s3 (or deploy server).
|
98
126
|
email:
|
99
127
|
- i2bskn@gmail.com
|
100
128
|
executables: []
|
@@ -102,6 +130,7 @@ extensions: []
|
|
102
130
|
extra_rdoc_files: []
|
103
131
|
files:
|
104
132
|
- ".gitignore"
|
133
|
+
- ".rubocop.yml"
|
105
134
|
- ".travis.yml"
|
106
135
|
- Gemfile
|
107
136
|
- LICENSE
|
@@ -141,8 +170,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
170
|
version: '0'
|
142
171
|
requirements: []
|
143
172
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.6
|
173
|
+
rubygems_version: 2.7.6
|
145
174
|
signing_key:
|
146
175
|
specification_version: 4
|
147
|
-
summary:
|
176
|
+
summary: Generate application to be deployed and upload to s3 (or deploy server).
|
148
177
|
test_files: []
|