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

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.
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: