dtc_rake 0.2.0 → 1.0.0.pre.beta.1

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
  SHA1:
3
- metadata.gz: 6e936ce1dd8233c504fd550d981706106fbb4675
4
- data.tar.gz: e49a236edd9125522bc8a74e027557959e763eb9
3
+ metadata.gz: b53d460f92926167b414acdc1707cb901d4df886
4
+ data.tar.gz: 3a3e4e80069f41e0e1f587306e40043317888be8
5
5
  SHA512:
6
- metadata.gz: 670f9356dbb552ebd06f83c107457826e77ba035f87bd1e1071f57b11924c2931f99a3f8a87252fd59c27c3e0a36d62dfe86b5c7914b078fc3550bfc067cc08e
7
- data.tar.gz: 2c7380af4f22b238f1642becc51e81b040d1f1cff2c57f49cc07496c45e8396fd7a5aa29b8081b968f5af02f6844bb17654dd8f5fa322b27087e15655a0ae8cd
6
+ metadata.gz: 30ab3c705160b028ffe6608776194bf49363c7d3ab7c671b1d6f3b0499dbd1dd2ed536a7ccccb6dd0697642b098f97e13b9f343318f9d38034a479a4e71c81d4
7
+ data.tar.gz: a240141486d2011d7a1292cc326dc34bdcd5744fb1685b5a996df3da75a02d8044fca10dfa1a8f5e1c12ddaac50312260e32293ee25a753c7c8da26c7da0c5e6
data/README.md CHANGED
@@ -7,18 +7,16 @@ Rake tasks for building apps produced by DTC.DEV team.
7
7
  Add this line to your application's `Gemfile`:
8
8
 
9
9
  ```ruby
10
- gem "dtc_rake", git: ""ssh://git@codebase.plus4u.net:9422/dtc.rake.git
10
+ gem "dtc_rake"
11
11
  ```
12
12
 
13
13
  And then execute:
14
14
 
15
15
  $ bundle
16
16
 
17
- Or build it yourself from source as:
17
+ Or install it yourself as:
18
18
 
19
- $ git clone ssh://git@codebase.plus4u.net:9422/dtc.rake.git
20
- $ cd dtc.rake/dtc_rake
21
- $ rake install
19
+ $ gem install dtc_rake
22
20
 
23
21
  # Quick Start
24
22
 
@@ -28,14 +26,14 @@ For a quick start just add to your appbox project's `Rakefile`:
28
26
  require "dtc_rake"
29
27
 
30
28
  DtcRake.configure do |config|
31
- config.appbox_uarchive = "<uarchive_path>"
29
+ config.product_code = "<product_code>"
30
+ config.product_name = "<product_name>"
32
31
  config.appbox_territory_code = "<territory_code>"
33
- config.appbox_meta_artifact_code = "<meta_artifact_code>"
34
32
  config.appbox_location_code = "<folder_code>"
35
33
  end
36
34
  ```
37
35
 
38
- *Note: The appbox project name should be `<vendor>_<app>-appbox` and it must contain a uuApp deployment descriptor with default name `<vendor>_<app>-uuapp.json`.*
36
+ *Note: The appbox project name should be `<vendor>_<app>-appbox`. If not, you must specify `config.vendor` and `config.app` within `DtcRake.configure` in `Rakefile`.*
39
37
 
40
38
  All shared tasks will be found and loaded automatically, you can verify it with `rake -T` command.
41
39
 
@@ -61,7 +59,6 @@ rake upload:cmd DTC_RAKE_PASSWD=/path/to/12-345-6
61
59
 
62
60
  The following example shows all configuration options:
63
61
 
64
-
65
62
  ```ruby
66
63
  require "dtc_rake"
67
64
 
@@ -70,7 +67,7 @@ DtcRake.configure do |config|
70
67
  config.app = "<app_code>"
71
68
 
72
69
  # Code of appbox artifact. Guessed from vendor, app and version in uuApp
73
- # deployment descriptor if not set.
70
+ # deployment descriptor if not set. Since 0.2.0.
74
71
  config.appbox_artifact_code = "<artifact_code>"
75
72
 
76
73
  # Code of appbox location (folder or organization unit). Required.
@@ -86,9 +83,10 @@ DtcRake.configure do |config|
86
83
  # If not set, appbox is created with empty content.
87
84
  # Relative path is relative to root_dir.
88
85
  config.appbox_uarchive = "<uarchive_path>"
89
-
90
- # Path to uuApp deployment descriptor. Guessed from vendor and app if not set.
91
- config.app_descriptor_path = "<deployment_descriptor_path>"
86
+
87
+ # Appbox version. Read from VERSION file located in the same directory
88
+ # as Rakefile if not set.
89
+ config.appbox_version = "1.2.3-dev"
92
90
 
93
91
  # Print messages in colors. Default value: true.
94
92
  config.colorize = true
@@ -97,17 +95,64 @@ DtcRake.configure do |config|
97
95
  # Relative path is relative to root_dir.
98
96
  config.output_dir = "target"
99
97
 
98
+ # Code of product the appbox belongs to. Required.
99
+ config.product_code = "UU-CLOUDG01-C3"
100
+
101
+ # Name of product the appbox belongs to. Required.
102
+ config.product_name = "uuCloudg01C3"
103
+
100
104
  # Appbox project root folder. Default value: current working directory.
101
105
  config.root_dir = Dir.pwd
102
106
 
103
- # Upload uuApp deployment descriptor to appbox artifact. Default value: false.
104
- config.upload_app_descriptor = true
107
+ # Upload README.md or README.txt to appbox artifact. Default value: false.
108
+ config.upload_readme = true
109
+
110
+ # Upload uuCloud deployment descriptor to appbox artifact. Default value: false.
111
+ config.upload_uucloud_descriptor = true
112
+
113
+ # Path to uuCloud deployment descriptor. Default value: uucloud_descriptor.json.
114
+ config.uucloud_descriptor_path = "<uucloud_descriptor_path>"
105
115
 
106
116
  # Code of vendor. Guessed from root_dir name if not set.
107
117
  config.vendor = "<vendor_code>"
118
+
119
+ # List of files (or glob patterns) determining which files get updated by
120
+ # version:sync task. Default: none.
121
+ config.version_sync_files = ["../uu_c3/lib/uu_c3/version.rb"]
108
122
  end
109
123
  ```
110
124
 
125
+ `VERSION` file contents example:
126
+
127
+ ```
128
+ 1.2.3-dev
129
+ ```
130
+
131
+ *Note: Leading and trailing whitespace (incl. line breaks) does not matter - it gets stripped/trimmed. Only the version itself is important.*
132
+
133
+ ### Environment Variables
134
+
135
+ Configuration can also be specified in environment variables. Environment variables take precedence over configuration in `Rakefile`.
136
+
137
+ ```
138
+ DTC_RAKE_APP=<app_code>
139
+ DTC_RAKE_APPBOX_ARTIFACT_CODE=<artifact_code>
140
+ DTC_RAKE_APPBOX_LOCATION_CODE=<folder_code>
141
+ DTC_RAKE_APPBOX_META_ARTIFACT_CODE=<meta_artifact_code>
142
+ DTC_RAKE_APPBOX_TERRITORY_CODE=<territory_code>
143
+ DTC_RAKE_APPBOX_UARCHIVE=<uarchive_path>
144
+ DTC_RAKE_APPBOX_VERSION=1.2.3-dev
145
+ DTC_RAKE_COLORIZE=false
146
+ DTC_RAKE_OUTPUT_DIR=target
147
+ DTC_RAKE_PRODUCT_CODE=UU-CLOUDG01-C3
148
+ DTC_RAKE_PRODUCT_NAME=uuCloudg01C3
149
+ DTC_RAKE_ROOT_DIR=<root_dir>
150
+ DTC_RAKE_UPLOAD_README=true
151
+ DTC_RAKE_UPLOAD_UUCLOUD_DESCRIPTOR=true
152
+ DTC_RAKE_UUCLOUD_DESCRIPTOR_PATH=<uucloud_descriptor_path>
153
+ DTC_RAKE_VENDOR=<vendor_code>
154
+ ```
155
+
111
156
  ## Explanation of Provided Tasks
112
157
 
113
158
  ### appbox
@@ -136,7 +181,7 @@ Builds pack with command server. Available if project `<vendor>_<app>-cmd` exist
136
181
 
137
182
  ### build:dockerfiles
138
183
 
139
- Builds pack with `Dockerfile`s. Available if project `<vendor>_<app>-dockerfiles` exists.
184
+ Builds pack with `Dockerfile`s. Available if project `docker` exists.
140
185
 
141
186
  ### build:gem
142
187
 
@@ -148,7 +193,7 @@ Builds pack with visual use cases. Available if project `<vendor>_<app>-vuc` exi
148
193
 
149
194
  ### build:yardoc
150
195
 
151
- Builds pach with command client yardoc. Available if project `<vendor>_<app>` exists.
196
+ Builds pack with command client yardoc. Available if project `<vendor>_<app>` exists.
152
197
 
153
198
  ### upload:all
154
199
 
@@ -162,13 +207,13 @@ Requires `DTC_RAKE_PASSWD` to be set.
162
207
 
163
208
  ### upload:descriptor
164
209
 
165
- Uploads uuApp deployment descriptor to appbox artifact. Available if `config.upload_app_descriptor` is set to `true`.
210
+ Uploads uuApp deployment descriptor to appbox artifact. Available if `config.upload_uucloud_descriptor` is set to `true`.
166
211
 
167
212
  Requires `DTC_RAKE_PASSWD` to be set.
168
213
 
169
214
  ### upload:dockerfiles
170
215
 
171
- Uploads pack with `Dockerfile`s to appbox artifact. Available if project `<vendor>_<app>-dockerfiles` exists.
216
+ Uploads pack with `Dockerfile`s to appbox artifact. Available if project `docker` exists.
172
217
 
173
218
  Requires `DTC_RAKE_PASSWD` to be set.
174
219
 
@@ -186,10 +231,30 @@ Requires `DTC_RAKE_PASSWD` to be set.
186
231
 
187
232
  ### upload:yardoc
188
233
 
189
- Uploads pach with command client yardoc to appbox artifact. Available if project `<vendor>_<app>` exists.
234
+ Uploads pack with command client yardoc to appbox artifact. Available if project `<vendor>_<app>` exists.
190
235
 
191
236
  Requires `DTC_RAKE_PASSWD` to be set.
192
237
 
238
+ ### version
239
+
240
+ Shows the current version stored in `VERSION` file located in the same directory as `Rakefile`.
241
+
242
+ ### version:bump:major
243
+
244
+ Bumps the major version. Updates `VERSION` file located in the same directory as `Rakefile` and files specified in `config.version_files`.
245
+
246
+ ### version:bump:minor
247
+
248
+ Bumps the minor version. Updates `VERSION` file located in the same directory as `Rakefile` and files specified in `config.version_files`.
249
+
250
+ ### version:bump:patch
251
+
252
+ Bumps the patch version. Updates `VERSION` file located in the same directory as `Rakefile` and files specified in `config.version_files`.
253
+
254
+ ### version:set
255
+
256
+ Sets the version. The version may contain *prerelease* and/or *build metadata* parts (see [Semantic Versioning](http://semver.org)). Updates `VERSION` file located in the same directory as `Rakefile` and files specified in `config.version_files`.
257
+
193
258
  # How-to
194
259
 
195
260
  ## How to Add Custom Task
@@ -218,13 +283,6 @@ require "dtc_rake"
218
283
 
219
284
  with
220
285
 
221
- ```ruby
222
- require "dtc_rake/tasks"
223
- DtcRake::Tasks.load_tasks(exclude: ["upload_dockerfiles.rake"])
224
- ```
225
-
226
- To remove check that is used also as dependency for e.g. `upload:all`, it is needed to remove it also from prerequisites of task. Example how to remove `upload:dockerfiles` and do not call it when building all packs.
227
-
228
286
  ```ruby
229
287
  require "dtc_rake/tasks"
230
288
  DtcRake::Tasks.load_tasks(exclude: ["upload_dockerfiles.rake"])
data/Rakefile CHANGED
@@ -1,2 +1,7 @@
1
1
  require "bundler/gem_tasks"
2
2
  task :default => :build
3
+
4
+ require "rake-version"
5
+ RakeVersion::Tasks.new do |v|
6
+ v.copy "lib/dtc_rake/version.rb"
7
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0-beta.1
data/dtc_rake.gemspec CHANGED
@@ -22,7 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_runtime_dependency "rainbow", "~> 2.1.0"
23
23
  spec.add_runtime_dependency "uu_os", "~> 0.19"
24
24
  spec.add_runtime_dependency "uu_os_commons", "~> 1.5"
25
+ spec.add_runtime_dependency "rake-version", "~> 1.0"
25
26
 
26
27
  spec.add_development_dependency "bundler", "~> 1.13", ">= 1.13.3"
27
- spec.add_development_dependency "rake", "~> 10.0"
28
+ spec.add_development_dependency "rake", "~> 11.0"
28
29
  end
@@ -3,7 +3,9 @@ require "pathname"
3
3
 
4
4
  module DtcRake
5
5
  def configure(&block)
6
- yield Config.instance
6
+ config = Config.instance
7
+ yield config
8
+ config.validate!
7
9
  end
8
10
  module_function :configure
9
11
 
@@ -11,19 +13,21 @@ module DtcRake
11
13
  include Singleton
12
14
 
13
15
  def initialize
14
- @root_dir = Dir.pwd
15
- @output_dir = "target"
16
- @colorize = true
17
- @appbox_meta_artifact_code = "UU.OS/RUNTIME/APP_BOX"
18
- @upload_app_descriptor = false
16
+ self.root_dir = Dir.pwd
17
+ self.output_dir = "target"
18
+ self.colorize = true
19
+ self.upload_readme = false
20
+ self.appbox_meta_artifact_code = "UU.OS/RUNTIME/APP_BOX"
21
+ self.upload_uucloud_descriptor = false
22
+ self.version_files = []
19
23
  guess_vendor_and_app
20
24
  end
21
25
 
22
26
  # Code of application. Guessed from root_dir name if not set.
23
27
  attr_accessor :app
24
28
 
25
- # Code of appbox artifact. Guessed from vendor, app and version in uuApp
26
- # deployment descriptor if not set.
29
+ # Code of appbox artifact. Guessed from product_code and appbox_version
30
+ # if not set.
27
31
  attr_accessor :appbox_artifact_code
28
32
 
29
33
  # Code of appbox location (folder or organization unit). Required.
@@ -40,8 +44,9 @@ module DtcRake
40
44
  # Relative path is relative to root_dir.
41
45
  attr_accessor :appbox_uarchive
42
46
 
43
- # Path to uuApp deployment descriptor. Guessed from vendor and app if not set.
44
- attr_accessor :app_descriptor_path
47
+ # Appbox version. Read from VERSION file located in the same directory
48
+ # as Rakefile if not set.
49
+ attr_accessor :appbox_version
45
50
 
46
51
  # Print messages in colors. Default value: true.
47
52
  attr_accessor :colorize
@@ -50,45 +55,302 @@ module DtcRake
50
55
  # Relative path is relative to root_dir.
51
56
  attr_accessor :output_dir
52
57
 
58
+ # Code of product the appbox belongs to. Required.
59
+ attr_accessor :product_code
60
+
61
+ # Name of product the appbox belongs to. Required.
62
+ attr_accessor :product_name
63
+
53
64
  # Appbox project root folder. Default value: current working directory.
54
65
  attr_accessor :root_dir
55
66
 
67
+ # Upload README.md or README.txt to appbox artifact. Default value: false.
68
+ attr_accessor :upload_readme
69
+
56
70
  # Upload uuApp deployment descriptor to appbox artifact. Default value: false.
57
- attr_accessor :upload_app_descriptor
71
+ attr_accessor :upload_uucloud_descriptor
72
+
73
+ # Path to uuApp deployment descriptor. Default value: uucloud_descriptor.json.
74
+ attr_accessor :uucloud_descriptor_path
58
75
 
59
76
  # Code of vendor. Guessed from root_dir name if not set.
60
77
  attr_accessor :vendor
61
78
 
79
+ # List of files (or glob patterns) determining which files get updated by
80
+ # version:* tasks. Default: none.
81
+ attr_accessor :version_files
82
+
83
+ def validate!
84
+ %w(appbox_location_code appbox_territory_code product_code product_name).each do |param|
85
+ if instance_variable_get("@#{param}").nil?
86
+ _error "Required parameter #{param} is not set. Set it within DtcRake.configure in your Rakefile."
87
+ end
88
+ end
89
+ end
90
+
62
91
  def app=(name)
63
92
  @app = name.downcase unless name.nil?
64
93
  end
65
94
 
95
+ def appbox_artifact_code
96
+ return @appbox_artifact_code if @appbox_artifact_code
97
+
98
+ @appbox_artifact_code = ENV["DTC_RAKE_APPBOX_ARTIFACT_CODE"]
99
+
100
+ if @appbox_artifact_code.nil?
101
+ default_code = "#{product_code}/APPBOX-#{appbox_version}"
102
+ @appbox_artifact_code = default_code
103
+ end
104
+
105
+ @appbox_artifact_code
106
+ end
107
+
108
+ def appbox_artifact_code=(code)
109
+ env = ENV["DTC_RAKE_APPBOX_ARTIFACT_CODE"]
110
+ # environment variable takes precedence
111
+ @appbox_artifact_code = env.nil? ? code : env
112
+ @appbox_artifact_code
113
+ end
114
+
115
+ def appbox_location_code
116
+ return @appbox_location_code if @appbox_location_code
117
+
118
+ @appbox_location_code = ENV["DTC_RAKE_APPBOX_LOCATION_CODE"]
119
+ @appbox_location_code
120
+ end
121
+
122
+ def appbox_location_code=(code)
123
+ env = ENV["DTC_RAKE_APPBOX_LOCATION_CODE"]
124
+ # environment variable takes precedence
125
+ @appbox_location_code = env.nil? ? code : env
126
+ @appbox_location_code
127
+ end
128
+
129
+ def appbox_meta_artifact_code
130
+ return @appbox_meta_artifact_code if @appbox_meta_artifact_code
131
+
132
+ @appbox_meta_artifact_code = ENV["DTC_RAKE_APPBOX_META_ARTIFACT_CODE"]
133
+ @appbox_meta_artifact_code
134
+ end
135
+
136
+ def appbox_meta_artifact_code=(code)
137
+ env = ENV["DTC_RAKE_APPBOX_META_ARTIFACT_CODE"]
138
+ # environment variable takes precedence
139
+ @appbox_meta_artifact_code = env.nil? ? code : env
140
+ @appbox_meta_artifact_code
141
+ end
142
+
143
+ def appbox_territory_code
144
+ return @appbox_territory_code if @appbox_territory_code
145
+
146
+ @appbox_territory_code = ENV["DTC_RAKE_APPBOX_TERRITORY_CODE"]
147
+ @appbox_territory_code
148
+ end
149
+
150
+ def appbox_territory_code=(code)
151
+ env = ENV["DTC_RAKE_APPBOX_TERRITORY_CODE"]
152
+ # environment variable takes precedence
153
+ @appbox_territory_code = env.nil? ? code : env
154
+ @appbox_territory_code
155
+ end
156
+
157
+ def appbox_uarchive
158
+ return @appbox_uarchive if @appbox_uarchive
159
+
160
+ @appbox_uarchive = ENV["DTC_RAKE_APPBOX_UARCHIVE"]
161
+ @appbox_uarchive
162
+ end
163
+
66
164
  def appbox_uarchive=(path)
165
+ env = ENV["DTC_RAKE_APPBOX_UARCHIVE"]
166
+ # environment variable takes precedence
167
+ path = env unless env.nil?
168
+
67
169
  unless path.nil?
68
- path = File.join(root_dir, path) if Pathname.new(path).relative?
69
170
  # File.expand_path converts path to absolute and expands "~" to real user home path
70
- @appbox_uarchive = File.expand_path(path)
171
+ path = File.expand_path(path)
172
+
173
+ if Pathname.new(path).relative?
174
+ @appbox_uarchive = File.join(root_dir, path)
175
+ else
176
+ @appbox_uarchive = path
177
+ end
71
178
  end
72
179
  end
73
180
 
74
- def app_descriptor_path
75
- return @app_descriptor_path if @app_descriptor_path
181
+ def appbox_version
182
+ return @appbox_version if @appbox_version
76
183
 
77
- default_file_path = File.expand_path(File.join(root_dir, "#{vendor}_#{app}-uuapp-deploy.json"))
184
+ @appbox_version = ENV["DTC_RAKE_APPBOX_VERSION"]
78
185
 
79
- Dir.chdir(root_dir) do
80
- unless File.file?(default_file_path)
81
- abort "uuApp deployment descriptor not found. Please create file #{default_file_path} or configure its path in Rakefile."
186
+ if @appbox_version.nil?
187
+ version_file = File.join(root_dir, 'VERSION')
188
+ unless File.file?(version_file)
189
+ _error "Unknown appbox version. Set it in #{version_file} file or DTC_RAKE_APPBOX_VERSION environment variable."
82
190
  end
83
- @app_descriptor_path = default_file_path
191
+ version = File.binread(version_file).strip
192
+ @appbox_version = version
193
+ end
194
+ end
195
+
196
+ def appbox_version=(code)
197
+ env = ENV["DTC_RAKE_APPBOX_VERSION"]
198
+ # environment variable takes precedence
199
+ @appbox_version = env.nil? ? code : env
200
+ @appbox_version
201
+ end
202
+
203
+ def colorize
204
+ return @colorize if @colorize
205
+
206
+ env = ENV["DTC_RAKE_COLORIZE"]
207
+ unless env.nil?
208
+ @colorize = to_bool(env)
84
209
  end
210
+ @colorize
211
+ end
212
+
213
+ def colorize=(flag)
214
+ env = ENV["DTC_RAKE_COLORIZE"]
215
+ # environment variable takes precedence
216
+ if env.nil?
217
+ @colorize = flag
218
+ else
219
+ @colorize = to_bool(env)
220
+ end
221
+ @colorize
222
+ end
223
+
224
+ def output_dir
225
+ return @output_dir if @output_dir
226
+
227
+ @output_dir = ENV["DTC_RAKE_OUTPUT_DIR"]
228
+ @output_dir
85
229
  end
86
230
 
87
231
  def output_dir=(path)
232
+ env = ENV["DTC_RAKE_OUTPUT_DIR"]
233
+ # environment variable takes precedence
234
+ path = env unless env.nil?
235
+
236
+ unless path.nil?
237
+ # File.expand_path converts path to absolute and expands "~" to real user home path
238
+ path = File.expand_path(path)
239
+
240
+ if Pathname.new(path).relative?
241
+ @output_dir = File.join(root_dir, path)
242
+ else
243
+ @output_dir = path
244
+ end
245
+ end
246
+ end
247
+
248
+ def product_code
249
+ return @product_code if @product_code
250
+
251
+ @product_code = ENV["DTC_RAKE_PRODUCT_CODE"]
252
+ @product_code
253
+ end
254
+
255
+ def product_code=(code)
256
+ env = ENV["DTC_RAKE_PRODUCT_CODE"]
257
+ # environment variable takes precedence
258
+ @product_code = env.nil? ? code : env
259
+ @product_code
260
+ end
261
+
262
+ def product_name
263
+ return @product_name if @product_name
264
+
265
+ @product_name = ENV["DTC_RAKE_PRODUCT_NAME"]
266
+ @product_name
267
+ end
268
+
269
+ def product_name=(name)
270
+ env = ENV["DTC_RAKE_PRODUCT_NAME"]
271
+ # environment variable takes precedence
272
+ @product_name = env.nil? ? name : env
273
+ @product_name
274
+ end
275
+
276
+ def root_dir
277
+ return @root_dir if @root_dir
278
+
279
+ @root_dir = ENV["DTC_RAKE_ROOT_DIR"]
280
+ @root_dir = Dir.pwd if @root_dir.nil?
281
+
282
+ @root_dir
283
+ end
284
+
285
+ def root_dir=(path)
286
+ env = ENV["DTC_RAKE_ROOT_DIR"]
287
+ # environment variable takes precedence
288
+ path = env unless env.nil?
289
+
88
290
  unless path.nil?
89
- path = File.join(root_dir, path) if Pathname.new(path).relative?
90
291
  # File.expand_path converts path to absolute and expands "~" to real user home path
91
- @output_dir = File.expand_path(path)
292
+ # If the path is relative, it gets evaluated against to current working directory (Dir.pwd)
293
+ @root_dir = File.expand_path(path)
294
+ end
295
+ end
296
+
297
+ def upload_readme
298
+ return @upload_readme if @upload_readme
299
+
300
+ @upload_readme = to_bool(ENV["DTC_RAKE_UPLOAD_README"])
301
+ @upload_readme
302
+ end
303
+
304
+ def upload_readme=(flag)
305
+ env = ENV["DTC_RAKE_UPLOAD_README"]
306
+ # environment variable takes precedence
307
+ if env.nil?
308
+ @upload_readme = flag
309
+ else
310
+ @upload_readme = to_bool(env)
311
+ end
312
+ @upload_readme
313
+ end
314
+
315
+ def upload_uucloud_descriptor
316
+ return @upload_uucloud_descriptor if @upload_uucloud_descriptor
317
+
318
+ @upload_uucloud_descriptor = to_bool(ENV["DTC_RAKE_UPLOAD_UUCLOUD_DESCRIPTOR"])
319
+ @upload_uucloud_descriptor
320
+ end
321
+
322
+ def upload_uucloud_descriptor=(flag)
323
+ env = ENV["DTC_RAKE_UPLOAD_UUCLOUD_DESCRIPTOR"]
324
+ # environment variable takes precedence
325
+ if env.nil?
326
+ @upload_uucloud_descriptor = flag
327
+ else
328
+ @upload_uucloud_descriptor = to_bool(env)
329
+ end
330
+ @upload_uucloud_descriptor
331
+ end
332
+
333
+ def uucloud_descriptor_path
334
+ return @uucloud_descriptor_path if @uucloud_descriptor_path
335
+
336
+ env = ENV["DTC_RAKE_UUCLOUD_DESCRIPTOR_PATH"]
337
+ if env.nil?
338
+ default_file_path = File.expand_path(File.join(root_dir, "uucloud_descriptor.json"))
339
+
340
+ Dir.chdir(root_dir) do
341
+ unless File.file?(default_file_path)
342
+ _error "uuCloud deployment descriptor not found. Please create file #{default_file_path} or configure its path in Rakefile." \
343
+ " Or you can configure its path in DTC_RAKE_UUCLOUD_DESCRIPTOR_PATH environment variable."
344
+ end
345
+ @uucloud_descriptor_path = default_file_path
346
+ end
347
+ else
348
+ env = File.expand_path(env)
349
+ unless File.file?(env)
350
+ _error "uuCloud deployment descriptor not found. Please create file #{env} or configure its path in" \
351
+ " DTC_RAKE_UUCLOUD_DESCRIPTOR_PATH environment variable."
352
+ end
353
+ @uucloud_descriptor_path = env
92
354
  end
93
355
  end
94
356
 
@@ -96,17 +358,48 @@ module DtcRake
96
358
  @vendor = name.downcase unless name.nil?
97
359
  end
98
360
 
361
+ def version_files=(list)
362
+ if list.nil?
363
+ @version_files = []
364
+ elsif list.is_a?(Array)
365
+ @version_files = list
366
+ else
367
+ _error "Invalid version_files value - #{list} (#{list})." \
368
+ " Use an array of strings (representing file names or glob patterns)."
369
+ end
370
+ end
371
+
99
372
  private
100
373
 
374
+ def to_bool(value)
375
+ (value =~ /^true|1|yes$/i) == 0
376
+ end
377
+
101
378
  def guess_vendor_and_app
102
- base_name = File.basename(root_dir)
103
- if /([^_]+)_([^-]+)-appbox/ =~ base_name
104
- @vendor = $1
105
- @app = $2
379
+ env_vendor = ENV["DTC_RAKE_VENDOR"]
380
+ env_app = ENV["DTC_RAKE_APP"]
381
+
382
+ if env_vendor.nil? || env_app.nil?
383
+ base_name = File.basename(root_dir)
384
+ if /([^_]+)_([^-]+)-appbox/ =~ base_name
385
+ @vendor = env_vendor.nil? ? $1 : env_vendor
386
+ @app = env_app.nil? ? $2 : env_app
387
+ else
388
+ _error "Appbox root folder (#{base_name}) does not match naming convention <vendor>_<app>-appbox." \
389
+ " Either change the folder name or configure 'vendor' and 'app' within DtcRake.configure in Rakefile." \
390
+ " Or you can set DTC_RAKE_VENDOR and DTC_RAKE_APP environment variables to specify those."
391
+ end
106
392
  else
107
- abort "Appbox root folder (#{base_name}) does not match naming convention <vendor>_<app>-appbox." \
108
- " Either change the folder name or configure 'vendor' and 'app' in Rakefile."
393
+ @vendor = env_vendor
394
+ @app = env_app
109
395
  end
110
396
  end
397
+
398
+ def _error(msg)
399
+ # this avoids cycle between dtc_rake/config and dtc_rake/ui
400
+ require "dtc_rake/ui"
401
+ self.class.send(:include, DtcRake::UI) unless self.class.include?(DtcRake::UI)
402
+ error(msg)
403
+ end
111
404
  end
112
405
  end
@@ -40,55 +40,51 @@ module DtcRake
40
40
  @has_dockerfiles = File.directory?(@dockerfiles_project)
41
41
  end
42
42
 
43
- def app_descriptor
44
- return @app_descriptor if @app_descriptor
43
+ def uucloud_descriptor
44
+ return @uucloud_descriptor if @uucloud_descriptor
45
45
 
46
- File.open(Config.instance.app_descriptor_path, "r") do |f|
47
- @app_descriptor = JSON.parse(f.read, symbolize_names: true)
46
+ # TODO: Use app.json instead of uucloud_descriptor.json for appbox metadata
47
+ File.open(Config.instance.uucloud_descriptor_path, "r") do |f|
48
+ @uucloud_descriptor = JSON.parse(f.read, symbolize_names: true)
48
49
  end
49
50
  end
50
51
 
51
52
  def version
52
- app_descriptor[:data][:version]
53
+ config = Config.instance
54
+ config.appbox_version
53
55
  end
54
56
 
55
57
  def appbox_uri
56
58
  return @appbox_uri if @appbox_uri
57
59
 
58
60
  config = Config.instance
59
- error("Territory code is not set. Set it in DtcRake.configure (attribute appbox_territory_code) in your Rakefile.") if config.appbox_territory_code.nil?
60
- appbox_artifact_code = config.appbox_artifact_code || "#{config.vendor.upcase}.#{config.app.upcase}_#{version}"
61
- appbox_uri = UU::OS::UESURI.create(territory_code: config.appbox_territory_code, artifact_code: appbox_artifact_code)
61
+ appbox_uri = UU::OS::UESURI.create(territory_code: config.appbox_territory_code, artifact_code: config.appbox_artifact_code)
62
62
  @appbox_uri = appbox_uri
63
63
  end
64
64
 
65
65
  def gem_file_name
66
66
  return @gem_file_name if defined? @gem_file_name
67
67
  config = Config.instance
68
- # TODO Read version from version.rb or allow to override it from within the Rakefile
69
68
  # the actual gem version differs - e.g. uu_operation_registry-1.3.0.pre.BETA.1.gem (NOT uu_operation_registry-1.3.0-BETA.1.gem)
70
- gem_version = version.sub(/-(ALPHA|BETA|RC)/) { |match| ".pre.#{$1}" }
69
+ gem_version = version.sub(/-(dev|ALPHA|BETA|RC)/) { |_| ".pre.#{$1}" }
71
70
  @gem_file_name = "#{config.vendor}_#{config.app}-#{gem_version}.gem"
72
71
  end
73
72
 
74
73
  def cmd_file_name
75
74
  return @cmd_file_name if defined? @cmd_file_name
76
75
  config = Config.instance
77
- # TODO Read version from version.rb or allow to override it from within the Rakefile
78
76
  @cmd_file_name = "#{config.vendor}_#{config.app}-cmd-#{version}.war"
79
77
  end
80
78
 
81
79
  def vuc_file_name
82
80
  return @vuc_file_name if defined? @vuc_file_name
83
81
  config = Config.instance
84
- # TODO Read version from version.rb or allow to override it from within the Rakefile
85
82
  @vuc_file_name = "#{config.vendor}_#{config.app}-vuc-#{version}.war"
86
83
  end
87
84
 
88
85
  def dockerfiles_file_name
89
86
  return @dockerfiles_file_name if defined? @dockerfiles_file_name
90
87
  config = Config.instance
91
- # TODO Read version from version.rb or allow to override it from within the Rakefile
92
88
  @dockerfiles_file_name = "#{config.vendor}_#{config.app}-dockerfiles-#{version}.zip"
93
89
  end
94
90
 
@@ -128,10 +124,16 @@ module DtcRake
128
124
  @yardoc_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/YARDOC-PACK"
129
125
  end
130
126
 
131
- def app_descriptor_attachment_code
132
- return @app_descriptor_attachment_code if defined? @app_descriptor_attachment_code
127
+ def uucloud_descriptor_attachment_code
128
+ return @uucloud_descriptor_attachment_code if defined? @uucloud_descriptor_attachment_code
129
+ config = Config.instance
130
+ @uucloud_descriptor_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/UUAPP-DEPLOY"
131
+ end
132
+
133
+ def readme_attachment_code
134
+ return @readme_attachment_code if defined? @readme_attachment_code
133
135
  config = Config.instance
134
- @app_descriptor_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/UUAPP-DEPLOY"
136
+ @readme_attachment_code = "#{config.vendor.upcase}.#{config.app.upcase}/README"
135
137
  end
136
138
  end
137
139
  end
data/lib/dtc_rake/ui.rb CHANGED
@@ -1,37 +1,45 @@
1
1
  module DtcRake
2
2
  module UI
3
3
  def error(msg)
4
- msg = Rainbow(msg).red if colorize?
4
+ if DtcRake::UI.colorize?
5
+ msg = Rainbow(msg).red
6
+ end
5
7
  abort msg
6
8
  end
7
9
  module_function :error
8
10
 
9
11
  def announce(msg)
10
- msg = Rainbow(msg).aqua if colorize?
12
+ if DtcRake::UI.colorize?
13
+ msg = Rainbow(msg).aqua
14
+ end
11
15
  puts msg
12
16
  end
13
17
  module_function :announce
14
18
 
15
19
  def success(msg)
16
- msg = Rainbow(msg).green if colorize?
20
+ if DtcRake::UI.colorize?
21
+ msg = Rainbow(msg).green
22
+ end
17
23
  puts msg
18
24
  end
19
25
  module_function :success
20
26
 
21
27
  def warning(msg)
22
- msg = Rainbow(msg).yellow if colorize?
28
+ if DtcRake::UI.colorize?
29
+ msg = Rainbow(msg).yellow
30
+ end
23
31
  puts msg
24
32
  end
25
33
  module_function :warning
26
34
 
27
35
  def info(msg)
28
- msg = Rainbow(msg).white if colorize?
36
+ if DtcRake::UI.colorize?
37
+ msg = Rainbow(msg).white
38
+ end
29
39
  puts msg
30
40
  end
31
41
  module_function :info
32
42
 
33
- private
34
-
35
43
  def colorize?
36
44
  return @colorize if defined? @colorize
37
45
 
@@ -45,5 +53,6 @@ module DtcRake
45
53
  end
46
54
  @colorize = colorize
47
55
  end
56
+ module_function :colorize?
48
57
  end
49
58
  end
@@ -1,3 +1,3 @@
1
1
  module DtcRake
2
- VERSION = "0.2.0"
2
+ VERSION = "1.0.0-beta.1"
3
3
  end
@@ -5,6 +5,8 @@ require "dtc_rake/product"
5
5
  require "dtc_rake/ui"
6
6
 
7
7
  require "uu/os/security/session"
8
+ require "uu/os/uesuri"
9
+ require "uu/os/search"
8
10
  require "uu/os/artifact"
9
11
  require "uu/os/sheet"
10
12
  require "uu/os/rest/binary_value"
@@ -24,7 +26,7 @@ def create_appbox(attrs)
24
26
  config = DtcRake::Config.instance
25
27
  product = DtcRake::Product.instance
26
28
  credentials = attrs[:credentials]
27
- version = attrs.fetch(:version, product.version)
29
+ version = attrs.fetch(:version, config.appbox_version)
28
30
  icon = attrs.fetch(:icon, %q(ues:#{system}:#{ues_v5.core_v1.codetable_v1.base_v1.CodeTable_Icons}:#{ART_364}))
29
31
 
30
32
  error("Specify appbox location code - set it in DtcRake.configure block (attribute appbox_location_code) in your Rakefile") unless config.appbox_location_code
@@ -37,8 +39,15 @@ def create_appbox(attrs)
37
39
  UU::OS::Security::Session.login(credentials)
38
40
 
39
41
  config = DtcRake::Config.instance
40
- art_name = "#{product.app_descriptor[:data][:name]} #{version}"
41
- art_code = config.appbox_artifact_code || "#{product.app_descriptor[:data][:code]}_#{version}"
42
+ art_name = "#{config.product_name} #{version} AppBox"
43
+ art_code = config.appbox_artifact_code
44
+
45
+ art_uri = UU::OS::UESURI.create(territory_code: config.appbox_territory_code, artifact_code: art_code)
46
+ if UU::OS::Search.exists(art_uri)
47
+ info "Appbox #{art_uri} already exists"
48
+ return
49
+ end
50
+
42
51
  announce "Creating appbox #{art_code} in territory #{config.appbox_territory_code}"
43
52
 
44
53
  appbox_uri = UU::OS::Artifact.create(location,
@@ -86,5 +95,5 @@ task :appbox do
86
95
  credentials: ENV["DTC_RAKE_PASSWD"],
87
96
  version: ENV["VERSION"] || DtcRake::Product.instance.version
88
97
  )
89
- success "Appbox #{art_uri} created"
98
+ success "Appbox #{art_uri} created" unless art_uri.nil?
90
99
  end
@@ -14,7 +14,8 @@ end
14
14
  deps << :cmd if product.has_cmd
15
15
  deps << :vuc if product.has_vuc
16
16
  deps << :dockerfiles if product.has_dockerfiles
17
- deps << :descriptor if config.upload_app_descriptor
17
+ deps << :descriptor if config.upload_uucloud_descriptor
18
+ deps << :readme if config.upload_readme
18
19
 
19
20
  namespace :upload do
20
21
  desc "Uploads all packs to appbox artifact; requires path to password file"
@@ -9,10 +9,10 @@ include DtcRake::UI
9
9
  product = DtcRake::Product.instance
10
10
  config = DtcRake::Config.instance
11
11
 
12
- if config.upload_app_descriptor
12
+ if config.upload_uucloud_descriptor
13
13
  namespace :upload do
14
14
  desc <<-DESC.gsub(/^ {4}/, '')
15
- Uploads uuApp deployment descriptor to appbox artifact; requires path to password file.
15
+ Uploads uuCloud deployment descriptor to appbox artifact; requires path to password file.
16
16
 
17
17
  rake upload:descriptor DTC_RAKE_PASSWD=12-345-6
18
18
  ("~/.uu/12-345-6" will be used)
@@ -23,11 +23,11 @@ if config.upload_app_descriptor
23
23
  task :descriptor do
24
24
  error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:descriptor DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
25
25
 
26
- the_file = config.app_descriptor_path
26
+ the_file = config.uucloud_descriptor_path
27
27
  error("File #{the_file} does not exist") unless File.file?(the_file)
28
28
 
29
29
  art_uri = product.appbox_uri
30
- attch_code = product.app_descriptor_attachment_code
30
+ attch_code = product.uucloud_descriptor_attachment_code
31
31
  announce "Uploading #{the_file} to #{art_uri}:#{attch_code}..."
32
32
  attch_uri = DtcRake.upload_pack(
33
33
  file: the_file,
@@ -0,0 +1,47 @@
1
+ require "rake"
2
+ require "fileutils"
3
+ require "dtc_rake/config"
4
+ require "dtc_rake/product"
5
+ require "dtc_rake/ui"
6
+ require "dtc_rake/util"
7
+
8
+ include DtcRake::UI
9
+ product = DtcRake::Product.instance
10
+ config = DtcRake::Config.instance
11
+
12
+ if config.upload_readme
13
+ namespace :upload do
14
+ desc <<-DESC.gsub(/^ {4}/, '')
15
+ Uploads README.md or README.txt to appbox artifact; requires path to password file.
16
+
17
+ rake upload:readme DTC_RAKE_PASSWD=12-345-6
18
+ ("~/.uu/12-345-6" will be used)
19
+
20
+ rake upload:readme DTC_RAKE_PASSWD=/path/to/12-345-6
21
+ (password file from the specified path will be used)
22
+ DESC
23
+ task :readme do
24
+ error("Specify password file in env variable DTC_RAKE_PASSWD, e.g. rake upload:readme DTC_RAKE_PASSWD=12-345-6") unless ENV["DTC_RAKE_PASSWD"]
25
+
26
+ readme_dir = File.expand_path(File.join(config.root_dir, ".."))
27
+ readme = File.join(readme_dir, "README.md")
28
+ unless File.file?(readme)
29
+ readme = File.join(readme_dir, "README.txt")
30
+ unless File.file?(readme)
31
+ error("Neither README.md nor README.txt found in #{readme_dir}")
32
+ end
33
+ end
34
+
35
+ art_uri = product.appbox_uri
36
+ attch_code = product.readme_attachment_code
37
+ announce "Uploading #{readme} to #{art_uri}:#{attch_code}..."
38
+ attch_uri = DtcRake.upload_pack(
39
+ file: readme,
40
+ appbox_uri: art_uri,
41
+ attachment_code: attch_code,
42
+ credentials: ENV["DTC_RAKE_PASSWD"]
43
+ )
44
+ success "File #{readme} uploaded to #{attch_uri}"
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ begin
2
+ require "rake-version"
3
+ rescue LoadError => e
4
+ abort "WARNING: Failed to load rake-version gem - cause: #{e.message}.\n" \
5
+ "\tYou won't be able to manipulate with version via Rake tasks until you resolve the problem."
6
+ end
7
+
8
+ require "rake"
9
+ require "dtc_rake/config"
10
+ require "dtc_rake/ui"
11
+
12
+ include DtcRake::UI
13
+ config = DtcRake::Config.instance
14
+
15
+ RakeVersion::Tasks.new do |v|
16
+ v.copy *config.version_files, all: true
17
+ end
metadata CHANGED
@@ -1,116 +1,131 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dtc_rake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0.pre.beta.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Sibil
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-02 00:00:00.000000000 Z
11
+ date: 2017-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: json
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "~>"
16
+ - - ~>
18
17
  - !ruby/object:Gem::Version
19
18
  version: 1.8.3
20
- type: :runtime
19
+ name: json
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.8.3
27
27
  - !ruby/object:Gem::Dependency
28
- name: rainbow
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
- - - "~>"
30
+ - - ~>
32
31
  - !ruby/object:Gem::Version
33
32
  version: 2.1.0
34
- type: :runtime
33
+ name: rainbow
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.1.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: uu_os
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - "~>"
44
+ - - ~>
46
45
  - !ruby/object:Gem::Version
47
46
  version: '0.19'
48
- type: :runtime
47
+ name: uu_os
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.19'
55
55
  - !ruby/object:Gem::Dependency
56
- name: uu_os_commons
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "~>"
58
+ - - ~>
60
59
  - !ruby/object:Gem::Version
61
60
  version: '1.5'
62
- type: :runtime
61
+ name: uu_os_commons
63
62
  prerelease: false
63
+ type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.5'
69
69
  - !ruby/object:Gem::Dependency
70
- name: bundler
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
- - - "~>"
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '1.0'
75
+ name: rake-version
76
+ prerelease: false
77
+ type: :runtime
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
74
87
  - !ruby/object:Gem::Version
75
88
  version: '1.13'
76
- - - ">="
89
+ - - '>='
77
90
  - !ruby/object:Gem::Version
78
91
  version: 1.13.3
79
- type: :development
92
+ name: bundler
80
93
  prerelease: false
94
+ type: :development
81
95
  version_requirements: !ruby/object:Gem::Requirement
82
96
  requirements:
83
- - - "~>"
97
+ - - ~>
84
98
  - !ruby/object:Gem::Version
85
99
  version: '1.13'
86
- - - ">="
100
+ - - '>='
87
101
  - !ruby/object:Gem::Version
88
102
  version: 1.13.3
89
103
  - !ruby/object:Gem::Dependency
90
- name: rake
91
104
  requirement: !ruby/object:Gem::Requirement
92
105
  requirements:
93
- - - "~>"
106
+ - - ~>
94
107
  - !ruby/object:Gem::Version
95
- version: '10.0'
96
- type: :development
108
+ version: '11.0'
109
+ name: rake
97
110
  prerelease: false
111
+ type: :development
98
112
  version_requirements: !ruby/object:Gem::Requirement
99
113
  requirements:
100
- - - "~>"
114
+ - - ~>
101
115
  - !ruby/object:Gem::Version
102
- version: '10.0'
103
- description:
116
+ version: '11.0'
117
+ description:
104
118
  email:
105
119
  - 21-1@plus4u.net
106
120
  executables: []
107
121
  extensions: []
108
122
  extra_rdoc_files: []
109
123
  files:
110
- - ".gitignore"
124
+ - .gitignore
111
125
  - Gemfile
112
126
  - README.md
113
127
  - Rakefile
128
+ - VERSION
114
129
  - bin/console
115
130
  - bin/setup
116
131
  - dtc_rake.gemspec
@@ -133,29 +148,31 @@ files:
133
148
  - lib/tasks/upload_descriptor.rake
134
149
  - lib/tasks/upload_dockerfiles.rake
135
150
  - lib/tasks/upload_gem.rake
151
+ - lib/tasks/upload_readme.rake
136
152
  - lib/tasks/upload_vuc.rake
137
153
  - lib/tasks/upload_yardoc.rake
138
- homepage:
154
+ - lib/tasks/version.rake
155
+ homepage:
139
156
  licenses: []
140
157
  metadata: {}
141
- post_install_message:
158
+ post_install_message:
142
159
  rdoc_options: []
143
160
  require_paths:
144
161
  - lib
145
162
  required_ruby_version: !ruby/object:Gem::Requirement
146
163
  requirements:
147
- - - ">="
164
+ - - '>='
148
165
  - !ruby/object:Gem::Version
149
166
  version: '0'
150
167
  required_rubygems_version: !ruby/object:Gem::Requirement
151
168
  requirements:
152
- - - ">="
169
+ - - '>'
153
170
  - !ruby/object:Gem::Version
154
- version: '0'
171
+ version: 1.3.1
155
172
  requirements: []
156
- rubyforge_project:
157
- rubygems_version: 2.4.5.2
158
- signing_key:
173
+ rubyforge_project:
174
+ rubygems_version: 2.4.8
175
+ signing_key:
159
176
  specification_version: 4
160
177
  summary: Rake tasks for building apps produced by DTC.DEV team.
161
178
  test_files: []