dapp 0.35.11 → 0.35.12

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: 62eb5fd2e7a6324d98290c5088e08f6e9bedd1786d02486275b8fbcf2b7df9f6
4
- data.tar.gz: 4b4dd677718ac548d16245ed9033c3c367e43be5ab10d7cfc220d4e9a13a86e0
3
+ metadata.gz: 0adb4bf08173793c4f4375818281b923c2e52fdea88fbfda96588477769f3db1
4
+ data.tar.gz: c544df40040b7030ded5800bd1ac05950fcd0648af0077d7a8a1681356e843d1
5
5
  SHA512:
6
- metadata.gz: 240225dcd27cda0c0a02da38db75e28e30fd80db1f80fcf6ada0d84b0093ac50a10b37e52107ccb2e55af45323dcc52bb3080f7a009c76691e790809b0ce453a
7
- data.tar.gz: 27b6be75d2fe4998ac8f137a32143d928f8b3a3809c87453e58e7d1100abfb5856ae976d395dba5c2c9086266544abc0991a57a28ad6f5b20aeb165bdc9c7a31
6
+ metadata.gz: 8c5c13d95cf94a69c7c24cf9baeff7600b2adf4d90b4382083b16f39ab9e19d13be9a13d12ed68eb881bd8c294d38f3e1395d27de0e117661f97300dfdd6b263
7
+ data.tar.gz: b87cf2e5d650993e26739b18e950b6b4c06ecd0bcdae4bec714729aa2d82a45a775029606d9059813cbc6bd98e393cf8c55689a785a9a02ab04dc8f1f6f604da
@@ -60,7 +60,7 @@ module Dapp
60
60
  return {} unless options[:tag_build_id]
61
61
 
62
62
  if ENV['GITLAB_CI']
63
- build_id = ENV['CI_BUILD_ID']
63
+ build_id = ENV['CI_BUILD_ID'] || ENV['CI_JOB_ID']
64
64
  elsif ENV['TRAVIS']
65
65
  build_id = ENV['TRAVIS_BUILD_NUMBER']
66
66
  else
@@ -75,10 +75,10 @@ module Dapp
75
75
 
76
76
  {}.tap do |tags_by_scheme|
77
77
  if ENV['GITLAB_CI']
78
- if ENV['CI_BUILD_TAG']
79
- tags_by_scheme[:git_tag] = [ENV['CI_BUILD_TAG']]
80
- elsif ENV['CI_BUILD_REF_NAME']
81
- tags_by_scheme[:git_branch] = [ENV['CI_BUILD_REF_NAME']]
78
+ if ENV['CI_BUILD_TAG'] || ENV['CI_COMMIT_TAG']
79
+ tags_by_scheme[:git_tag] = [ENV['CI_BUILD_TAG'] || ENV['CI_COMMIT_TAG']]
80
+ elsif ENV['CI_BUILD_REF_NAME'] || ENV['CI_COMMIT_REF_NAME']
81
+ tags_by_scheme[:git_branch] = [ENV['CI_BUILD_REF_NAME'] || ENV['CI_COMMIT_REF_NAME']]
82
82
  end
83
83
  elsif ENV['TRAVIS']
84
84
  if ENV['TRAVIS_TAG']
@@ -4,28 +4,75 @@ module Dapp
4
4
  SLUG_SEPARATOR = '-'.freeze
5
5
  SLUG_V2_LIMIT_LENGTH = 53
6
6
 
7
- def consistent_uniq_slugify(s)
8
- return s unless should_be_slugged?(s)
9
- consistent_uniq_slug_reg =~ s.tr('/', '-').slugify.squeeze('--')
10
- consistent_uniq_slug = Regexp.last_match(1)
11
- murmur_hash = MurmurHash3::V32.str_hexdigest(s)
12
- [].tap do |slug|
13
- slug << begin
14
- unless consistent_uniq_slug.nil?
15
- index = ENV['DAPP_SLUG_V2'] ? SLUG_V2_LIMIT_LENGTH - murmur_hash.length - SLUG_SEPARATOR.length - 1 : -1
16
- consistent_uniq_slug[0..index]
17
- end
18
- end
19
- slug << murmur_hash
20
- end.compact.join(SLUG_SEPARATOR)
7
+ def self.included(base)
8
+ if ENV['DAPP_SLUG_V3']
9
+ base.include(V3)
10
+ else
11
+ base.include(V1V2)
12
+ end
21
13
  end
22
14
 
23
- def should_be_slugged?(s)
24
- !(/^#{consistent_uniq_slug_reg}$/ =~ s)
15
+ module V1V2
16
+ def consistent_uniq_slugify(s)
17
+ return s unless should_be_slugged?(s)
18
+ consistent_uniq_slug_reg =~ s.tr('/', '-').slugify.squeeze('--')
19
+ consistent_uniq_slug = Regexp.last_match(1)
20
+ murmur_hash = MurmurHash3::V32.str_hexdigest(s)
21
+ [].tap do |slug|
22
+ slug << begin
23
+ unless consistent_uniq_slug.nil?
24
+ index = ENV['DAPP_SLUG_V2'] ? SLUG_V2_LIMIT_LENGTH - murmur_hash.length - SLUG_SEPARATOR.length - 1 : -1
25
+ consistent_uniq_slug[0..index]
26
+ end
27
+ end
28
+ slug << murmur_hash
29
+ end.compact.join(SLUG_SEPARATOR)
30
+ end
31
+
32
+ def should_be_slugged?(s)
33
+ !(/^#{consistent_uniq_slug_reg}$/ =~ s)
34
+ end
35
+
36
+ def consistent_uniq_slug_reg
37
+ /(?!-)((-?[a-z0-9]+)+)(?<!-)/
38
+ end
25
39
  end
26
40
 
27
- def consistent_uniq_slug_reg
28
- /(?!-)((-?[a-z0-9]+)+)(?<!-)/
41
+ module V3
42
+ def consistent_uniq_slugify(s)
43
+ return s unless should_be_slugged?(s)
44
+ slug = consistent_uniq_slug(s)
45
+ murmur_hash = MurmurHash3::V32.str_hexdigest(s)
46
+ [].tap do |res|
47
+ res << begin
48
+ unless slug.empty?
49
+ index = SLUG_V2_LIMIT_LENGTH - murmur_hash.length - SLUG_SEPARATOR.length - 1
50
+ slug[0..index]
51
+ end
52
+ end
53
+ res << murmur_hash
54
+ end.compact.join(SLUG_SEPARATOR)
55
+ end
56
+
57
+ def should_be_slugged?(s)
58
+ consistent_uniq_slug(s) != s || s.length > SLUG_V2_LIMIT_LENGTH
59
+ end
60
+
61
+ def consistent_uniq_slug(s)
62
+ ''.tap do |res|
63
+ status = :empty
64
+ s.to_s.chars.each do |ch|
65
+ next if (s_ch = ch.slugify).empty?
66
+
67
+ if s_ch !~ /[[:punct:]|[:blank:]]/
68
+ res << s_ch
69
+ status = :non_empty if status == :empty
70
+ elsif status == :non_empty && res[-1] != '-'
71
+ res << '-'
72
+ end
73
+ end
74
+ end.chomp('-')
75
+ end
29
76
  end
30
77
  end # Slug
31
78
  end # Dapp
@@ -125,29 +125,43 @@ module Dapp
125
125
  end
126
126
 
127
127
  def image_add_mounts
128
+ image_add_service_mounts
129
+ image_add_custom_mounts
130
+
131
+ image_add_mounts_labels
132
+ end
133
+
134
+ def image_add_service_mounts
128
135
  [:tmp_dir, :build_dir].each do |type|
129
136
  next if (mounts = adding_mounts_by_type(type)).empty?
130
137
 
131
138
  mounts.each do |path|
132
139
  absolute_path = File.expand_path(File.join('/', path))
133
- tmp_path = dimg.send(type, 'mount', absolute_path[1..-1]).tap(&:mkpath)
140
+ tmp_path = dimg.send(type, 'mount', dimg.dapp.consistent_uniq_slugify(absolute_path)).tap(&:mkpath)
134
141
  image.add_volume "#{tmp_path}:#{absolute_path}"
135
142
  end
136
-
137
- image.add_service_change_label :"dapp-mount-#{type.to_s.tr('_', '-')}" => mounts.join(';')
138
143
  end
139
-
140
- image_add_custom_mounts
141
144
  end
142
145
 
143
146
  def image_add_custom_mounts
144
147
  adding_custom_dir_mounts.each do |from, to_pathes|
145
- FileUtils.mkdir_p(from)
148
+ FileUtils.mkdir_p(from) unless File.exist?(from)
146
149
  to_pathes.tap(&:uniq!).map { |to_path| image.add_volume "#{from}:#{to_path}" }
147
150
  image.add_service_change_label :"dapp-mount-custom-dir-#{from.gsub('/', '--')}" => to_pathes.join(';')
148
151
  end
149
152
  end
150
153
 
154
+ def image_add_mounts_labels
155
+ [:tmp_dir, :build_dir].each do |type|
156
+ next if (mounts = adding_mounts_by_type(type)).empty?
157
+ image.add_service_change_label :"dapp-mount-#{type.to_s.tr('_', '-')}" => mounts.join(';')
158
+ end
159
+
160
+ adding_custom_dir_mounts.each do |from, to_pathes|
161
+ image.add_service_change_label :"dapp-mount-custom-dir-#{from.gsub('/', '--')}" => to_pathes.join(';')
162
+ end
163
+ end
164
+
151
165
  def adding_mounts_by_type(type)
152
166
  (config_mounts_by_type(type) + labels_mounts_by_type(type)).uniq
153
167
  end
@@ -45,7 +45,8 @@ module Dapp
45
45
  def add_cleanup_mounts_dirs_command
46
46
  return if config_mounts_dirs.empty?
47
47
  image.add_service_command ["#{dimg.dapp.rm_bin} -rf %s",
48
- "#{dimg.dapp.mkdir_bin} -p %s"].map { |c| format(c, config_mounts_dirs.join(' ')) }
48
+ "#{dimg.dapp.mkdir_bin} -p %s",
49
+ "#{dimg.dapp.rm_bin} -rf %s"].map { |c| format(c, config_mounts_dirs.join(' ')) }
49
50
  end
50
51
 
51
52
  def config_mounts
@@ -59,12 +60,8 @@ module Dapp
59
60
  config_mounts.values.flatten.uniq
60
61
  end
61
62
 
62
- def adding_mounts_by_type(_type)
63
- []
64
- end
65
-
66
- def adding_custom_dir_mounts
67
- []
63
+ def image_add_mounts
64
+ image_add_mounts_labels
68
65
  end
69
66
 
70
67
  def image_should_be_untagged_condition
@@ -85,7 +85,7 @@ module Dapp
85
85
  end
86
86
 
87
87
  def labels
88
- built_image_inspect!.fetch('Config', {}).fetch('Labels', {})
88
+ built_image_inspect!.fetch('Config', {}).fetch('Labels', {}) || {}
89
89
  end
90
90
 
91
91
  def created_at
@@ -1,4 +1,4 @@
1
1
  module Dapp
2
- VERSION = "0.35.11"
2
+ VERSION = "0.35.12"
3
3
  BUILD_CACHE_VERSION = 31
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.35.11
4
+ version: 0.35.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Stolyarov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-10-08 00:00:00.000000000 Z
11
+ date: 2018-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mixlib-shellout