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.
@@ -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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Shiplane
4
+ VERSION = "0.1.1"
5
+ 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: []