kuber_kit 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 03c60b8fd02854d59ccad27ac3e512b726049d55f87f41d9c0ac0256344705ba
4
- data.tar.gz: e60f2f47da61e2b5c3942878c19c863c2537bd5a6513476bb4a26aea81259674
3
+ metadata.gz: d5c29f15c515fba96ece8e78533644f3a43a1d2549302599f745c676dedd47c5
4
+ data.tar.gz: dccbbc6c69d0cdfbb27dfb3f9ded0bdd1efb3609f1b8ba5fe1580d4cf65ed42b
5
5
  SHA512:
6
- metadata.gz: 85bfd81c3419a8a44960c89e9e31d06a4775aa143141fdc8da8f46ea207d60a2be53310213a5cc96cf1fe034097c13f09d10256a72d0535bb6ee363d0a12c987
7
- data.tar.gz: 7182215530a9ee4908e4e483c578764c3bbc63f4d510c89b68bf8a2cb15a5e41bf714eb553b1497ad2236af4e585feb0e6aa810b00bb8e0f3b3ff1357e9717bf
6
+ metadata.gz: 110f8df5c9fa5767ee82ce03b5e482b96ba43f0394a7cc8349888df086adb663a68858fe49154c83913fc7a8be935a0494e84cf617a332f69e4553edc234024c
7
+ data.tar.gz: c1800c82bb31e7b17d12b033317ebffa554eee238c66d10141603ad42817ceb314cfd12cf01b4ccc010f701e9a3424a72ed10f2ed2611c7339e9a83d5ae45821
@@ -19,7 +19,7 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  strategy:
21
21
  matrix:
22
- ruby-version: ['2.5', '2.7']
22
+ ruby-version: ['2.5', '2.7', '3.0']
23
23
 
24
24
  steps:
25
25
  - uses: actions/checkout@v2
data/.gitignore CHANGED
@@ -9,4 +9,5 @@
9
9
 
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
- .DS_Store
12
+ .DS_Store
13
+ Gemfile.lock
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.8
1
+ 2.6.8
data/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ **0.7.0**
2
+ - Added Ruby 3.0 support
3
+
4
+ **0.6.4**
5
+ - Improve context vars, allow checking if variable is defined
6
+
7
+ **0.6.3**
8
+ - Fix updating artifacts when there is only local artifacts
9
+
10
+ **0.6.2**
11
+ - Added an ability to return build vars as a hash value.
12
+ - Skip local artifacts while updating configuration, it sometimes produce an error
13
+
1
14
  **0.6.1**
2
15
  - Improve performance of artifacts update by updating in threads.
3
16
  - Added an ability to define default services
data/kuber_kit.gemspec CHANGED
@@ -23,15 +23,25 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ["lib"]
25
25
 
26
- spec.add_dependency "contracts-lite"
27
- spec.add_dependency "dry-auto_inject", "~> 0.7.0"
26
+ if RUBY_VERSION >= '3.0.0'
27
+ spec.add_dependency "contracts", '0.17.0'
28
+ else
29
+ spec.add_dependency "contracts", '0.16.0'
30
+ end
31
+
32
+ if RUBY_VERSION >= '2.6.0'
33
+ spec.add_dependency "dry-auto_inject", "~> 0.8.0"
34
+ else
35
+ spec.add_dependency "dry-auto_inject", "~> 0.7.0"
36
+ end
37
+
28
38
  spec.add_dependency "thor"
29
39
  spec.add_dependency "cli-ui"
30
40
  spec.add_dependency "net-ssh"
31
41
  spec.add_dependency "tty-prompt"
32
42
  spec.add_dependency "dry-container", "~> 0.7.2"
33
43
 
34
- spec.add_development_dependency "bundler", "~> 1.17"
44
+ spec.add_development_dependency "bundler", "~> 2.2"
35
45
  spec.add_development_dependency "rake", "~> 10.0"
36
46
  spec.add_development_dependency "rspec", "~> 3.0"
37
47
  spec.add_development_dependency "pry"
@@ -99,10 +99,14 @@ class KuberKit::Actions::ConfigurationLoader
99
99
  end
100
100
 
101
101
  def update_artifacts(artifacts)
102
- return unless artifacts.any?
102
+ # Skip local artifacts, they sometimes produce error in CLI::UI::SpinGroup task,
103
+ # because the task is executed too quickly
104
+ not_local_artifacts = artifacts.reject{ |a| a.is_a?(KuberKit::Core::Artifacts::Local) }
105
+
106
+ return unless not_local_artifacts.any?
103
107
 
104
108
  artifact_task_group = ui.create_task_group
105
- artifacts.each do |artifact|
109
+ not_local_artifacts.each do |artifact|
106
110
  artifact_task_group.add("Updating #{artifact.name.to_s.yellow}") do |task|
107
111
  artifact_updater.update(local_shell, artifact)
108
112
  task.update_title("Updated #{artifact.name.to_s.green}")
@@ -1,23 +1,52 @@
1
1
  class KuberKit::Core::ContextHelper::ContextVars
2
2
  attr_reader :parent, :parent_name
3
3
 
4
+ BuildArgUndefined = Class.new(KuberKit::Error)
5
+
4
6
  def initialize(context_vars, parent_name = nil, parent = nil)
5
7
  @context_vars = context_vars
6
8
  @parent_name = parent_name
7
9
  @parent = parent
8
10
  end
9
11
 
12
+ def read(*variable_names)
13
+ result = self
14
+ variable_names.each do |var|
15
+ result = result.get_variable_value(var)
16
+ end
17
+ result
18
+ end
19
+
20
+ def variable_defined?(*variable_names)
21
+ read(*variable_names)
22
+ return true
23
+ rescue BuildArgUndefined
24
+ return false
25
+ end
26
+
10
27
  def method_missing(name, *args)
11
28
  if args.size > 0
12
29
  raise ArgumentError.new("context args does not accept any arguments")
13
30
  end
14
31
 
15
- value = @context_vars.fetch(name) do
16
- raise(KuberKit::Error, "build arg '#{format_arg(name)}' is not defined, available args: #{@context_vars.inspect}")
32
+ read(name)
33
+ end
34
+
35
+ def to_h
36
+ if @context_vars.is_a?(Hash)
37
+ return @context_vars
38
+ else
39
+ return {value: @context_vars}
40
+ end
41
+ end
42
+
43
+ def get_variable_value(variable_name)
44
+ value = @context_vars.fetch(variable_name) do
45
+ raise(BuildArgUndefined, "build arg '#{format_arg(variable_name)}' is not defined, available args: #{@context_vars.inspect}")
17
46
  end
18
47
 
19
48
  if value.is_a?(Hash)
20
- return self.class.new(value, name, self)
49
+ return self.class.new(value, variable_name, self)
21
50
  end
22
51
 
23
52
  value
@@ -25,15 +54,15 @@ class KuberKit::Core::ContextHelper::ContextVars
25
54
 
26
55
  private
27
56
 
28
- def format_arg(name)
29
- string = [@parent_name, name].compact.join(".")
30
- parent = @parent
57
+ def format_arg(name)
58
+ string = [@parent_name, name].compact.join(".")
59
+ parent = @parent
31
60
 
32
- while parent do
33
- string = [parent.parent_name, string].compact.join(".")
34
- parent = parent.parent
35
- end
61
+ while parent do
62
+ string = [parent.parent_name, string].compact.join(".")
63
+ parent = parent.parent
64
+ end
36
65
 
37
- string
38
- end
66
+ string
67
+ end
39
68
  end
@@ -6,8 +6,8 @@ class KuberKit::EnvFileReader::Reader
6
6
  "env_file_reader.strategies.env_group",
7
7
  ]
8
8
 
9
- def initialize(**injected_deps)
10
- super(injected_deps)
9
+ def initialize(**injected_deps, &block)
10
+ super(**injected_deps)
11
11
  add_default_strategies
12
12
  end
13
13
 
@@ -8,8 +8,8 @@ class KuberKit::ServiceDeployer::Deployer
8
8
  "service_deployer.strategies.docker_compose"
9
9
  ]
10
10
 
11
- def initialize(**injected_deps)
12
- super(injected_deps)
11
+ def initialize(**injected_deps, &block)
12
+ super(**injected_deps)
13
13
  add_default_strategies
14
14
  end
15
15
 
@@ -5,8 +5,8 @@ class KuberKit::TemplateReader::Reader
5
5
  "template_reader.strategies.artifact_file",
6
6
  ]
7
7
 
8
- def initialize(**injected_deps)
9
- super(injected_deps)
8
+ def initialize(**injected_deps, &block)
9
+ super(**injected_deps)
10
10
  add_default_strategies
11
11
  end
12
12
 
@@ -46,6 +46,7 @@ class KuberKit::UI::Simple
46
46
  class TaskGroup
47
47
  def initialize(task_class)
48
48
  @task_class = task_class
49
+ @tasks
49
50
  end
50
51
 
51
52
  def add(task_title, &task_block)
@@ -1,3 +1,3 @@
1
1
  module KuberKit
2
- VERSION = "0.6.1"
2
+ VERSION = "0.7.0"
3
3
  end
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuber_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Iskander Khaziev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-20 00:00:00.000000000 Z
11
+ date: 2021-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: contracts-lite
14
+ name: contracts
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.16.0
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: '0'
26
+ version: 0.16.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: dry-auto_inject
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.7.0
33
+ version: 0.8.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.7.0
40
+ version: 0.8.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: thor
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: '1.17'
117
+ version: '2.2'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: '1.17'
124
+ version: '2.2'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -181,7 +181,6 @@ files:
181
181
  - ".travis.yml"
182
182
  - CHANGELOG.md
183
183
  - Gemfile
184
- - Gemfile.lock
185
184
  - LICENSE.txt
186
185
  - README.md
187
186
  - Rakefile
@@ -362,7 +361,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
362
361
  - !ruby/object:Gem::Version
363
362
  version: '0'
364
363
  requirements: []
365
- rubygems_version: 3.0.8
364
+ rubygems_version: 3.0.3.1
366
365
  signing_key:
367
366
  specification_version: 4
368
367
  summary: Docker Containers Build & Deployment
data/Gemfile.lock DELETED
@@ -1,84 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- kuber_kit (0.6.1)
5
- cli-ui
6
- contracts-lite
7
- dry-auto_inject (~> 0.7.0)
8
- dry-container (~> 0.7.2)
9
- net-ssh
10
- thor
11
- tty-prompt
12
-
13
- GEM
14
- remote: https://rubygems.org/
15
- specs:
16
- cli-ui (1.5.1)
17
- coderay (1.1.3)
18
- concurrent-ruby (1.1.9)
19
- contracts-lite (0.15.0)
20
- diff-lcs (1.4.4)
21
- docile (1.3.2)
22
- dry-auto_inject (0.7.0)
23
- dry-container (>= 0.3.4)
24
- dry-configurable (0.12.1)
25
- concurrent-ruby (~> 1.0)
26
- dry-core (~> 0.5, >= 0.5.0)
27
- dry-container (0.7.2)
28
- concurrent-ruby (~> 1.0)
29
- dry-configurable (~> 0.1, >= 0.1.3)
30
- dry-core (0.6.0)
31
- concurrent-ruby (~> 1.0)
32
- method_source (1.0.0)
33
- net-ssh (6.1.0)
34
- pastel (0.8.0)
35
- tty-color (~> 0.5)
36
- pry (0.13.1)
37
- coderay (~> 1.1)
38
- method_source (~> 1.0)
39
- rake (10.5.0)
40
- rspec (3.10.0)
41
- rspec-core (~> 3.10.0)
42
- rspec-expectations (~> 3.10.0)
43
- rspec-mocks (~> 3.10.0)
44
- rspec-core (3.10.0)
45
- rspec-support (~> 3.10.0)
46
- rspec-expectations (3.10.0)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.10.0)
49
- rspec-mocks (3.10.0)
50
- diff-lcs (>= 1.2.0, < 2.0)
51
- rspec-support (~> 3.10.0)
52
- rspec-support (3.10.0)
53
- simplecov (0.20.0)
54
- docile (~> 1.1)
55
- simplecov-html (~> 0.11)
56
- simplecov_json_formatter (~> 0.1)
57
- simplecov-html (0.12.3)
58
- simplecov_json_formatter (0.1.2)
59
- thor (1.1.0)
60
- tty-color (0.6.0)
61
- tty-cursor (0.7.1)
62
- tty-prompt (0.23.1)
63
- pastel (~> 0.8)
64
- tty-reader (~> 0.8)
65
- tty-reader (0.9.0)
66
- tty-cursor (~> 0.7)
67
- tty-screen (~> 0.8)
68
- wisper (~> 2.0)
69
- tty-screen (0.8.1)
70
- wisper (2.0.1)
71
-
72
- PLATFORMS
73
- ruby
74
-
75
- DEPENDENCIES
76
- bundler (~> 1.17)
77
- kuber_kit!
78
- pry
79
- rake (~> 10.0)
80
- rspec (~> 3.0)
81
- simplecov
82
-
83
- BUNDLED WITH
84
- 1.17.3