popito 0.0.1.alpha

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3e56e16a84c3bf667dab3e304d6d83581bebfcdeceeae420efb78d27af8f08f9
4
+ data.tar.gz: 1312c4cc5388d955f3c871cbedf267c6ff07d554ebe9e21555ded7957ca4334b
5
+ SHA512:
6
+ metadata.gz: f87b027418d1663b04f489cf6dcd20aa6894901c3f14d366fcc9657f5b8e6276eb8ae9fd8f648d7554a6533d1da11e7166e624117f802f4a759236c043837bf5
7
+ data.tar.gz: 51a241c5d4ac3f04572d20df75e593dcf80b5b6760769297e97e1a208854072594dd7038f720cd148a725da730b84599a69c63ca9b983512f539b6ee8fb708c3
data/.byebug_history ADDED
@@ -0,0 +1,247 @@
1
+ q
2
+ params
3
+ q
4
+ params
5
+ q
6
+ params
7
+ q
8
+ params
9
+ q
10
+ params[:token]
11
+ params
12
+ q
13
+ params
14
+ c
15
+ JSON.parse(err.response.body)["message"]
16
+ err
17
+ q
18
+ err
19
+ q
20
+ n
21
+ y
22
+ q
23
+ err.response.body
24
+ err
25
+ q
26
+ puts caller()
27
+ caller()
28
+ call()
29
+ call
30
+ err
31
+ err.class
32
+ err
33
+ err.response
34
+ JSON.parse(err.response.body)
35
+ JSON.parse(err.response.body)["message"]
36
+ err
37
+ c
38
+ JSON.parse(response.body).class
39
+ JSON.parse(response.body)
40
+ response.body
41
+ n
42
+ q
43
+ default_headers
44
+ q
45
+ headers
46
+ q
47
+ config_payload
48
+ continue
49
+ x["build"][0]["dockerfile"]
50
+ x["build"][0]["targets"]
51
+ x["build"][0]
52
+ x["build"]
53
+ x=YAML.load(File.read("#{config_payload.build_path}/build.yaml"))
54
+ x["build"]
55
+ x=YAML.load(File.read("#{config_payload.build_path}/build.yaml")).class
56
+ x
57
+ x["build"]
58
+ x=YAML.load(File.read("#{config_payload.build_path}/build.yaml")).class
59
+ x[0]
60
+ x=YAML.load(File.read("#{config_payload.build_path}/build.yaml")).class
61
+ YAML.load(File.read("#{config_payload.build_path}/build.yaml")).class
62
+ YAML.load(File.read("#{config_payload.build_path}/build.yaml"))
63
+ q
64
+ YAML.load(File.read("#{config_payload.project_path}/build.yaml"))
65
+ c
66
+ continue
67
+ z.read
68
+ x.read
69
+ z = Zlib::GzipReader.new(StringIO.new(body))
70
+ body
71
+ z = Zlib::GzipReader.new(body)
72
+ z = Zlib::GzipReader.new(body)
73
+ unzipped = StringIO.new(z.read)
74
+ body
75
+ c
76
+ q
77
+ body
78
+ c
79
+ q
80
+ body.size
81
+ body
82
+ c
83
+ q
84
+ JSON.parse(err.response.body)["code"]
85
+ JSON.parse(err.response.body)
86
+ JSON.parse(err.response.body)["codigo"]
87
+ JSON.parse(err.response.body)["codigo"] + ""
88
+ JSON.parse(err.response.body)["code"] + ""
89
+ JSON.parse(err.response.body)["message"]
90
+ TypeError.kind_of?(RuntimeError)
91
+ JSON.parse('{}')
92
+ JSON.parse({})
93
+ JSON.parse("")
94
+ JSON.parse(nil)
95
+ JSON.parse(err.response.body)["message"]
96
+ JSON.parse(err.response.body)
97
+ ::JSON.parse(err.response.body)
98
+ require 'json'
99
+ ::JSON.parse(err.response.body)
100
+ JSON.parse(err.response.body)
101
+ JSON(err.response.body)
102
+ err.response.body
103
+ err.response
104
+ c
105
+ q
106
+ response
107
+ c
108
+ q
109
+ ARGV[0]
110
+ ARGV[1]
111
+ continue
112
+ y
113
+ q
114
+ config_payload.project_path
115
+ File.expand_path(config_payload.project_path)
116
+ q
117
+ config_payload.project_path
118
+ config_payload
119
+ q
120
+ c
121
+ q
122
+ current_scope&.config.nil?
123
+ context
124
+ current_scope
125
+ q
126
+ default
127
+ context.config
128
+ context
129
+ current_scope
130
+ c
131
+ q
132
+ config_payload.get_value(key: 'RAILS_RUN_MIGRATES', default: 'false')
133
+ q
134
+ config_payload.get_value(key: 'ENVIRONMENT')
135
+ config_payload.get_value(key: :ENVIRONMENT)
136
+ config_payload.get_value(:ENVIRONMENTconfig_payload.get_value(key: :ENVIRONMENT))
137
+ config_payload.get_value(:ENVIRONMENT)
138
+ q
139
+ container[:env]
140
+ c
141
+ container[:env]
142
+ c
143
+ container[:env]
144
+ c
145
+ container[:env]
146
+ c
147
+ container[:env]
148
+ c
149
+ container[:env]
150
+ c
151
+ container[:env]
152
+ c
153
+ container[:env]
154
+ q
155
+ continue
156
+ q
157
+ container[:env]
158
+ c
159
+ container[:env]
160
+ byebug
161
+ q
162
+ container[:env]
163
+ c
164
+ container[:env]
165
+ c
166
+ container[:env]
167
+ c
168
+ container[:env]
169
+ q
170
+ continue
171
+ config_payload.context.config.ENV
172
+ config_payload.context.config.env
173
+ config_payload.context.config
174
+ container[:env][0]config_payload.context.config
175
+ container[:env]
176
+ c
177
+ container[:env]
178
+ c
179
+ container[:env]
180
+ c
181
+ container[:env]
182
+ container[:name]
183
+ container
184
+ config_payload.current_scope.config
185
+ q
186
+ config_payload.current_scope.config
187
+ config_payload.current_scope.name
188
+ config_payload.current_scope
189
+ c
190
+ config_payload.current_scope.config
191
+ c
192
+ config_payload.current_scope.config
193
+ c
194
+ config_payload.current_scope.config
195
+ c
196
+ config_payload.current_scope.config
197
+ c
198
+ config_payload.current_scope.config
199
+ c
200
+ config_payload.current_scope.config
201
+ c
202
+ config_payload.current_scope.config
203
+ c
204
+ config_payload.current_scope.config
205
+ c
206
+ config_payload.current_scope.config
207
+ q
208
+ config_payload.current_scope.config
209
+ current_context
210
+ current_scope
211
+ config_payload
212
+ container
213
+ container["type"]
214
+ container[:type]
215
+ c
216
+ container[:type]
217
+ container["config"]
218
+ c
219
+ container["config"]
220
+ c
221
+ container["config"]
222
+ c
223
+ container["config"]
224
+ c
225
+ container["config"]
226
+ c
227
+ container["config"]
228
+ q
229
+ container["config"]
230
+ c
231
+ container["config"]
232
+ c
233
+ container["config"]
234
+ c
235
+ container["config"]
236
+ container.config
237
+ container
238
+ c
239
+ container
240
+ container.config
241
+ c
242
+ container.config
243
+ c
244
+ container.config
245
+ c
246
+ container.config
247
+ container
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+ *.gem
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,20 @@
1
+ variables:
2
+ CONTAINER_IMAGE: docker-registry.baladapp.com.br/$CI_PROJECT_PATH
3
+ DOCKER_DRIVER: overlay2
4
+
5
+ build:gem:
6
+ stage: build
7
+ image: docker-registry.baladapp.com.br/docker/baladapp-ruby/mina:latest
8
+ script:
9
+ - rake build
10
+ - rake release
11
+
12
+ build:docker-image:
13
+ stage: build
14
+ image: docker:stable
15
+ script:
16
+ - TAG=v$(cat lib/popito/deployer/version.rb | grep VERSION | egrep -o '[0-9]+\.[0-9]+\.[0-9]+[\.a-z]*')
17
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN docker-registry.baladapp.com.br
18
+ - docker build -f docker/Dockerfile --tag $CONTAINER_IMAGE:latest --tag $CONTAINER_IMAGE:${TAG} .
19
+ - docker push $CONTAINER_IMAGE:latest
20
+ - docker push $CONTAINER_IMAGE:${TAG}
data/.rubocop.yml ADDED
@@ -0,0 +1,25 @@
1
+ Lint/UselessAssignment:
2
+ Exclude:
3
+ - 'lib/popito/deployer/client/archive_downloading.rb'
4
+ - 'lib/popito/deployer/client/included_files.rb'
5
+ Layout/LineLength:
6
+ Max: 130
7
+ Metrics/CyclomaticComplexity:
8
+ Max: 8
9
+ Style/FrozenStringLiteralComment:
10
+ Enabled: false
11
+ Style/StringLiterals:
12
+ Enabled: false
13
+ Style/Documentation:
14
+ Enabled: false
15
+ Metrics/AbcSize:
16
+ Max: 25
17
+ Metrics/MethodLength:
18
+ Max: 20
19
+ AllCops:
20
+ NewCops: enable
21
+ Exclude:
22
+ - 'bin/bundle'
23
+ - 'db/schema.rb'
24
+ - 'db/migrate/*'
25
+ - 'db/seeds.rb'
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in popito.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,49 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ popito (0.0.1.alpha)
5
+ deep_merge (~> 1.2)
6
+ erb (~> 2.2)
7
+ json (~> 2.5)
8
+ minitar (~> 0.9)
9
+ rest-client (~> 2.1)
10
+ yaml (~> 0.1)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ cgi (0.2.0)
16
+ deep_merge (1.2.1)
17
+ domain_name (0.5.20190701)
18
+ unf (>= 0.0.5, < 1.0.0)
19
+ erb (2.2.3)
20
+ cgi
21
+ http-accept (1.7.0)
22
+ http-cookie (1.0.4)
23
+ domain_name (~> 0.5)
24
+ json (2.5.1)
25
+ mime-types (3.3.1)
26
+ mime-types-data (~> 3.2015)
27
+ mime-types-data (3.2021.0704)
28
+ minitar (0.9)
29
+ netrc (0.11.0)
30
+ rake (13.0.3)
31
+ rest-client (2.1.0)
32
+ http-accept (>= 1.7.0, < 2.0)
33
+ http-cookie (>= 1.0.2, < 2.0)
34
+ mime-types (>= 1.16, < 4.0)
35
+ netrc (~> 0.8)
36
+ unf (0.1.4)
37
+ unf_ext
38
+ unf_ext (0.0.7.7)
39
+ yaml (0.1.1)
40
+
41
+ PLATFORMS
42
+ x86_64-darwin-20
43
+
44
+ DEPENDENCIES
45
+ popito!
46
+ rake (~> 13.0)
47
+
48
+ BUNDLED WITH
49
+ 2.2.24
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # Popito (client)
2
+ This is under development, don't use it yet.
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "bundler/gem_tasks"
data/bin/console ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require_relative '../lib/popito/deployer/deployer'
6
+
7
+ # You can add fixtures and/or initialization code here to make experimenting
8
+ # with your gem easier. You can also use a different console, if you like.
9
+
10
+ # (If you use this, don't forget to add pry to your Gemfile!)
11
+ # require "pry"
12
+ # Pry.start
13
+
14
+ require "irb"
15
+ IRB.start(__FILE__)
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
data/exe/popito ADDED
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'optparse'
5
+ require_relative '../lib/popito/deployer/deployer'
6
+
7
+ params = {}
8
+ OptionParser.new do |opts|
9
+ opts.on('--build', 'Generate docker images.')
10
+ opts.on('--release', 'Push docker images to registry (must run after or together with build).')
11
+ opts.on('--deploy', 'Run kubectl apply against deploy files.')
12
+ opts.on('--check', 'Run kubectl apply --dry-run against generated yaml files.')
13
+ opts.on('--tag IMAGE_TAG', 'This tag will used to build docker images and deploy.')
14
+ opts.on('--tag-alt IMAGE_TAG_ALT', 'This tag will used to build docker images.')
15
+ opts.on('--env ENVIRONMENT', 'It define environment used to build images and deploy files.')
16
+ opts.on('--endpoint https://popito.mydomain.com', 'It defines popito endpoint.')
17
+ opts.on('--token POPITO_TOKEN', 'This popito token used to auth this client in a specific project.')
18
+ opts.on('--path ./project_path', 'Root folder of the app.')
19
+ end.parse!(into: params)
20
+
21
+ raise ArgumentError, 'You can choose --deploy and --check together.' if params[:check] && params[:deploy]
22
+
23
+ stages = []
24
+ stages.push('build') if params[:build]
25
+ stages.push('release') if params[:release]
26
+ stages.push('check') if params[:check]
27
+ stages.push('deploy') if params[:deploy]
28
+
29
+ config_payload = Popito::ConfigPayload.new(
30
+ project_path: params[:path],
31
+ stages: stages,
32
+ project_token: params[:token],
33
+ build_config: {
34
+ IMAGE_TAG: params[:tag],
35
+ IMAGE_TAG_ALT: params[:tag_alt],
36
+ ENVIRONMENT: params[:env]
37
+ }
38
+ )
39
+
40
+ if params[:build] || params[:release]
41
+ Popito::StagePreparing.new(config_payload).create_deployer_folder(stage: 'build')
42
+ builder = Popito::BuildExecutor.new(config_payload)
43
+ builder.build if params[:build]
44
+ builder.release if params[:release]
45
+ end
46
+
47
+ if params[:check] || params[:deploy]
48
+ Popito::StagePreparing.new(config_payload).create_deployer_folder(stage: 'deploy')
49
+ deployer = Popito::DeployExecutor.new(config_payload)
50
+ deployer.check if params[:check]
51
+ deployer.deploy if params[:deploy]
52
+ end
@@ -0,0 +1,54 @@
1
+ require_relative './builders/docker'
2
+ require 'yaml'
3
+
4
+ module Popito
5
+ class BuildExecutor
6
+ attr_accessor :config_payload
7
+
8
+ def initialize(config_payload)
9
+ self.config_payload = config_payload
10
+ end
11
+
12
+ def yaml_config
13
+ @yaml_config ||= load_yaml
14
+ end
15
+
16
+ def build
17
+ yaml_config["build"].each do |build|
18
+ build["tags"].each do |tag|
19
+ builder = Popito::BuildExecutor::Builders::Docker.new(
20
+ root_path: config_payload.project_path,
21
+ dockerfile: "#{config_payload.build_path}/#{build['dockerfile']}",
22
+ image: build["image"],
23
+ tag: tag
24
+ )
25
+ builder.build
26
+ end
27
+ end
28
+ end
29
+
30
+ def release
31
+ yaml_config["build"].each do |build|
32
+ build["tags"].each do |tag|
33
+ builder = Popito::BuildExecutor::Builders::Docker.new(
34
+ root_path: config_payload.project_path,
35
+ dockerfile: "#{config_payload.build_path}/#{build['dockerfile']}",
36
+ image: build["image"],
37
+ tag: tag
38
+ )
39
+ builder.push
40
+ end
41
+ end
42
+ end
43
+
44
+ private
45
+
46
+ def camelize(value)
47
+ value.to_s.capitalize.gsub(/_(\w)/) { Regexp.last_match(1).upcase }
48
+ end
49
+
50
+ def load_yaml
51
+ YAML.safe_load(File.read("#{config_payload.build_path}/build.yaml"))
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,50 @@
1
+ require 'erb'
2
+ module Popito
3
+ class BuildExecutor
4
+ module Builders
5
+ class Docker
6
+ attr_accessor :dockerfile, :image, :tag, :root_path
7
+
8
+ def initialize(root_path:, dockerfile:, image:, tag:)
9
+ self.dockerfile = dockerfile
10
+ self.image = image
11
+ self.tag = tag
12
+ self.root_path = root_path
13
+ end
14
+
15
+ def build
16
+ puts "Building ..."
17
+ puts "Dockerfile: #{dockerfile}"
18
+ puts "Image: #{image}"
19
+ puts "Tag: #{tag}"
20
+ Dir.chdir(root_path)
21
+ docker_build
22
+ end
23
+
24
+ def push
25
+ puts "Pushing ..."
26
+ puts "Dockerfile: #{dockerfile}"
27
+ puts "Image: #{image}"
28
+ puts "Tag: #{tag}"
29
+ docker_push
30
+ end
31
+
32
+ private
33
+
34
+ def docker_push
35
+ puts "#{self.class.name}: docker push #{image_full_name}"
36
+ system "docker push #{image_full_name}", exception: true
37
+ end
38
+
39
+ def docker_build
40
+ puts "#{self.class.name}: docker build #{image_full_name}"
41
+ system "docker build -f #{dockerfile} --tag #{image_full_name} .", exception: true
42
+ end
43
+
44
+ def image_full_name
45
+ "#{image}:#{tag}"
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,15 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+ require 'minitar'
4
+ module Popito
5
+ class ArchiveDownloading < Popito::ClientBase
6
+ def download_and_extract(stage:)
7
+ payload = { stage: stage, build_config: config_payload.build_config,
8
+ included_files: config_payload.included_files_payload }
9
+ response = RestClient.post("#{API_HOST}/api/v1/archive", payload, headers = default_headers)
10
+ extract_tgz(response.body)
11
+ rescue RestClient::UnprocessableEntity => e
12
+ raise parse_error(e)
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,29 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+ require 'minitar'
4
+ module Popito
5
+ class ClientBase
6
+ API_HOST = 'http://localhost:3000'.freeze
7
+ attr_accessor :config_payload
8
+
9
+ def initialize(config_payload:)
10
+ self.config_payload = config_payload
11
+ end
12
+
13
+ private
14
+
15
+ def parse_error(err)
16
+ JSON.parse(err.response.body)["message"]
17
+ rescue StandardError
18
+ "An error has been occurred."
19
+ end
20
+
21
+ def extract_tgz(body)
22
+ Minitar.unpack(Zlib::GzipReader.new(StringIO.new(body)), config_payload.project_path)
23
+ end
24
+
25
+ def default_headers
26
+ { 'X-Client-Version': Popito::VERSION, 'X-Project-Token': config_payload.project_token }
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,13 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+ require 'minitar'
4
+ module Popito
5
+ class IncludedFiles < Popito::ClientBase
6
+ def included_files_list
7
+ response = RestClient.get("#{API_HOST}/api/v1/included-files", headers = default_headers)
8
+ JSON.parse(response.body)
9
+ rescue RestClient::UnprocessableEntity => e
10
+ raise parse_error(e)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ require 'base64'
2
+ module Popito
3
+ class ConfigPayload
4
+ attr_accessor :project_path, :build_path, :deploy_path, :stages, :build_config, :project_token, :included_files
5
+
6
+ def initialize(project_path:, project_token:, stages: [], build_config: {}, included_files: [])
7
+ self.project_path = File.expand_path(project_path)
8
+ self.build_path = File.expand_path("#{project_path}/#{Popito::BUILD_DIR_NAME}")
9
+ self.deploy_path = File.expand_path("#{project_path}/#{Popito::DEPLOY_DIR_NAME}")
10
+ self.stages = stages
11
+ self.project_token = project_token
12
+ self.build_config = build_config
13
+ self.included_files = included_files
14
+ end
15
+
16
+ def included_files_payload
17
+ included_files.map do |file|
18
+ { encoding: 'base64', path: file, content: Base64.encode64(File.read("#{project_path}/#{file}")) }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ module Popito
2
+ class DeployExecutor
3
+ attr_accessor :config_payload
4
+
5
+ def initialize(config_payload)
6
+ self.config_payload = config_payload
7
+ @deploy_files_dir = "#{config_payload.deploy_path}/deploy"
8
+ end
9
+
10
+ def check
11
+ puts 'Validating generated files...'
12
+ system "kubectl apply --validate=true --dry-run=client -f #{@deploy_files_dir}", exception: true
13
+ end
14
+
15
+ def deploy
16
+ puts 'Applying generated files...'
17
+ system "kubectl apply -f #{@deploy_files_dir}", exception: true
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Popito
4
+ BUILD_DIR_NAME = '_popito/build'
5
+ DEPLOY_DIR_NAME = '_popito/deploy'
6
+ end
7
+
8
+ require_relative "version"
9
+ require_relative 'config/config_payload'
10
+ require_relative 'client/client_base'
11
+ require_relative 'client/included_files'
12
+ require_relative 'client/archive_downloading'
13
+ require_relative 'stage/stage_preparing'
14
+ require_relative 'build/build_executor'
15
+ require_relative 'deploy/deploy_executor'
@@ -0,0 +1,27 @@
1
+ require 'fileutils'
2
+
3
+ module Popito
4
+ class StagePreparing
5
+ attr_accessor :config_payload
6
+
7
+ def initialize(config_payload)
8
+ self.config_payload = config_payload
9
+ end
10
+
11
+ def create_deployer_folder(stage:)
12
+ config_payload.included_files = Popito::IncludedFiles.new(config_payload: config_payload).included_files_list
13
+ Popito::ArchiveDownloading.new(config_payload: config_payload).download_and_extract(stage: stage)
14
+ docker_ajusts if config_payload.stages.include?('build')
15
+ end
16
+
17
+ private
18
+
19
+ def docker_ajusts
20
+ return unless File.exist?("#{config_payload.build_path}/.dockerignore")
21
+
22
+ File.open("#{config_payload.project_path}/.dockerignore", 'a') do |file|
23
+ file.write File.read("#{config_payload.build_path}/.dockerignore")
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Popito
4
+ VERSION = "0.0.1.alpha"
5
+ end
data/popito.gemspec ADDED
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/popito/deployer/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "popito"
7
+ spec.version = Popito::VERSION
8
+ spec.authors = ["Wagner Caixeta"]
9
+ spec.email = ["wagner.caixeta@gmail.com"]
10
+
11
+ spec.summary = "WIP: Build docker images for Rails Projects and deploy it on K8S using a Popito Server."
12
+ spec.description = "WIP: This gem is not ready yet."
13
+ spec.homepage = "http://github.com/platbr/popito"
14
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
15
+
16
+ # spec.metadata["allowed_push_host"] = "https://gems.baladapp.com.br"
17
+
18
+ spec.metadata["homepage_uri"] = spec.homepage
19
+ spec.metadata["source_code_uri"] = "http://github.com/platbr/popito"
20
+ spec.metadata["changelog_uri"] = "http://github.com/platbr/popito/blob/master/CHANGELOG.md"
21
+
22
+ # Specify which files should be added to the gem when it is released.
23
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
24
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
25
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features|docker)/}) }
26
+ end
27
+ spec.bindir = "exe"
28
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
29
+ spec.require_paths = ["lib"]
30
+
31
+ # Uncomment to register a new dependency of your gem
32
+ spec.add_dependency "deep_merge", '~> 1.2'
33
+ spec.add_dependency "erb", '~> 2.2'
34
+ spec.add_dependency "json", '~> 2.5'
35
+ spec.add_dependency "minitar", '~> 0.9'
36
+ spec.add_dependency "rest-client", '~> 2.1'
37
+ spec.add_dependency "yaml", '~> 0.1'
38
+
39
+ # For more information and examples about making a new gem, checkout our
40
+ # guide at: https://bundler.io/guides/creating_gem.html
41
+ end
metadata ADDED
@@ -0,0 +1,153 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: popito
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.alpha
5
+ platform: ruby
6
+ authors:
7
+ - Wagner Caixeta
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2021-09-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: deep_merge
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: erb
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: json
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitar
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0.9'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rest-client
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.1'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yaml
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.1'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.1'
97
+ description: 'WIP: This gem is not ready yet.'
98
+ email:
99
+ - wagner.caixeta@gmail.com
100
+ executables:
101
+ - popito
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".byebug_history"
106
+ - ".gitignore"
107
+ - ".gitlab-ci.yml"
108
+ - ".rubocop.yml"
109
+ - Gemfile
110
+ - Gemfile.lock
111
+ - README.md
112
+ - Rakefile
113
+ - bin/console
114
+ - bin/setup
115
+ - exe/popito
116
+ - lib/popito/deployer/build/build_executor.rb
117
+ - lib/popito/deployer/build/builders/docker.rb
118
+ - lib/popito/deployer/client/archive_downloading.rb
119
+ - lib/popito/deployer/client/client_base.rb
120
+ - lib/popito/deployer/client/included_files.rb
121
+ - lib/popito/deployer/config/config_payload.rb
122
+ - lib/popito/deployer/deploy/deploy_executor.rb
123
+ - lib/popito/deployer/deployer.rb
124
+ - lib/popito/deployer/stage/stage_preparing.rb
125
+ - lib/popito/deployer/version.rb
126
+ - popito.gemspec
127
+ homepage: http://github.com/platbr/popito
128
+ licenses: []
129
+ metadata:
130
+ homepage_uri: http://github.com/platbr/popito
131
+ source_code_uri: http://github.com/platbr/popito
132
+ changelog_uri: http://github.com/platbr/popito/blob/master/CHANGELOG.md
133
+ post_install_message:
134
+ rdoc_options: []
135
+ require_paths:
136
+ - lib
137
+ required_ruby_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 2.5.0
142
+ required_rubygems_version: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - ">"
145
+ - !ruby/object:Gem::Version
146
+ version: 1.3.1
147
+ requirements: []
148
+ rubygems_version: 3.1.4
149
+ signing_key:
150
+ specification_version: 4
151
+ summary: 'WIP: Build docker images for Rails Projects and deploy it on K8S using a
152
+ Popito Server.'
153
+ test_files: []