fastlane-plugin-aws_s3 0.2.8 → 1.0.0
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 +4 -4
- data/README.md +5 -2
- data/lib/assets/s3_android_html_template.erb +2 -0
- data/lib/assets/s3_ios_html_template.erb +2 -0
- data/lib/fastlane/plugin/aws_s3/actions/aws_s3_action.rb +72 -39
- data/lib/fastlane/plugin/aws_s3/helper/aws_s3_helper.rb +14 -2
- data/lib/fastlane/plugin/aws_s3/version.rb +1 -1
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0b71d17903f7045ded444288ab4d579f658b6ae
|
4
|
+
data.tar.gz: 9e8cc661d91204fcdbdffbbed76d08c68ae4d49d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31ee79f8b36a294738077cfca68ff75057065b9cfe134651dbd54df2683d5fa9281ebdef51ac2a4f7058b3b5d134e8a3d2840e282956605491c61a54e3b9d314
|
7
|
+
data.tar.gz: 40d0bd830b8c6c34d152fe5016137a82b19e4866035f77e30b5d04f07f90f7702a0ae3139ecc787e0bd12fe4a6b37af1b99f3b6862d51d0c9af70936f89e43bf
|
data/README.md
CHANGED
@@ -32,10 +32,13 @@ You can also customize a lot of options:
|
|
32
32
|
```ruby
|
33
33
|
aws_s3(
|
34
34
|
# All of these are used to make Shenzhen's `ipa distribute:s3` command
|
35
|
-
access_key: ENV['S3_ACCESS_KEY'], # Required from user.
|
36
|
-
secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # Required from user.
|
35
|
+
access_key: ENV['S3_ACCESS_KEY'], # Required from user (unless using aws_profile).
|
36
|
+
secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # Required from user (unless using aws_profile).
|
37
|
+
aws_profile: ENV['AWS_PROFILE'] # Required from user (unless using access_key and secret_access_key)
|
37
38
|
bucket: ENV['S3_BUCKET'], # Required from user.
|
38
39
|
region: ENV['S3_REGION'], # Required from user.
|
40
|
+
acl: ENV['S3_ACL'], # Optional - defaults to 'public-read'
|
41
|
+
server_side_encryption: ENV['S3_SERVER_SIDE_ENCRYPTION'] # Optional
|
39
42
|
|
40
43
|
endpoint: 'https://s3-us-west-1.amazonaws.com', # Optional, for buckets that require a specific endpoint
|
41
44
|
ipa: 'AppName.ipa', # Required (if not uploading an APK).
|
@@ -57,6 +57,8 @@
|
|
57
57
|
<a href="<%= apk_url %>" id="text" class="btn btn-lg btn-default" onclick="document.getElementById('finished').id = '';">
|
58
58
|
Install <%= title %> <%= version_name %> (<%= version_code %>)
|
59
59
|
</a>
|
60
|
+
<br>
|
61
|
+
<p>Built on <%= Date.today.strftime('%a, %e %b %Y %H:%M %p') %></p>
|
60
62
|
</span>
|
61
63
|
|
62
64
|
<!-- <span class="download" id="android">
|
@@ -57,6 +57,8 @@
|
|
57
57
|
<a href="itms-services://?action=download-manifest&url=<%= url_encode(plist_url) %>" id="text" class="btn btn-lg btn-default" onclick="document.getElementById('finished').id = '';">
|
58
58
|
Install <%= title %> <%= bundle_version %> (<%= build_num %>)
|
59
59
|
</a>
|
60
|
+
<br>
|
61
|
+
<p>Built on <%= Date.today.strftime('%a, %e %b %Y %H:%M %p') %></p>
|
60
62
|
</span>
|
61
63
|
|
62
64
|
<!-- <span class="download" id="android">
|
@@ -3,6 +3,7 @@ require 'fastlane/erb_template_helper'
|
|
3
3
|
include ERB::Util
|
4
4
|
require 'ostruct'
|
5
5
|
require 'cgi'
|
6
|
+
require 'mime-types'
|
6
7
|
|
7
8
|
module Fastlane
|
8
9
|
module Actions
|
@@ -25,11 +26,13 @@ module Fastlane
|
|
25
26
|
params[:dsym] = config[:dsym]
|
26
27
|
params[:access_key] = config[:access_key]
|
27
28
|
params[:secret_access_key] = config[:secret_access_key]
|
29
|
+
params[:aws_profile] = config[:aws_profile]
|
28
30
|
params[:bucket] = config[:bucket]
|
29
31
|
params[:endpoint] = config[:endpoint]
|
30
32
|
params[:region] = config[:region]
|
31
33
|
params[:app_directory] = config[:app_directory]
|
32
34
|
params[:acl] = config[:acl]
|
35
|
+
params[:server_side_encryption] = config[:server_side_encryption]
|
33
36
|
params[:source] = config[:source]
|
34
37
|
params[:path] = config[:path]
|
35
38
|
params[:upload_metadata] = config[:upload_metadata]
|
@@ -38,6 +41,7 @@ module Fastlane
|
|
38
41
|
params[:html_template_path] = config[:html_template_path]
|
39
42
|
params[:html_file_name] = config[:html_file_name]
|
40
43
|
params[:skip_html_upload] = config[:skip_html_upload]
|
44
|
+
params[:html_in_folder] = config[:html_in_folder]
|
41
45
|
params[:version_template_path] = config[:version_template_path]
|
42
46
|
params[:version_file_name] = config[:version_file_name]
|
43
47
|
|
@@ -45,6 +49,7 @@ module Fastlane
|
|
45
49
|
s3_region = params[:region]
|
46
50
|
s3_access_key = params[:access_key]
|
47
51
|
s3_secret_access_key = params[:secret_access_key]
|
52
|
+
s3_profile = params[:aws_profile]
|
48
53
|
s3_bucket = params[:bucket]
|
49
54
|
s3_endpoint = params[:endpoint]
|
50
55
|
apk_file = params[:apk]
|
@@ -52,17 +57,25 @@ module Fastlane
|
|
52
57
|
dsym_file = params[:dsym]
|
53
58
|
s3_path = params[:path]
|
54
59
|
acl = params[:acl].to_sym
|
60
|
+
server_side_encryption = params[:server_side_encryption]
|
55
61
|
|
56
|
-
|
57
|
-
|
62
|
+
unless s3_profile
|
63
|
+
UI.user_error!("No S3 access key given, pass using `access_key: 'key'` (or use `aws_profile: 'profile'`)") unless s3_access_key.to_s.length > 0
|
64
|
+
UI.user_error!("No S3 secret access key given, pass using `secret_access_key: 'secret key'` (or use `aws_profile: 'profile'`)") unless s3_secret_access_key.to_s.length > 0
|
65
|
+
end
|
58
66
|
UI.user_error!("No S3 bucket given, pass using `bucket: 'bucket'`") unless s3_bucket.to_s.length > 0
|
59
67
|
UI.user_error!("No IPA or APK file path given, pass using `ipa: 'ipa path'` or `apk: 'apk path'`") if ipa_file.to_s.length == 0 && apk_file.to_s.length == 0
|
60
68
|
UI.user_error!("Please only give IPA path or APK path (not both)") if ipa_file.to_s.length > 0 && apk_file.to_s.length > 0
|
61
69
|
|
62
70
|
require 'aws-sdk'
|
71
|
+
if s3_profile
|
72
|
+
creds = Aws::SharedCredentials.new(profile_name: s3_profile);
|
73
|
+
else
|
74
|
+
creds = Aws::Credentials.new(s3_access_key, s3_secret_access_key)
|
75
|
+
end
|
63
76
|
Aws.config.update({
|
64
77
|
region: s3_region,
|
65
|
-
credentials:
|
78
|
+
credentials: creds
|
66
79
|
})
|
67
80
|
|
68
81
|
s3_client = if s3_endpoint
|
@@ -71,13 +84,13 @@ module Fastlane
|
|
71
84
|
Aws::S3::Client.new
|
72
85
|
end
|
73
86
|
|
74
|
-
upload_ipa(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, ipa_file, dsym_file, s3_path, acl) if ipa_file.to_s.length > 0
|
75
|
-
upload_apk(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, apk_file, s3_path, acl) if apk_file.to_s.length > 0
|
87
|
+
upload_ipa(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, ipa_file, dsym_file, s3_path, acl, server_side_encryption) if ipa_file.to_s.length > 0
|
88
|
+
upload_apk(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, apk_file, s3_path, acl, server_side_encryption) if apk_file.to_s.length > 0
|
76
89
|
|
77
90
|
return true
|
78
91
|
end
|
79
92
|
|
80
|
-
def self.upload_ipa(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, ipa_file, dsym_file, s3_path, acl)
|
93
|
+
def self.upload_ipa(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, ipa_file, dsym_file, s3_path, acl, server_side_encryption)
|
81
94
|
|
82
95
|
s3_path = "v{CFBundleShortVersionString}_b{CFBundleVersion}/" unless s3_path
|
83
96
|
|
@@ -87,6 +100,7 @@ module Fastlane
|
|
87
100
|
plist_file_name = params[:plist_file_name]
|
88
101
|
html_template_path = params[:html_template_path]
|
89
102
|
html_file_name = params[:html_file_name]
|
103
|
+
generate_html_in_folder = params[:html_in_folder]
|
90
104
|
version_template_path = params[:version_template_path]
|
91
105
|
version_file_name = params[:version_file_name]
|
92
106
|
|
@@ -96,7 +110,7 @@ module Fastlane
|
|
96
110
|
ipa_file_name = "#{url_part}#{ipa_file_basename}"
|
97
111
|
ipa_file_data = File.open(ipa_file, 'rb')
|
98
112
|
|
99
|
-
ipa_url = self.upload_file(s3_client, s3_bucket, app_directory, ipa_file_name, ipa_file_data, acl)
|
113
|
+
ipa_url = self.upload_file(s3_client, s3_bucket, app_directory, ipa_file_name, ipa_file_data, acl, server_side_encryption)
|
100
114
|
|
101
115
|
# Setting action and environment variables
|
102
116
|
Actions.lane_context[SharedValues::S3_IPA_OUTPUT_PATH] = ipa_url
|
@@ -107,7 +121,7 @@ module Fastlane
|
|
107
121
|
dsym_file_name = "#{url_part}#{dsym_file_basename}"
|
108
122
|
dsym_file_data = File.open(dsym_file, 'rb')
|
109
123
|
|
110
|
-
dsym_url = self.upload_file(s3_client, s3_bucket, app_directory, dsym_file_name, dsym_file_data, acl)
|
124
|
+
dsym_url = self.upload_file(s3_client, s3_bucket, app_directory, dsym_file_name, dsym_file_data, acl, server_side_encryption)
|
111
125
|
|
112
126
|
# Setting action and environment variables
|
113
127
|
Actions.lane_context[SharedValues::S3_DSYM_OUTPUT_PATH] = dsym_url
|
@@ -164,7 +178,7 @@ module Fastlane
|
|
164
178
|
# plist uploading
|
165
179
|
#
|
166
180
|
#####################################
|
167
|
-
plist_url = self.upload_file(s3_client, s3_bucket, app_directory, plist_file_name, plist_render, acl)
|
181
|
+
plist_url = self.upload_file(s3_client, s3_bucket, app_directory, plist_file_name, plist_render, acl, server_side_encryption)
|
168
182
|
|
169
183
|
# Creates html from template
|
170
184
|
if html_template_path && File.exist?(html_template_path)
|
@@ -202,11 +216,11 @@ module Fastlane
|
|
202
216
|
# html uploading
|
203
217
|
#
|
204
218
|
#####################################
|
205
|
-
|
219
|
+
|
206
220
|
skip_html = params[:skip_html_upload]
|
207
|
-
|
208
|
-
html_url = self.upload_file(s3_client, s3_bucket, app_directory, html_file_name, html_render, acl) unless skip_html
|
209
|
-
version_url = self.upload_file(s3_client, s3_bucket, app_directory, version_file_name, version_render, acl)
|
221
|
+
html_file_name = "#{url_part}#{html_file_name}" if generate_html_in_folder
|
222
|
+
html_url = self.upload_file(s3_client, s3_bucket, app_directory, html_file_name, html_render, acl, server_side_encryption) unless skip_html
|
223
|
+
version_url = self.upload_file(s3_client, s3_bucket, app_directory, version_file_name, version_render, acl, server_side_encryption)
|
210
224
|
|
211
225
|
# Setting action and environment variables
|
212
226
|
Actions.lane_context[SharedValues::S3_PLIST_OUTPUT_PATH] = plist_url
|
@@ -217,14 +231,14 @@ module Fastlane
|
|
217
231
|
|
218
232
|
Actions.lane_context[SharedValues::S3_VERSION_OUTPUT_PATH] = version_url
|
219
233
|
ENV[SharedValues::S3_VERSION_OUTPUT_PATH.to_s] = version_url
|
220
|
-
|
221
|
-
self.upload_source(s3_client, params, s3_bucket, params[:source], s3_path, acl)
|
234
|
+
|
235
|
+
self.upload_source(s3_client, params, s3_bucket, params[:source], s3_path, acl, server_side_encryption)
|
222
236
|
|
223
237
|
UI.success("Successfully uploaded ipa file to '#{Actions.lane_context[SharedValues::S3_IPA_OUTPUT_PATH]}'")
|
224
238
|
UI.success("iOS app can be downloaded at '#{Actions.lane_context[SharedValues::S3_HTML_OUTPUT_PATH]}'") unless skip_html
|
225
239
|
end
|
226
240
|
|
227
|
-
def self.upload_apk(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, apk_file, s3_path, acl)
|
241
|
+
def self.upload_apk(s3_client, params, s3_region, s3_access_key, s3_secret_access_key, s3_bucket, apk_file, s3_path, acl, server_side_encryption)
|
228
242
|
version = get_apk_version(apk_file)
|
229
243
|
|
230
244
|
version_code = version[0]
|
@@ -237,6 +251,7 @@ module Fastlane
|
|
237
251
|
|
238
252
|
html_template_path = params[:html_template_path]
|
239
253
|
html_file_name = params[:html_file_name]
|
254
|
+
generate_html_in_folder = params[:html_in_folder]
|
240
255
|
version_template_path = params[:version_template_path]
|
241
256
|
version_file_name = params[:version_file_name]
|
242
257
|
|
@@ -246,7 +261,7 @@ module Fastlane
|
|
246
261
|
apk_file_name = "#{url_part}#{apk_file_basename}"
|
247
262
|
apk_file_data = File.open(apk_file, 'rb')
|
248
263
|
|
249
|
-
apk_url = self.upload_file(s3_client, s3_bucket, app_directory, apk_file_name, apk_file_data, acl)
|
264
|
+
apk_url = self.upload_file(s3_client, s3_bucket, app_directory, apk_file_name, apk_file_data, acl, server_side_encryption)
|
250
265
|
|
251
266
|
# Setting action and environment variables
|
252
267
|
Actions.lane_context[SharedValues::S3_APK_OUTPUT_PATH] = apk_url
|
@@ -300,11 +315,11 @@ module Fastlane
|
|
300
315
|
# html and plist uploading
|
301
316
|
#
|
302
317
|
#####################################
|
303
|
-
|
304
|
-
skip_html = params[:skip_html_upload]
|
305
318
|
|
306
|
-
|
307
|
-
|
319
|
+
skip_html = params[:skip_html_upload]
|
320
|
+
html_file_name = "#{url_part}#{html_file_name}" if generate_html_in_folder
|
321
|
+
html_url = self.upload_file(s3_client, s3_bucket, app_directory, html_file_name, html_render, acl, server_side_encryption) unless skip_html
|
322
|
+
version_url = self.upload_file(s3_client, s3_bucket, app_directory, version_file_name, version_render, acl, server_side_encryption)
|
308
323
|
|
309
324
|
Actions.lane_context[SharedValues::S3_HTML_OUTPUT_PATH] = html_url unless skip_html
|
310
325
|
ENV[SharedValues::S3_HTML_OUTPUT_PATH.to_s] = html_url unless skip_html
|
@@ -312,33 +327,33 @@ module Fastlane
|
|
312
327
|
Actions.lane_context[SharedValues::S3_VERSION_OUTPUT_PATH] = version_url
|
313
328
|
ENV[SharedValues::S3_VERSION_OUTPUT_PATH.to_s] = version_url
|
314
329
|
|
315
|
-
self.upload_source(s3_client, params, s3_bucket, params[:source], s3_path, acl)
|
316
|
-
|
330
|
+
self.upload_source(s3_client, params, s3_bucket, params[:source], s3_path, acl, server_side_encryption)
|
331
|
+
|
317
332
|
UI.success("Successfully uploaded apk file to '#{Actions.lane_context[SharedValues::S3_APK_OUTPUT_PATH]}'")
|
318
333
|
UI.success("Android app can be downloaded at '#{Actions.lane_context[SharedValues::S3_HTML_OUTPUT_PATH]}'") unless skip_html
|
319
334
|
end
|
320
|
-
|
321
|
-
def self.upload_source(s3_client, params, s3_bucket, source_directory, s3_path, acl)
|
335
|
+
|
336
|
+
def self.upload_source(s3_client, params, s3_bucket, source_directory, s3_path, acl, server_side_encryption)
|
322
337
|
if source_directory && File.directory?(source_directory)
|
323
338
|
source_directory = File.absolute_path source_directory
|
324
339
|
output_file_path = Tempfile.new('aws_s3_source').path
|
325
|
-
|
340
|
+
|
326
341
|
output_file_path = other_action.zip(
|
327
342
|
path: source_directory,
|
328
343
|
output_path: output_file_path.gsub(/(?<!.zip)$/, ".zip")
|
329
344
|
)
|
330
|
-
|
345
|
+
|
331
346
|
s3_path = "#{version_code}_#{version_name}/" unless s3_path
|
332
347
|
app_directory = params[:app_directory]
|
333
348
|
url_part = s3_path
|
334
349
|
zip_file_name = "#{url_part}source.zip"
|
335
|
-
|
350
|
+
|
336
351
|
output_path_data = File.open("#{output_file_path}", 'rb')
|
337
|
-
source_url = self.upload_file(s3_client, s3_bucket, app_directory, zip_file_name, output_path_data, acl)
|
338
|
-
|
352
|
+
source_url = self.upload_file(s3_client, s3_bucket, app_directory, zip_file_name, output_path_data, acl, server_side_encryption)
|
353
|
+
|
339
354
|
Actions.lane_context[SharedValues::S3_SOURCE_OUTPUT_PATH] = source_url
|
340
355
|
ENV[SharedValues::S3_SOURCE_OUTPUT_PATH.to_s] = source_url
|
341
|
-
|
356
|
+
|
342
357
|
UI.success("Source can be downloaded at '#{Actions.lane_context[SharedValues::S3_SOURCE_OUTPUT_PATH]}'")
|
343
358
|
end
|
344
359
|
end
|
@@ -381,18 +396,21 @@ module Fastlane
|
|
381
396
|
[versionCode, versionName, name]
|
382
397
|
end
|
383
398
|
|
384
|
-
def self.upload_file(s3_client, bucket_name, app_directory, file_name, file_data, acl)
|
399
|
+
def self.upload_file(s3_client, bucket_name, app_directory, file_name, file_data, acl, server_side_encryption)
|
385
400
|
|
386
401
|
if app_directory
|
387
402
|
file_name = "#{app_directory}/#{file_name}"
|
388
403
|
end
|
389
404
|
|
390
405
|
bucket = Aws::S3::Bucket.new(bucket_name, client: s3_client)
|
391
|
-
|
406
|
+
details = {
|
392
407
|
acl: acl,
|
393
408
|
key: file_name,
|
394
|
-
body: file_data
|
395
|
-
|
409
|
+
body: file_data,
|
410
|
+
content_type: MIME::Types.type_for(File.extname(file_name)).first.to_s
|
411
|
+
}
|
412
|
+
details = details.merge(server_side_encryption: server_side_encryption) if server_side_encryption.length > 0
|
413
|
+
obj = bucket.put_object(details)
|
396
414
|
|
397
415
|
# When you enable versioning on a S3 bucket,
|
398
416
|
# writing to an object will create an object version
|
@@ -478,6 +496,12 @@ module Fastlane
|
|
478
496
|
optional: true,
|
479
497
|
default_value: false,
|
480
498
|
is_string: false),
|
499
|
+
FastlaneCore::ConfigItem.new(key: :html_in_folder,
|
500
|
+
env_name: "",
|
501
|
+
description: "move the uploaded html file into the version folder",
|
502
|
+
optional: true,
|
503
|
+
default_value: false,
|
504
|
+
is_string: false),
|
481
505
|
FastlaneCore::ConfigItem.new(key: :version_template_path,
|
482
506
|
env_name: "",
|
483
507
|
description: "version erb template path",
|
@@ -496,12 +520,17 @@ module Fastlane
|
|
496
520
|
description: "AWS Secret Access Key ",
|
497
521
|
optional: true,
|
498
522
|
default_value: ENV['AWS_SECRET_ACCESS_KEY']),
|
523
|
+
FastlaneCore::ConfigItem.new(key: :aws_profile,
|
524
|
+
env_name: "S3_PROFILE",
|
525
|
+
description: "AWS profile to use for credentials",
|
526
|
+
optional: true,
|
527
|
+
default_value: ENV['AWS_PROFILE']),
|
499
528
|
FastlaneCore::ConfigItem.new(key: :bucket,
|
500
529
|
env_name: "S3_BUCKET",
|
501
530
|
description: "AWS bucket name",
|
502
531
|
optional: true,
|
503
532
|
default_value: ENV['AWS_BUCKET_NAME']),
|
504
|
-
|
533
|
+
FastlaneCore::ConfigItem.new(key: :region,
|
505
534
|
env_name: "S3_REGION",
|
506
535
|
description: "AWS region (for bucket creation) ",
|
507
536
|
optional: true,
|
@@ -522,14 +551,18 @@ module Fastlane
|
|
522
551
|
env_name: "S3_ACL",
|
523
552
|
description: "Uploaded object permissions e.g public_read (default), private, public_read_write, authenticated_read ",
|
524
553
|
optional: true,
|
525
|
-
default_value: "public-read"
|
526
|
-
|
554
|
+
default_value: "public-read"),
|
555
|
+
FastlaneCore::ConfigItem.new(key: :server_side_encryption,
|
556
|
+
env_name: "S3_SERVER_SIDE_ENCRYPTION",
|
557
|
+
description: "Enable encryption of the uploaded S3 object (set it to 'AES256' for example)",
|
558
|
+
optional: true,
|
559
|
+
default_value: ""),
|
527
560
|
FastlaneCore::ConfigItem.new(key: :endpoint,
|
528
561
|
env_name: "S3_ENDPOINT",
|
529
562
|
description: "The base endpoint for your S3 bucket",
|
530
563
|
optional: true,
|
531
564
|
default_value: nil
|
532
|
-
|
565
|
+
),
|
533
566
|
]
|
534
567
|
end
|
535
568
|
|
@@ -14,8 +14,7 @@ module Fastlane
|
|
14
14
|
#
|
15
15
|
require "erb"
|
16
16
|
def self.load(template_name)
|
17
|
-
path = "#{
|
18
|
-
puts "path #{path}"
|
17
|
+
path = "#{gem_path('fastlane-plugin-aws_s3')}/lib/assets/#{template_name}.erb"
|
19
18
|
load_from_path(path)
|
20
19
|
end
|
21
20
|
|
@@ -29,6 +28,19 @@ module Fastlane
|
|
29
28
|
def self.render(template, template_vars_hash)
|
30
29
|
Fastlane::ErbalT.new(template_vars_hash).render(template)
|
31
30
|
end
|
31
|
+
|
32
|
+
#
|
33
|
+
# Taken from https://github.com/fastlane/fastlane/blob/f0dd4d0f4ecc74d9f7f62e0efc33091d975f2043/fastlane_core/lib/fastlane_core/helper.rb#L248-L259
|
34
|
+
# Unsure best other way to do this so using this logic for now since its deprecated in fastlane proper
|
35
|
+
#
|
36
|
+
def self.gem_path(gem_name)
|
37
|
+
if !Helper.is_test? and Gem::Specification.find_all_by_name(gem_name).any?
|
38
|
+
return Gem::Specification.find_by_name(gem_name).gem_dir
|
39
|
+
else
|
40
|
+
return './'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
32
44
|
end
|
33
45
|
end
|
34
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-aws_s3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Holtz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.7'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mime-types
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.1'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.1'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: pry
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -131,9 +145,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
145
|
version: '0'
|
132
146
|
requirements: []
|
133
147
|
rubyforge_project:
|
134
|
-
rubygems_version: 2.5.
|
148
|
+
rubygems_version: 2.5.2
|
135
149
|
signing_key:
|
136
150
|
specification_version: 4
|
137
151
|
summary: Upload IPA and APK to S3
|
138
152
|
test_files: []
|
139
|
-
has_rdoc:
|