vidar 1.8.0 → 1.9.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 377ce0e0c614b14f20c1675d24f843c76bcce4a1631a49cbfaa4403ae0866a06
4
- data.tar.gz: d7e15d2fcebde93e16a917667bcb722f6796c8e1a6f7ddd8ddca6628db4b0ec3
3
+ metadata.gz: e26a3d84c5de4e7c506b028409ce6ee47dbac922a9365239cd62c7d2595552c6
4
+ data.tar.gz: 7b9643a791b05bca66fc51299e35690079554dd6e5c3b96dd91385011d60cc90
5
5
  SHA512:
6
- metadata.gz: ff6e0fd051afb356d8b5d84c3fb6e90b6402aa1bcc7a9ce01cfbcb1c97c86a4c90fdf440ec767ccd52aa9a7e8ea4e7866a1cd070915662e4dcefb971754218bb
7
- data.tar.gz: 9117d313c5ffcefb791fcbde326621a154e6999f396c651def96c02ef70b4a296caa983a25ea8ceba1127e7ae6e2034767744509003ccd56267625a876d1d6ab
6
+ metadata.gz: 44f848eecb1498f52370cbcdda0d96d4d9345c4a1363ab7abba5366e0cdf322d220cef9f4759dddc56d79ad5d455638f2412cc75855db79f0537f11534239503
7
+ data.tar.gz: 600233a334a4bdd395bf9b573085a1a03f02007cae5903e93fd31c645d874ae35f0ddef8b179214c82edee243ab1b109cc3f6403ae473fd15253e1e9fcac421f
data/.bundler-version CHANGED
@@ -1 +1 @@
1
- 2.4.13
1
+ 2.4.21
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vidar (1.8.0)
4
+ vidar (1.9.1)
5
5
  colorize
6
6
  faraday
7
7
  thor (~> 1.0)
@@ -9,33 +9,38 @@ PATH
9
9
  GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
- addressable (2.8.4)
12
+ addressable (2.8.6)
13
13
  public_suffix (>= 2.0.2, < 6.0)
14
14
  ast (2.4.2)
15
15
  awesome_print (1.9.2)
16
+ base64 (0.2.0)
16
17
  coderay (1.1.3)
17
- colorize (0.8.1)
18
+ colorize (1.1.0)
18
19
  crack (0.4.5)
19
20
  rexml
20
21
  diff-lcs (1.5.0)
21
- faraday (2.7.5)
22
+ faraday (2.7.12)
23
+ base64
22
24
  faraday-net_http (>= 2.0, < 3.1)
23
25
  ruby2_keywords (>= 0.0.4)
24
26
  faraday-net_http (3.0.2)
25
27
  hashdiff (1.0.1)
26
- json (2.6.3)
28
+ json (2.7.1)
29
+ language_server-protocol (3.17.0.3)
27
30
  method_source (1.0.0)
28
31
  parallel (1.23.0)
29
- parser (3.2.2.1)
32
+ parser (3.2.2.4)
30
33
  ast (~> 2.4.1)
34
+ racc
31
35
  pry (0.14.2)
32
36
  coderay (~> 1.1)
33
37
  method_source (~> 1.0)
34
- public_suffix (5.0.1)
38
+ public_suffix (5.0.4)
39
+ racc (1.7.3)
35
40
  rainbow (3.1.1)
36
- rake (13.0.6)
37
- regexp_parser (2.8.0)
38
- rexml (3.2.5)
41
+ rake (13.1.0)
42
+ regexp_parser (2.8.3)
43
+ rexml (3.2.6)
39
44
  rspec (3.12.0)
40
45
  rspec-core (~> 3.12.0)
41
46
  rspec-expectations (~> 3.12.0)
@@ -45,37 +50,38 @@ GEM
45
50
  rspec-expectations (3.12.3)
46
51
  diff-lcs (>= 1.2.0, < 2.0)
47
52
  rspec-support (~> 3.12.0)
48
- rspec-mocks (3.12.5)
53
+ rspec-mocks (3.12.6)
49
54
  diff-lcs (>= 1.2.0, < 2.0)
50
55
  rspec-support (~> 3.12.0)
51
- rspec-support (3.12.0)
52
- rubocop (1.51.0)
56
+ rspec-support (3.12.1)
57
+ rubocop (1.58.0)
53
58
  json (~> 2.3)
59
+ language_server-protocol (>= 3.17.0)
54
60
  parallel (~> 1.10)
55
- parser (>= 3.2.0.0)
61
+ parser (>= 3.2.2.4)
56
62
  rainbow (>= 2.2.2, < 4.0)
57
63
  regexp_parser (>= 1.8, < 3.0)
58
64
  rexml (>= 3.2.5, < 4.0)
59
- rubocop-ast (>= 1.28.0, < 2.0)
65
+ rubocop-ast (>= 1.30.0, < 2.0)
60
66
  ruby-progressbar (~> 1.7)
61
67
  unicode-display_width (>= 2.4.0, < 3.0)
62
- rubocop-ast (1.29.0)
68
+ rubocop-ast (1.30.0)
63
69
  parser (>= 3.2.1.0)
64
- rubocop-capybara (2.18.0)
70
+ rubocop-capybara (2.19.0)
65
71
  rubocop (~> 1.41)
66
- rubocop-factory_bot (2.23.1)
72
+ rubocop-factory_bot (2.24.0)
67
73
  rubocop (~> 1.33)
68
74
  rubocop-rake (0.6.0)
69
75
  rubocop (~> 1.0)
70
- rubocop-rspec (2.22.0)
71
- rubocop (~> 1.33)
76
+ rubocop-rspec (2.25.0)
77
+ rubocop (~> 1.40)
72
78
  rubocop-capybara (~> 2.17)
73
79
  rubocop-factory_bot (~> 2.22)
74
80
  ruby-progressbar (1.13.0)
75
81
  ruby2_keywords (0.0.5)
76
- thor (1.2.2)
77
- unicode-display_width (2.4.2)
78
- webmock (3.18.1)
82
+ thor (1.3.0)
83
+ unicode-display_width (2.5.0)
84
+ webmock (3.19.1)
79
85
  addressable (>= 2.8.0)
80
86
  crack (>= 0.3.2)
81
87
  hashdiff (>= 0.4.0, < 2.0.0)
@@ -96,4 +102,4 @@ DEPENDENCIES
96
102
  webmock
97
103
 
98
104
  BUNDLED WITH
99
- 2.4.12
105
+ 2.4.22
data/README.md CHANGED
@@ -32,41 +32,31 @@ version: '3.7'
32
32
 
33
33
  services:
34
34
  base:
35
- image: gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:base-${CURRENT_BRANCH:?err}
35
+ image: [docker-registry-url]:base-${CURRENT_BRANCH:?err}
36
36
  build:
37
37
  dockerfile: Dockerfile
38
38
  context: .
39
39
  target: base
40
- cache_from:
41
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:base-master
42
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:base
43
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:release
44
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:$REVISION
45
40
  env_file:
46
41
  - .env
47
42
  environment:
48
43
  - RACK_ENV=test
49
44
 
50
45
  release:
51
- image: gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:release
46
+ image: [docker-registry-url]:release
52
47
  build:
53
48
  dockerfile: Dockerfile
54
49
  context: .
55
50
  target: release
56
51
  args:
57
52
  - REVISION=${REVISION:?err}
58
- cache_from:
59
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:base-${CURRENT_BRANCH:?err}
60
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:base-master
61
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:base
62
- - gcr.io/[GCP-PROJECT-ID]/[APP-NAME]:$REVISION
63
53
  ```
64
54
 
65
55
  * `vidar.yml` file to the project root directory, which following content:
66
56
 
67
57
  ```yml
68
58
  # docker image name, required
69
- image: gcr.io/[GCP-PROJECT-ID]/[APP-NAME]
59
+ image: [docker-registry-url]
70
60
  # k8s namespace, required
71
61
  namespace: borrower
72
62
  # github name used to build deployment notification content
data/lib/vidar/cli.rb CHANGED
@@ -23,13 +23,22 @@ module Vidar
23
23
  def pull
24
24
  Log.info "Pulling #{Config.get!(:image)} tags"
25
25
  Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:current_branch)} 2> /dev/null || true"
26
- Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:default_branch)} 2> /dev/null || true"
27
- Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)} 2> /dev/null || true"
28
- Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:release_stage_name)} 2> /dev/null || true"
26
+ unless Config.default_branch?
27
+ Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:default_branch)} 2> /dev/null || true"
28
+ end
29
29
  Log.info "Docker images:"
30
30
  Run.docker("images")
31
31
  end
32
32
 
33
+ desc "build_and_cache_base", "Build and caches base stage"
34
+ def build_and_cache_base
35
+ Log.info "Building #{Config.get!(:base_stage_name)} image"
36
+ Run.docker_compose "build #{Config.get!(:base_stage_name)}"
37
+
38
+ Log.info "Publishing #{Config.get!(:base_stage_name)} image"
39
+ Run.docker "push #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:current_branch)}"
40
+ end
41
+
33
42
  desc "build", "Build docker stages"
34
43
  def build
35
44
  Log.info "Building #{Config.get!(:base_stage_name)} image"
@@ -47,7 +56,6 @@ module Vidar
47
56
 
48
57
  desc "publish", "Publish docker images on docker registry"
49
58
  def publish
50
- base_image_tag = "#{Config.get!(:image)}:#{Config.get!(:base_stage_name)}"
51
59
  revision_image_tag = "#{Config.get!(:image)}:#{Config.get!(:revision)}"
52
60
  release_image_tag = "#{Config.get!(:image)}:#{Config.get!(:release_stage_name)}"
53
61
  latest_image_tag = "#{Config.get!(:image)}:latest"
@@ -58,9 +66,8 @@ module Vidar
58
66
 
59
67
  return unless Config.default_branch?
60
68
 
61
- Log.info "Publishing #{base_image_tag}"
62
- Run.docker "tag #{base_image_tag}-#{Config.get!(:current_branch)} #{base_image_tag}"
63
- Run.docker "push #{base_image_tag}"
69
+ Log.info "Publishing #{Config.get!(:base_stage_name)} image"
70
+ Run.docker "push #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:current_branch)}"
64
71
 
65
72
  Log.info "Publishing #{release_image_tag}"
66
73
  Run.docker "tag #{release_image_tag} #{latest_image_tag}"
@@ -124,8 +131,8 @@ module Vidar
124
131
  def release
125
132
  Log.info "Build and release #{Config.get!(:image)}:#{Config.get!(:revision)}"
126
133
  pull
127
- build
128
- cache
134
+ Log.info "Building #{Config.get!(:release_stage_name)} image"
135
+ Run.docker_compose "build #{Config.get!(:release_stage_name)}"
129
136
  publish
130
137
  end
131
138
 
data/lib/vidar/config.rb CHANGED
@@ -6,7 +6,7 @@ module Vidar
6
6
  DEFAULT_OPTIONS = {
7
7
  compose_file: -> { "docker-compose.ci.yml" },
8
8
  default_branch: -> { (DEFAULT_BRANCHES & branches).first || DEFAULT_BRANCHES.first },
9
- current_branch: -> { `git rev-parse --abbrev-ref HEAD`.strip.tr("/", "-") },
9
+ current_branch: -> { ENV['SEMAPHORE_GIT_WORKING_BRANCH'] || `git rev-parse --abbrev-ref HEAD`.strip.tr("/", "-") },
10
10
  revision: -> { `git rev-parse HEAD`.strip },
11
11
  revision_name: -> { `git show --pretty=format:"%s (%h)" -s HEAD`.strip },
12
12
  kubectl_context: -> { `kubectl config current-context`.strip },
data/lib/vidar/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vidar
2
- VERSION = '1.8.0'.freeze
2
+ VERSION = '1.9.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vidar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Krzysztof Knapik
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-06-02 00:00:00.000000000 Z
12
+ date: 2023-12-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colorize
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  - !ruby/object:Gem::Version
120
120
  version: '0'
121
121
  requirements: []
122
- rubygems_version: 3.4.12
122
+ rubygems_version: 3.4.22
123
123
  signing_key:
124
124
  specification_version: 4
125
125
  summary: K8s deployment tools based on thor