vidar 0.11.0 → 0.12.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: 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