shiplane 0.1.1
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 +73 -0
- data/lib/capistrano/shiplane/version.rb +5 -0
- data/lib/capistrano/shiplane.rb +6 -0
- data/lib/capistrano/tasks/capistrano_stubs.rake +122 -0
- data/lib/capistrano/tasks/shiplane.rake +16 -0
- data/lib/generators/shiplane/install/templates/Capfile.erb +13 -0
- data/lib/generators/shiplane/install/templates/deploy.rb.erb +132 -0
- data/lib/generators/shiplane/install/templates/production.rb.erb +61 -0
- data/lib/generators/shiplane/install/templates/production_dockerfile_stages.erb +44 -0
- data/lib/generators/shiplane/install/templates/shiplane.yml.erb +44 -0
- data/lib/shiplane/build.rb +101 -0
- data/lib/shiplane/checkout_artifact.rb +121 -0
- data/lib/shiplane/compose_hash.rb +38 -0
- data/lib/shiplane/configuration.rb +37 -0
- data/lib/shiplane/convert_compose_file.rb +59 -0
- data/lib/shiplane/convert_dockerfile.rb +60 -0
- data/lib/shiplane/deploy/configuration.rb +17 -0
- data/lib/shiplane/deploy/container_configuration.rb +93 -0
- data/lib/shiplane/deploy/network_configuration.rb +40 -0
- data/lib/shiplane/extensions.rb +49 -0
- data/lib/shiplane/host.rb +96 -0
- data/lib/shiplane/railtie.rb +5 -0
- data/lib/shiplane/tasks/install.rake +120 -0
- data/lib/shiplane/version.rb +5 -0
- data/lib/shiplane.rb +11 -0
- metadata +159 -0
@@ -0,0 +1,120 @@
|
|
1
|
+
namespace :shiplane do
|
2
|
+
desc "Install Shiplane"
|
3
|
+
task :install, :app_name do |t, args|
|
4
|
+
puts "Running Task: 'shiplane:install'"
|
5
|
+
Rake::Task['shiplane:capify'].invoke
|
6
|
+
Rake::Task['shiplane:generate_shiplane_folder'].invoke
|
7
|
+
Rake::Task['shiplane:generate_insert_on_build_folder'].invoke
|
8
|
+
Rake::Task['shiplane:generate_shiplane_yaml_file'].invoke(args[:app_name])
|
9
|
+
Rake::Task['shiplane:generate_production_dockerfile_stages_file'].invoke
|
10
|
+
end
|
11
|
+
|
12
|
+
task :capify do
|
13
|
+
puts "Running Task: 'shiplane:capify'"
|
14
|
+
shiplane_gems = %w(shiplane shiplane_bootstrappers_chef shiplane_deployers_capistrano_docker)
|
15
|
+
|
16
|
+
if File.exist?('Capfile')
|
17
|
+
warn "[warn] Capistrano installation detected. Check the Shiplane documentation for details on how to add shiplane to your existing Capistrano configuration"
|
18
|
+
end
|
19
|
+
|
20
|
+
Rake::Task['shiplane:generate_config_folder'].invoke
|
21
|
+
Rake::Task['shiplane:generate_capistrano_config_deploy_folder'].invoke
|
22
|
+
Rake::Task['shiplane:generate_capfile'].invoke(shiplane_gems)
|
23
|
+
Rake::Task['shiplane:generate_capistrano_deploy_file'].invoke
|
24
|
+
Rake::Task['shiplane:generate_production_environment_deploy_file'].invoke
|
25
|
+
end
|
26
|
+
|
27
|
+
task :generate_folder, :folder_path do |t, args|
|
28
|
+
puts "Running Task: 'shiplane:generate_folder'"
|
29
|
+
if Dir.exist?(args[:folder_path])
|
30
|
+
warn "[skip] #{args[:folder_path]} already exists"
|
31
|
+
else
|
32
|
+
FileUtils.mkdir_p args[:folder_path]
|
33
|
+
puts "#{args[:folder_path]} created"
|
34
|
+
end
|
35
|
+
Rake::Task['shiplane:generate_folder'].reenable
|
36
|
+
end
|
37
|
+
|
38
|
+
task :generate_file, :file_path, :file_contents do |t, args|
|
39
|
+
puts "Running Task: 'shiplane:generate_file'"
|
40
|
+
if File.exist?(args[:file_path])
|
41
|
+
warn "[skip] #{args[:file_path]} already exists"
|
42
|
+
else
|
43
|
+
File.write(args[:file_path], args[:file_contents])
|
44
|
+
puts "#{args[:file_path]} created"
|
45
|
+
end
|
46
|
+
Rake::Task['shiplane:generate_file'].reenable
|
47
|
+
end
|
48
|
+
|
49
|
+
task :generate_shiplane_folder do
|
50
|
+
puts "Running Task: 'shiplane:generate_shiplane_folder'"
|
51
|
+
Rake::Task['shiplane:generate_folder'].invoke('.shiplane')
|
52
|
+
end
|
53
|
+
|
54
|
+
task :generate_insert_on_build_folder do
|
55
|
+
puts "Running Task: 'shiplane:generate_insert_on_build_folder'"
|
56
|
+
Rake::Task['shiplane:generate_folder'].invoke('.shiplane/insert_on_build')
|
57
|
+
end
|
58
|
+
|
59
|
+
task :generate_config_folder do
|
60
|
+
puts "Running Task: 'shiplane:generate_config_folder'"
|
61
|
+
Rake::Task['shiplane:generate_folder'].invoke('config')
|
62
|
+
end
|
63
|
+
|
64
|
+
task :generate_capistrano_config_deploy_folder do
|
65
|
+
puts "Running Task: 'shiplane:generate_capistrano_config_deploy_folder'"
|
66
|
+
Rake::Task['shiplane:generate_folder'].invoke('config/deploy')
|
67
|
+
end
|
68
|
+
|
69
|
+
task :generate_shiplane_yaml_file, :app_name do |t, args|
|
70
|
+
puts "Running Task: 'shiplane:generate_shiplane_yaml_file'"
|
71
|
+
app_name = args[:app_name]
|
72
|
+
shiplane_yml_erb_filepath = File.expand_path("../../generators/shiplane/install/templates/shiplane.yml.erb", __dir__)
|
73
|
+
|
74
|
+
Rake::Task['shiplane:generate_file'].invoke(
|
75
|
+
'shiplane.yml',
|
76
|
+
ERB.new(File.read(shiplane_yml_erb_filepath), nil, '-').result(binding),
|
77
|
+
)
|
78
|
+
end
|
79
|
+
|
80
|
+
task :generate_production_dockerfile_stages_file do
|
81
|
+
puts "Running Task: 'shiplane:generate_production_dockerfile_stages_file'"
|
82
|
+
production_dockerfile_stages_template_filepath = File.expand_path("../../generators/shiplane/install/templates/production_dockerfile_stages.erb", __dir__)
|
83
|
+
|
84
|
+
Rake::Task['shiplane:generate_file'].invoke(
|
85
|
+
'.shiplane/production_dockerfile_stages',
|
86
|
+
ERB.new(File.read(production_dockerfile_stages_template_filepath), nil, '-').result,
|
87
|
+
)
|
88
|
+
end
|
89
|
+
|
90
|
+
task :generate_capfile, :gems do |t, args|
|
91
|
+
puts "Running Task: 'shiplane:generate_capfile'"
|
92
|
+
gems = args[:gems]
|
93
|
+
capfile_template_filepath = File.expand_path("../../generators/shiplane/install/templates/Capfile.erb", __dir__)
|
94
|
+
|
95
|
+
Rake::Task['shiplane:generate_file'].invoke(
|
96
|
+
'Capfile',
|
97
|
+
ERB.new(File.read(capfile_template_filepath), nil, '-').result(binding),
|
98
|
+
)
|
99
|
+
end
|
100
|
+
|
101
|
+
task :generate_capistrano_deploy_file do
|
102
|
+
puts "Running Task: 'shiplane:generate_capistrano_deploy_file'"
|
103
|
+
capistrano_deploy_template_filepath = File.expand_path("../../generators/shiplane/install/templates/deploy.rb.erb", __dir__)
|
104
|
+
|
105
|
+
Rake::Task['shiplane:generate_file'].invoke(
|
106
|
+
'config/deploy.rb',
|
107
|
+
ERB.new(File.read(capistrano_deploy_template_filepath), nil, '-').result,
|
108
|
+
)
|
109
|
+
end
|
110
|
+
|
111
|
+
task :generate_production_environment_deploy_file do
|
112
|
+
puts "Running Task: 'shiplane:generate_production_environment_deploy_file'"
|
113
|
+
production_environment_deploy_filepath = File.expand_path("../../generators/shiplane/install/templates/production.rb.erb", __dir__)
|
114
|
+
|
115
|
+
Rake::Task['shiplane:generate_file'].invoke(
|
116
|
+
'config/deploy/production.rb',
|
117
|
+
ERB.new(File.read(production_environment_deploy_filepath), nil, '-').result,
|
118
|
+
)
|
119
|
+
end
|
120
|
+
end
|
data/lib/shiplane.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'yaml'
|
2
|
+
require 'shiplane/railtie' if defined? Rails
|
3
|
+
|
4
|
+
require_relative 'shiplane/build'
|
5
|
+
|
6
|
+
module Shiplane
|
7
|
+
DEFAULT_DOCKERFILE_FILEPATH = 'Dockerfile'
|
8
|
+
DEFAULT_COMPOSEFILE_FILEPATH = 'docker-compose.yml'
|
9
|
+
DEFAULT_PRODUCTION_DOCKERFILE_STAGES_FILEPATH = 'production_dockerfile_stages'
|
10
|
+
SHIPLANE_CONFIG_FILENAME ='shiplane.yml'
|
11
|
+
end
|
metadata
ADDED
@@ -0,0 +1,159 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: shiplane
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- John Epperson
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-04-16 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: shiplane_bootstrappers_chef
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - '='
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: shiplane_deployers_capistrano_docker
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.1.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.1.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: dotenv
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.1'
|
48
|
+
- - ">="
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: 2.1.1
|
51
|
+
type: :runtime
|
52
|
+
prerelease: false
|
53
|
+
version_requirements: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '2.1'
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: 2.1.1
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: facets
|
63
|
+
requirement: !ruby/object:Gem::Requirement
|
64
|
+
requirements:
|
65
|
+
- - "~>"
|
66
|
+
- !ruby/object:Gem::Version
|
67
|
+
version: '3.1'
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 3.1.0
|
71
|
+
type: :runtime
|
72
|
+
prerelease: false
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '3.1'
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: 3.1.0
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: rake
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '12.0'
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 12.0.0
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '12.0'
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: 12.0.0
|
101
|
+
description: Converts docker-compose.yml files into images that can be uploaded to
|
102
|
+
any docker image repository.
|
103
|
+
email:
|
104
|
+
- john.epperson@rockagile.io
|
105
|
+
executables: []
|
106
|
+
extensions: []
|
107
|
+
extra_rdoc_files: []
|
108
|
+
files:
|
109
|
+
- README.md
|
110
|
+
- lib/capistrano/shiplane.rb
|
111
|
+
- lib/capistrano/shiplane/version.rb
|
112
|
+
- lib/capistrano/tasks/capistrano_stubs.rake
|
113
|
+
- lib/capistrano/tasks/shiplane.rake
|
114
|
+
- lib/generators/shiplane/install/templates/Capfile.erb
|
115
|
+
- lib/generators/shiplane/install/templates/deploy.rb.erb
|
116
|
+
- lib/generators/shiplane/install/templates/production.rb.erb
|
117
|
+
- lib/generators/shiplane/install/templates/production_dockerfile_stages.erb
|
118
|
+
- lib/generators/shiplane/install/templates/shiplane.yml.erb
|
119
|
+
- lib/shiplane.rb
|
120
|
+
- lib/shiplane/build.rb
|
121
|
+
- lib/shiplane/checkout_artifact.rb
|
122
|
+
- lib/shiplane/compose_hash.rb
|
123
|
+
- lib/shiplane/configuration.rb
|
124
|
+
- lib/shiplane/convert_compose_file.rb
|
125
|
+
- lib/shiplane/convert_dockerfile.rb
|
126
|
+
- lib/shiplane/deploy/configuration.rb
|
127
|
+
- lib/shiplane/deploy/container_configuration.rb
|
128
|
+
- lib/shiplane/deploy/network_configuration.rb
|
129
|
+
- lib/shiplane/extensions.rb
|
130
|
+
- lib/shiplane/host.rb
|
131
|
+
- lib/shiplane/railtie.rb
|
132
|
+
- lib/shiplane/tasks/install.rake
|
133
|
+
- lib/shiplane/version.rb
|
134
|
+
homepage: https://github.com/kirillian/shiplane
|
135
|
+
licenses:
|
136
|
+
- MIT
|
137
|
+
metadata: {}
|
138
|
+
post_install_message:
|
139
|
+
rdoc_options: []
|
140
|
+
require_paths:
|
141
|
+
- lib
|
142
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: 2.3.1
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
requirements: []
|
153
|
+
rubyforge_project:
|
154
|
+
rubygems_version: 2.7.7
|
155
|
+
signing_key:
|
156
|
+
specification_version: 4
|
157
|
+
summary: A toolbox for converting developer docker-compose files into production-ready
|
158
|
+
images.
|
159
|
+
test_files: []
|