fastlane-plugin-aws_device_farm 0.3.16 → 0.3.20
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e91653f74dbcf72292f3e642baee0a139ab7b9a2eacbc48c943ad23e791dc3c2
|
4
|
+
data.tar.gz: 98c2cd4e0829037c141d1b9a2d59cf5eb2e6d5cddfc939b0c9f69585c0b110f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9abddf60d30aa09fc36e67ae12a1050beaf8e65cf4eed1ceaa35e08fd0e306c47242264f902f23976817994dda3ca89ead18304f116bf08b1eb2e95d1a14e1d
|
7
|
+
data.tar.gz: 5bf881fc4e026fa5f2337fcaf4865a5a198a1142a9d1b5b2d725116ff864873f1eca2f2feb88dd1ca5b914a32b8e8cfac82dd88e43ee4b7f125145530b57066a
|
@@ -18,7 +18,6 @@ module Fastlane
|
|
18
18
|
# Fetch the device pool.
|
19
19
|
device_pool = fetch_device_pool project, params[:device_pool]
|
20
20
|
raise "Device pool '#{params[:device_pool]}' not found. 🙈" if device_pool.nil?
|
21
|
-
|
22
21
|
# Create the upload.
|
23
22
|
path = File.expand_path(params[:binary_path])
|
24
23
|
type = File.extname(path) == '.apk' ? 'ANDROID_APP' : 'IOS_APP'
|
@@ -86,6 +85,12 @@ module Fastlane
|
|
86
85
|
|
87
86
|
run
|
88
87
|
end
|
88
|
+
|
89
|
+
# Get the network profile from params if value is provided
|
90
|
+
if params[:network_profile_arn]
|
91
|
+
configuration[:network_profile_arn] = params[:network_profile_arn]
|
92
|
+
end
|
93
|
+
|
89
94
|
# rubocop:enable Metrics/BlockNesting
|
90
95
|
#
|
91
96
|
#####################################################
|
@@ -224,6 +229,14 @@ module Fastlane
|
|
224
229
|
is_string: true,
|
225
230
|
optional: false
|
226
231
|
),
|
232
|
+
FastlaneCore::ConfigItem.new(
|
233
|
+
key: :network_profile_arn,
|
234
|
+
env_name: 'FL_AWS_DEVICE_FARM_NETWORK_PROFILE_ARN',
|
235
|
+
description: 'Network profile arn you want to use for running the applications',
|
236
|
+
default_value: nil,
|
237
|
+
optional: false,
|
238
|
+
is_string: true
|
239
|
+
),
|
227
240
|
FastlaneCore::ConfigItem.new(
|
228
241
|
key: :wait_for_completion,
|
229
242
|
env_name: 'FL_AWS_DEVICE_FARM_WAIT_FOR_COMPLETION',
|
@@ -310,6 +323,36 @@ module Fastlane
|
|
310
323
|
is_string: false,
|
311
324
|
optional: true,
|
312
325
|
default_value: false
|
326
|
+
),
|
327
|
+
FastlaneCore::ConfigItem.new(
|
328
|
+
key: :artifact,
|
329
|
+
env_name: 'FL_ALLOW_ARTIFACT',
|
330
|
+
description: 'Do you download Artifact?',
|
331
|
+
is_string: false,
|
332
|
+
optional: true,
|
333
|
+
default_value: false
|
334
|
+
),
|
335
|
+
FastlaneCore::ConfigItem.new(
|
336
|
+
key: :artifact_output_dir,
|
337
|
+
env_name: 'FL_ARTIFACT_OUTPUT_DIR',
|
338
|
+
description: 'Artifact output directory',
|
339
|
+
is_string: true,
|
340
|
+
optional: true,
|
341
|
+
default_value: "./test_outputs"
|
342
|
+
),
|
343
|
+
FastlaneCore::ConfigItem.new(
|
344
|
+
key: :artifact_types,
|
345
|
+
env_name: 'FL_ARTIFACT_TYPES',
|
346
|
+
description: 'Download Artifact types',
|
347
|
+
is_string: false,
|
348
|
+
type: Array,
|
349
|
+
optional: true,
|
350
|
+
default_value: [],
|
351
|
+
verify_block: proc do |value|
|
352
|
+
valid_values = ['LOG',
|
353
|
+
'SCREENSHOT']
|
354
|
+
raise "Artifact type concludes invalid values are: '#{(value - valid_values)}'. 🙈".red unless (value - valid_values).empty?
|
355
|
+
end
|
313
356
|
)
|
314
357
|
]
|
315
358
|
end
|
@@ -375,7 +418,6 @@ module Fastlane
|
|
375
418
|
})
|
376
419
|
device_pools.device_pools.detect { |p| p.name == device_pool }
|
377
420
|
end
|
378
|
-
|
379
421
|
def self.schedule_run(name, project, device_pool, upload, test_upload, type, params)
|
380
422
|
# Prepare the test hash depening if you passed the test apk.
|
381
423
|
test_hash = { type: 'BUILTIN_FUZZ' }
|
@@ -401,7 +443,8 @@ module Fastlane
|
|
401
443
|
|
402
444
|
configuration_hash = {
|
403
445
|
billing_method: params[:billing_method],
|
404
|
-
locale: params[:locale]
|
446
|
+
locale: params[:locale],
|
447
|
+
network_profile_arn: params[:network_profile_arn]
|
405
448
|
}
|
406
449
|
|
407
450
|
@client.schedule_run({
|
@@ -456,6 +499,30 @@ module Fastlane
|
|
456
499
|
end
|
457
500
|
rows << [status, j.name, j.device.form_factor, j.device.platform, j.device.os]
|
458
501
|
|
502
|
+
# artifact
|
503
|
+
artifact_support_types = %w(LOG SCREENSHOT)
|
504
|
+
params[:artifact_types].each do |type|
|
505
|
+
next unless artifact_support_types.include?(type) && params[:artifact]
|
506
|
+
|
507
|
+
artifact = @client.list_artifacts({
|
508
|
+
arn: j.arn,
|
509
|
+
type: type
|
510
|
+
})
|
511
|
+
|
512
|
+
artifact.artifacts.each do |artifact|
|
513
|
+
case type
|
514
|
+
when "LOG"
|
515
|
+
file_name = "#{artifact.name}.#{artifact.extension}"
|
516
|
+
when "SCREENSHOT"
|
517
|
+
file_name = "#{artifact.name}.#{artifact.extension}"
|
518
|
+
end
|
519
|
+
|
520
|
+
file_dir_path = "#{params[:artifact_output_dir]}/#{j.name}/#{j.device.os}"
|
521
|
+
Helper::AwsDeviceFarmHelper.get_artifact(url: artifact.url, file_dir_path: file_dir_path, file_name: file_name)
|
522
|
+
end
|
523
|
+
end
|
524
|
+
|
525
|
+
# test suites
|
459
526
|
suite = @client.list_suites({
|
460
527
|
arn: j.arn
|
461
528
|
})
|
@@ -493,7 +560,10 @@ module Fastlane
|
|
493
560
|
"time" => j.device_minutes.metered,
|
494
561
|
"test_suites" => test_suites
|
495
562
|
}
|
496
|
-
|
563
|
+
|
564
|
+
# need multi device support
|
565
|
+
file_prefix = "#{j.name}-#{j.device.os}"
|
566
|
+
Helper::AwsDeviceFarmHelper.create_junit_xml(test_results: test_results, file_path: params[:junit_xml_output_path], file_prefix: file_prefix) if params[:junit_xml]
|
497
567
|
end
|
498
568
|
end
|
499
569
|
|
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'rexml/document'
|
2
2
|
require 'fileutils'
|
3
|
+
require 'open-uri'
|
3
4
|
|
4
5
|
module Fastlane
|
5
6
|
module Helper
|
6
7
|
class AwsDeviceFarmHelper
|
7
8
|
|
8
9
|
# create Junit.xml
|
9
|
-
def self.create_junit_xml(test_results:, file_path:)
|
10
|
+
def self.create_junit_xml(test_results:, file_path:, file_prefix:)
|
10
11
|
doc = REXML::Document.new
|
11
12
|
doc << REXML::XMLDecl.new('1.0', 'UTF-8')
|
12
13
|
|
@@ -37,12 +38,26 @@ module Fastlane
|
|
37
38
|
end
|
38
39
|
|
39
40
|
# output
|
40
|
-
|
41
|
-
File.
|
41
|
+
file_name = "#{file_prefix}-#{File.basename(file_path)}"
|
42
|
+
file_dir_path = File.dirname(file_path)
|
43
|
+
|
44
|
+
FileUtils.mkdir_p(file_dir_path)
|
45
|
+
File.open("#{file_dir_path}/#{file_name}", 'w') do |file|
|
42
46
|
doc.write(file, indent=2)
|
43
47
|
end
|
44
48
|
end
|
45
49
|
|
50
|
+
# get Artifact
|
51
|
+
def self.get_artifact(url:, file_dir_path:, file_name:)
|
52
|
+
file_path = "#{file_dir_path}/#{file_name}"
|
53
|
+
FileUtils.mkdir_p(File.dirname(file_path))
|
54
|
+
|
55
|
+
open(url) do |file|
|
56
|
+
open(file_path, "w+b") do |out|
|
57
|
+
out.write(file.read)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
46
61
|
end
|
47
62
|
end
|
48
63
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-aws_device_farm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Helmut Januschka
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -108,7 +108,7 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
-
description:
|
111
|
+
description:
|
112
112
|
email: helmut@januschka.com
|
113
113
|
executables: []
|
114
114
|
extensions: []
|
@@ -125,7 +125,7 @@ homepage: https://github.com/hjanuschka/fastlane-plugin-aws_device_farm
|
|
125
125
|
licenses:
|
126
126
|
- MIT
|
127
127
|
metadata: {}
|
128
|
-
post_install_message:
|
128
|
+
post_install_message:
|
129
129
|
rdoc_options: []
|
130
130
|
require_paths:
|
131
131
|
- lib
|
@@ -140,8 +140,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
|
-
rubygems_version: 3.0.
|
144
|
-
signing_key:
|
143
|
+
rubygems_version: 3.0.8
|
144
|
+
signing_key:
|
145
145
|
specification_version: 4
|
146
146
|
summary: Run UI Tests on AWS Devicefarm
|
147
147
|
test_files: []
|