vidar 0.11.0 → 0.12.0

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: 5679fe9c0628ba2bda1ba1ea67e3d6a03fb904d3efac60469e87b5eafbc53305
4
- data.tar.gz: 31e5e63195717afb6a22e1b5650efcf762aedd65e10fd97b1de712aaa7adaf95
3
+ metadata.gz: 92d6a544dc40584459107ecd26b49864094730416330deb92f3f997f0513d9ed
4
+ data.tar.gz: 92432cdbfc04bacebb19f140aff90de48f0b91b32fe562177ffaa8d57736f1a4
5
5
  SHA512:
6
- metadata.gz: e31cb15a1b95ac839a7942c9dc01a69132ee51195df788b2fbf8b5d1f66d56799c83a4c680f6d5974e0b88d72885ef48885cfb28d81fa03f4c53c07c3a310a2e
7
- data.tar.gz: 4e76a3722633e592acb909c9d87e00ae9ae62011b7331e6ef65a93543d42c15405f660e2731c67173d76e85482ad3eb72255b33137cd87489892c53737bd18ab
6
+ metadata.gz: 2d5852644e22fdffd30e46656e2e479911aff7caa9c6da85351afcf552f5e1c0e46eb3f5c86cc87dc077b37e27d84e8018fd45dfb61b328bf22471885264ac8b
7
+ data.tar.gz: 883ce5d64ae39b1554eb1ccad46180420cc6d23c4c590aa90f488de580d7197f724086ae18fb5e6ee5c15a0fceb4afb616e8d89fe843cdfa319edb101799e7c4
data/.rubocop.yml CHANGED
@@ -2,7 +2,7 @@ require:
2
2
  - rubocop-performance
3
3
 
4
4
  inherit_from:
5
- - https://raw.githubusercontent.com/RenoFi/rubocop/master/ruby.yml
5
+ - https://raw.githubusercontent.com/RenoFi/rubocop/master/0.77.yml
6
6
 
7
7
  AllCops:
8
8
  TargetRubyVersion: 2.6
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- vidar (0.11.0)
4
+ vidar (0.12.0)
5
5
  colorize
6
6
  faraday
7
7
  thor (~> 0.20)
@@ -14,12 +14,12 @@ GEM
14
14
  coderay (1.1.2)
15
15
  colorize (0.8.1)
16
16
  diff-lcs (1.3)
17
- faraday (0.17.0)
17
+ faraday (0.17.1)
18
18
  multipart-post (>= 1.2, < 3)
19
19
  jaro_winkler (1.5.4)
20
20
  method_source (0.9.2)
21
21
  multipart-post (2.1.1)
22
- parallel (1.19.0)
22
+ parallel (1.19.1)
23
23
  parser (2.6.5.0)
24
24
  ast (~> 2.4.0)
25
25
  pry (0.12.2)
@@ -40,7 +40,7 @@ GEM
40
40
  diff-lcs (>= 1.2.0, < 2.0)
41
41
  rspec-support (~> 3.9.0)
42
42
  rspec-support (3.9.0)
43
- rubocop (0.76.0)
43
+ rubocop (0.77.0)
44
44
  jaro_winkler (~> 1.5.1)
45
45
  parallel (~> 1.10)
46
46
  parser (>= 2.6)
data/README.md CHANGED
@@ -24,7 +24,7 @@ Or install it yourself as:
24
24
 
25
25
  #### Requirements :
26
26
 
27
- * multistage `Dockerfile`, with at least 2 stages defined: `runner`, `release`.
27
+ * multistage `Dockerfile`, with at least 2 stages defined: `base`, `release`.
28
28
  * `docker-compose.ci.yml` file with defined services for all mentioned stages
29
29
  * `vidar.yml` file to the project root directory, which following content:
30
30
 
data/lib/vidar/cli.rb CHANGED
@@ -6,55 +6,61 @@ module Vidar
6
6
  true
7
7
  end
8
8
 
9
- desc "exec", "Run any command in given docker-compose target, default target is `runner`"
9
+ desc "exec", "Run any command in given docker-compose target, default target is `base`"
10
10
  option :command
11
- option :target, default: "runner"
11
+ option :target, required: false
12
12
  def exec
13
- Run.docker_compose("run runner #{options[:command]}") || exit(1)
13
+ target = options[:target] || Config.get!(:base_stage_name)
14
+ Run.docker_compose("run #{target} #{options[:command]}") || exit(1)
14
15
  end
15
16
 
16
17
  desc "pull", "Pull existing docker images to leverage docker caching"
17
18
  def pull
18
19
  Log.info "Pulling #{Config.get!(:image)} tags"
19
- Run.docker "pull #{Config.get!(:image)}:runner-#{Config.get!(:current_branch)} 2> /dev/null || true"
20
- Run.docker "pull #{Config.get!(:image)}:runner-#{Config.get!(:default_branch)} 2> /dev/null || true"
21
- Run.docker "pull #{Config.get!(:image)}:runner 2> /dev/null || true"
22
- Run.docker "pull #{Config.get!(:image)}:release 2> /dev/null || true"
20
+ Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:current_branch)} 2> /dev/null || true"
21
+ Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:default_branch)} 2> /dev/null || true"
22
+ Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:base_stage_name)} 2> /dev/null || true"
23
+ Run.docker "pull #{Config.get!(:image)}:#{Config.get!(:release_stage_name)} 2> /dev/null || true"
23
24
  Log.info "Docker images:"
24
25
  Run.docker("images")
25
26
  end
26
27
 
27
28
  desc "build", "Build docker stages"
28
29
  def build
29
- Log.info "Building runner image"
30
- Run.docker_compose "build runner"
30
+ Log.info "Building #{Config.get!(:base_stage_name)} image"
31
+ Run.docker_compose "build #{Config.get!(:base_stage_name)}"
31
32
 
32
- Log.info "Building release image"
33
- Run.docker_compose "build release"
33
+ Log.info "Building #{Config.get!(:release_stage_name)} image"
34
+ Run.docker_compose "build #{Config.get!(:release_stage_name)}"
34
35
  end
35
36
 
36
37
  desc "cache", "Caches intermediate docker stages"
37
38
  def cache
38
- Log.info "Publishing runner image"
39
- Run.docker "push #{Config.get!(:image)}:runner-#{Config.get!(:current_branch)}"
39
+ Log.info "Publishing #{Config.get!(:base_stage_name)} image"
40
+ Run.docker "push #{Config.get!(:image)}:#{Config.get!(:base_stage_name)}-#{Config.get!(:current_branch)}"
40
41
  end
41
42
 
42
43
  desc "publish", "Publish docker images on docker registry"
43
44
  def publish
44
- Log.info "Publishing #{Config.get!(:image)}:#{Config.get!(:revision)}"
45
- Run.docker "tag #{Config.get!(:image)}:release #{Config.get!(:image)}:#{Config.get!(:revision)}"
46
- Run.docker "push #{Config.get!(:image)}:#{Config.get!(:revision)}"
45
+ base_image_tag = "#{Config.get!(:image)}:#{Config.get!(:base_stage_name)}"
46
+ revision_image_tag = "#{Config.get!(:image)}:#{Config.get!(:revision)}"
47
+ release_image_tag = "#{Config.get!(:image)}:#{Config.get!(:release_stage_name)}"
48
+ latest_image_tag = "#{Config.get!(:image)}:latest}"
47
49
 
48
- return unless Config.get!(:current_branch) == Config.get!(:default_branch)
50
+ Log.info "Publishing #{revision_image_tag}"
51
+ Run.docker "tag #{release_image_tag} #{revision_image_tag}"
52
+ Run.docker "push #{revision_image_tag}"
49
53
 
50
- Log.info "Publishing #{Config.get!(:image)}:runner"
51
- Run.docker "tag #{Config.get!(:image)}:runner-#{Config.get!(:current_branch)} #{Config.get!(:image)}:runner"
52
- Run.docker "push #{Config.get!(:image)}:runner"
54
+ return unless Config.default_branch?
53
55
 
54
- Log.info "Publishing #{Config.get!(:image)}:release"
55
- Run.docker "tag #{Config.get!(:image)}:release #{Config.get!(:image)}:latest"
56
- Run.docker "push #{Config.get!(:image)}:release"
57
- Run.docker "push #{Config.get!(:image)}:latest"
56
+ Log.info "Publishing #{base_image_tag}"
57
+ Run.docker "tag #{base_image_tag}-#{Config.get!(:current_branch)} #{base_image_tag}"
58
+ Run.docker "push #{base_image_tag}"
59
+
60
+ Log.info "Publishing #{release_image_tag}"
61
+ Run.docker "tag #{release_image_tag} #{latest_image_tag}"
62
+ Run.docker "push #{release_image_tag}"
63
+ Run.docker "push #{latest_image_tag}"
58
64
  end
59
65
 
60
66
  desc "deploy", "Perform k8s deployment with deploy hook"
data/lib/vidar/config.rb CHANGED
@@ -3,14 +3,16 @@ module Vidar
3
3
  DEFAULT_MANIFEST_FILE = "vidar.yml".freeze
4
4
 
5
5
  DEFAULT_OPTIONS = {
6
- compose_file: -> { "docker-compose.ci.yml" },
7
- default_branch: -> { "master" },
8
- current_branch: -> { `git rev-parse --abbrev-ref HEAD`.strip.tr("/", "-") },
9
- revision: -> { `git rev-parse HEAD`.strip },
10
- revision_name: -> { `git show --pretty=format:"%s (%h)" -s HEAD`.strip },
11
- kubectl_context: -> { `kubectl config current-context`.strip },
12
- shell_command: -> { "/bin/sh" },
13
- console_command: -> { "bin/console" },
6
+ compose_file: -> { "docker-compose.ci.yml" },
7
+ default_branch: -> { "master" },
8
+ current_branch: -> { `git rev-parse --abbrev-ref HEAD`.strip.tr("/", "-") },
9
+ revision: -> { `git rev-parse HEAD`.strip },
10
+ revision_name: -> { `git show --pretty=format:"%s (%h)" -s HEAD`.strip },
11
+ kubectl_context: -> { `kubectl config current-context`.strip },
12
+ shell_command: -> { "/bin/sh" },
13
+ console_command: -> { "bin/console" },
14
+ base_stage_name: -> { "base" },
15
+ release_stage_name: -> { "release" },
14
16
  }.freeze
15
17
 
16
18
  class << self
@@ -58,6 +60,10 @@ module Vidar
58
60
 
59
61
  DeployConfig.new(deployment)
60
62
  end
63
+
64
+ def default_branch?
65
+ get!(:current_branch) == get!(:default_branch)
66
+ end
61
67
  end
62
68
  end
63
69
  end
data/lib/vidar/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Vidar
2
- VERSION = '0.11.0'.freeze
2
+ VERSION = '0.12.0'.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: 0.11.0
4
+ version: 0.12.0
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: 2019-11-21 00:00:00.000000000 Z
12
+ date: 2019-11-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: colorize