shiplane 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: []