rake_fly 2.10.0.pre.1 → 2.10.0.pre.4

Sign up to get free protection for your applications and to get access to all the features.
data/lib/rake_fly.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'semantic'
2
4
  require 'rake_dependencies'
3
5
  require 'ruby_fly'
@@ -11,42 +13,15 @@ module RakeFly
11
13
  ARTIFACT_FORMAT_CHANGE_VERSION = '5.0.0'
12
14
 
13
15
  def self.define_installation_tasks(opts = {})
14
- namespace = opts[:namespace] || :fly
15
- version = opts[:version] || '2.7.0'
16
- path = opts[:path] || File.join('vendor', 'fly')
17
-
18
- type = self.type(version)
19
- uri_template = self.uri_template(version)
20
- file_name_template = self.file_name_template(version)
21
- new_format = self.new_format?(version)
22
-
23
- task_set_opts = {
24
- namespace: namespace,
25
- dependency: 'fly',
26
- version: version,
27
- path: path,
28
- type: type,
29
- platform_os_names: {darwin: 'darwin', linux: 'linux'},
30
- uri_template: uri_template,
31
- file_name_template: file_name_template,
32
- needs_fetch: lambda { |t|
33
- fly_binary = File.join(t.path, t.binary_directory, 'fly')
34
-
35
- !(File.exist?(fly_binary) && RubyFly.version == version)
36
- }}
37
-
38
- unless new_format
39
- task_set_opts[:source_binary_name_template] =
40
- "fly_<%= @platform_os_name %>_amd64"
41
- task_set_opts[:target_binary_name_template] =
42
- "fly"
43
- end
16
+ option_resolver = OptionResolver.new(opts)
44
17
 
45
18
  RubyFly.configure do |c|
46
- c.binary = File.join(path, 'bin', 'fly')
19
+ c.binary = option_resolver.fly_binary_path
47
20
  end
48
21
 
49
- RakeDependencies::TaskSets::All.define(task_set_opts)
22
+ RakeDependencies::TaskSets::All.define(
23
+ option_resolver.installation_task_set_options
24
+ )
50
25
  end
51
26
 
52
27
  def self.define_authentication_tasks(opts = {}, &block)
@@ -61,37 +36,108 @@ module RakeFly
61
36
  RakeFly::TaskSets::Project.define(opts, &block)
62
37
  end
63
38
 
64
- private
39
+ class OptionResolver
40
+ attr_reader :opts
65
41
 
66
- def self.new_format?(version)
67
- Semantic::Version.new(version) >=
68
- Semantic::Version.new(ARTIFACT_FORMAT_CHANGE_VERSION)
69
- end
42
+ def initialize(opts)
43
+ @opts = opts
44
+ end
45
+
46
+ # rubocop:disable Metrics/MethodLength
47
+ def installation_task_set_options
48
+ task_set_opts = {
49
+ namespace: namespace,
50
+ dependency: dependency,
51
+ version: version,
52
+ path: path,
53
+ type: type,
54
+ platform_os_names: platform_os_names,
55
+ uri_template: uri_template,
56
+ file_name_template: file_name_template,
57
+ needs_fetch: needs_fetch_check_lambda
58
+ }
70
59
 
71
- def self.type(version)
72
- if self.new_format?(version)
73
- :tgz
74
- else
75
- :uncompressed
60
+ unless new_format?
61
+ task_set_opts[:source_binary_name_template] =
62
+ source_binary_name_template
63
+ task_set_opts[:target_binary_name_template] =
64
+ target_binary_name_template
65
+ end
66
+
67
+ task_set_opts
76
68
  end
77
- end
69
+ # rubocop:enable Metrics/MethodLength
78
70
 
79
- def self.uri_template(version)
80
- if new_format?(version)
81
- "https://github.com/concourse/concourse/releases/download" +
82
- "/v<%= @version %>" +
83
- "/fly-<%= @version %>-<%= @platform_os_name %>-amd64<%= @ext %>"
84
- else
85
- "https://github.com/concourse/concourse/releases/" +
86
- "download/v<%= @version %>/fly_<%= @platform_os_name %>_amd64"
71
+ def fly_binary_path
72
+ File.join(path, 'bin', 'fly')
87
73
  end
88
- end
89
74
 
90
- def self.file_name_template(version)
91
- if new_format?(version)
92
- "fly-<%= @version %>-<%= @platform_os_name %>-amd64<%= @ext %>"
93
- else
94
- "fly_<%= @platform_os_name %>_amd64"
75
+ def namespace
76
+ opts[:namespace] || :fly
77
+ end
78
+
79
+ def dependency
80
+ 'fly'
81
+ end
82
+
83
+ def version
84
+ opts[:version] || '2.7.0'
85
+ end
86
+
87
+ def path
88
+ opts[:path] || File.join('vendor', 'fly')
89
+ end
90
+
91
+ def type
92
+ if new_format?
93
+ :tgz
94
+ else
95
+ :uncompressed
96
+ end
97
+ end
98
+
99
+ def platform_os_names
100
+ { darwin: 'darwin', linux: 'linux' }
101
+ end
102
+
103
+ def uri_template
104
+ if new_format?
105
+ 'https://github.com/concourse/concourse/releases/download' \
106
+ '/v<%= @version %>' \
107
+ '/fly-<%= @version %>-<%= @platform_os_name %>-amd64<%= @ext %>'
108
+ else
109
+ 'https://github.com/concourse/concourse/releases/' \
110
+ 'download/v<%= @version %>/fly_<%= @platform_os_name %>_amd64'
111
+ end
112
+ end
113
+
114
+ def file_name_template
115
+ if new_format?
116
+ 'fly-<%= @version %>-<%= @platform_os_name %>-amd64<%= @ext %>'
117
+ else
118
+ 'fly_<%= @platform_os_name %>_amd64'
119
+ end
120
+ end
121
+
122
+ def target_binary_name_template
123
+ 'fly'
124
+ end
125
+
126
+ def source_binary_name_template
127
+ 'fly_<%= @platform_os_name %>_amd64'
128
+ end
129
+
130
+ def needs_fetch_check_lambda
131
+ lambda { |t|
132
+ fly_binary = File.join(t.path, t.binary_directory, 'fly')
133
+
134
+ !(File.exist?(fly_binary) && RubyFly.version == version)
135
+ }
136
+ end
137
+
138
+ def new_format?
139
+ Semantic::Version.new(version) >=
140
+ Semantic::Version.new(ARTIFACT_FORMAT_CHANGE_VERSION)
95
141
  end
96
142
  end
97
143
  end
data/rake_fly.gemspec ADDED
@@ -0,0 +1,65 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'rake_fly/version'
6
+
7
+ files = %w[
8
+ bin
9
+ lib
10
+ CODE_OF_CONDUCT.md
11
+ rake_fly.gemspec
12
+ Gemfile
13
+ LICENSE.txt
14
+ Rakefile
15
+ README.md
16
+ ]
17
+
18
+ Gem::Specification.new do |spec|
19
+ spec.name = 'rake_fly'
20
+ spec.version = RakeFly::VERSION
21
+ spec.authors = ['InfraBlocks Maintainers']
22
+ spec.email = ['maintainers@infrablocks.io']
23
+
24
+ spec.summary = 'Rake tasks for managing Concourse pipelines.'
25
+ spec.description = 'Rake tasks for common fly interactions allowing ' \
26
+ 'Concourse pipelines to be managed as part of a ' \
27
+ 'build.'
28
+ spec.homepage = 'https://github.com/infrablocks/rake_fly'
29
+ spec.license = 'MIT'
30
+
31
+ spec.files = `git ls-files -z`.split("\x0").select do |f|
32
+ f.match(/^(#{files.map { |g| Regexp.escape(g) }.join('|')})/)
33
+ end
34
+ spec.bindir = 'exe'
35
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
36
+ spec.require_paths = ['lib']
37
+
38
+ spec.required_ruby_version = '>= 2.7'
39
+
40
+ spec.add_dependency 'concourse.rb', '>= 0.4'
41
+ spec.add_dependency 'rake_dependencies', '~> 3.1'
42
+ spec.add_dependency 'rake_factory', '~> 0.29'
43
+ spec.add_dependency 'ruby_fly', '>= 0.35'
44
+ spec.add_dependency 'semantic', '~> 1.6'
45
+
46
+ spec.add_development_dependency 'activesupport'
47
+ spec.add_development_dependency 'bundler'
48
+ spec.add_development_dependency 'fakefs'
49
+ spec.add_development_dependency 'faker'
50
+ spec.add_development_dependency 'gem-release'
51
+ spec.add_development_dependency 'jwt'
52
+ spec.add_development_dependency 'openssl'
53
+ spec.add_development_dependency 'rake'
54
+ spec.add_development_dependency 'rake_circle_ci'
55
+ spec.add_development_dependency 'rake_github'
56
+ spec.add_development_dependency 'rake_gpg'
57
+ spec.add_development_dependency 'rake_ssh'
58
+ spec.add_development_dependency 'rspec'
59
+ spec.add_development_dependency 'rubocop'
60
+ spec.add_development_dependency 'rubocop-rake'
61
+ spec.add_development_dependency 'rubocop-rspec'
62
+ spec.add_development_dependency 'simplecov'
63
+
64
+ spec.metadata['rubygems_mfa_required'] = 'false'
65
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake_fly
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.10.0.pre.1
4
+ version: 2.10.0.pre.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - InfraBlocks Maintainers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-03-21 00:00:00.000000000 Z
11
+ date: 2022-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concourse.rb
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0.4'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rake_dependencies
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,33 +67,33 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0.35'
55
69
  - !ruby/object:Gem::Dependency
56
- name: concourse.rb
70
+ name: semantic
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - ">="
73
+ - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '0.4'
75
+ version: '1.6'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - ">="
80
+ - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '0.4'
82
+ version: '1.6'
69
83
  - !ruby/object:Gem::Dependency
70
- name: semantic
84
+ name: activesupport
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
- version: '1.6'
76
- type: :runtime
89
+ version: '0'
90
+ type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: '1.6'
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: bundler
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -95,7 +109,7 @@ dependencies:
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
- name: rake
112
+ name: fakefs
99
113
  requirement: !ruby/object:Gem::Requirement
100
114
  requirements:
101
115
  - - ">="
@@ -109,7 +123,7 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: rake_circle_ci
126
+ name: faker
113
127
  requirement: !ruby/object:Gem::Requirement
114
128
  requirements:
115
129
  - - ">="
@@ -123,7 +137,7 @@ dependencies:
123
137
  - !ruby/object:Gem::Version
124
138
  version: '0'
125
139
  - !ruby/object:Gem::Dependency
126
- name: rake_github
140
+ name: gem-release
127
141
  requirement: !ruby/object:Gem::Requirement
128
142
  requirements:
129
143
  - - ">="
@@ -137,7 +151,7 @@ dependencies:
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
153
  - !ruby/object:Gem::Dependency
140
- name: rake_ssh
154
+ name: jwt
141
155
  requirement: !ruby/object:Gem::Requirement
142
156
  requirements:
143
157
  - - ">="
@@ -151,7 +165,7 @@ dependencies:
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
- name: rake_gpg
168
+ name: openssl
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - ">="
@@ -165,7 +179,7 @@ dependencies:
165
179
  - !ruby/object:Gem::Version
166
180
  version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
- name: rspec
182
+ name: rake
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - ">="
@@ -179,7 +193,7 @@ dependencies:
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
181
195
  - !ruby/object:Gem::Dependency
182
- name: gem-release
196
+ name: rake_circle_ci
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - ">="
@@ -193,7 +207,7 @@ dependencies:
193
207
  - !ruby/object:Gem::Version
194
208
  version: '0'
195
209
  - !ruby/object:Gem::Dependency
196
- name: activesupport
210
+ name: rake_github
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - ">="
@@ -207,7 +221,7 @@ dependencies:
207
221
  - !ruby/object:Gem::Version
208
222
  version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
- name: fakefs
224
+ name: rake_gpg
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - ">="
@@ -221,7 +235,7 @@ dependencies:
221
235
  - !ruby/object:Gem::Version
222
236
  version: '0'
223
237
  - !ruby/object:Gem::Dependency
224
- name: jwt
238
+ name: rake_ssh
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - ">="
@@ -235,7 +249,7 @@ dependencies:
235
249
  - !ruby/object:Gem::Version
236
250
  version: '0'
237
251
  - !ruby/object:Gem::Dependency
238
- name: openssl
252
+ name: rspec
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - ">="
@@ -249,7 +263,35 @@ dependencies:
249
263
  - !ruby/object:Gem::Version
250
264
  version: '0'
251
265
  - !ruby/object:Gem::Dependency
252
- name: faker
266
+ name: rubocop
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :development
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: rubocop-rake
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :development
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: rubocop-rspec
253
295
  requirement: !ruby/object:Gem::Requirement
254
296
  requirements:
255
297
  - - ">="
@@ -307,10 +349,12 @@ files:
307
349
  - lib/rake_fly/tasks/pipeline/set.rb
308
350
  - lib/rake_fly/tasks/pipeline/unpause.rb
309
351
  - lib/rake_fly/version.rb
352
+ - rake_fly.gemspec
310
353
  homepage: https://github.com/infrablocks/rake_fly
311
354
  licenses:
312
355
  - MIT
313
- metadata: {}
356
+ metadata:
357
+ rubygems_mfa_required: 'false'
314
358
  post_install_message:
315
359
  rdoc_options: []
316
360
  require_paths: