fastlane-plugin-android_testlab_script_swit 0.1.933 → 0.1.935

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: 98327db5dc73a4fcfd461f5a436ca9b449fe7e94dd41b01655782acd0c146c3f
4
- data.tar.gz: ed4b920cb831ff2ba7319e0c4d757249967800359dff30faac6156a7905ff0a8
3
+ metadata.gz: 56bcf5c2ad3bcf5ef463227a72acd7dc662dcbb7a2b64b8faa5d087d107fa43b
4
+ data.tar.gz: aa1a698bdb13fc4f82c0f6ddc99eae6c0e54c28631d4fc5e3bdbdf1673c03858
5
5
  SHA512:
6
- metadata.gz: 72bb8822e1da662b01a72aefb36cd03753a8f59d5b7ebc85f793693a707564eec78a103d0cee0ea979c47b8c75548257758e760b4643c89953fc4d27962feef9
7
- data.tar.gz: 2060b04b4189f035665cfc24a0c4019f24630b1886515748973a8854a72ac5e2095ae3f041a62909014e474862d9dccdeb63426f3a7b25f3be530e014985fba5
6
+ metadata.gz: 9ee25e6d62df9b70039986b3c7ebe46e8624f48ecfff34acc66bb5c4bd1be0c52a252fc853a789e9a809e80bd74c537b6402536623599e47f0eb6ed84a23b97a
7
+ data.tar.gz: a93e77a0738b90e76ee6d9add3484f7adfeb4716b41cc7160e7224ea4302936aacbf9673cda4c86e3d1c7b586ac7655cc2559f3c38e39945314ea118febf212c
@@ -7,16 +7,6 @@ require 'httparty'
7
7
  module Fastlane
8
8
  module Actions
9
9
  class AndroidTestlabScriptSwitAction < Action
10
-
11
- def self.measure_time
12
- start_time = Time.now
13
- yield
14
- end_time = Time.now
15
- duration_sec_total = (end_time - start_time).round(1)
16
- duration_min = (duration_sec_total / 60).round(1)
17
- duration_sec = duration_sec_total % 60
18
- return "총 #{duration_min}분 테스트"
19
- end
20
10
 
21
11
  # actions run
22
12
  def self.run(params)
@@ -24,99 +14,65 @@ module Fastlane
24
14
  UI.message("Start Action")
25
15
  UI.message("********************************")
26
16
 
27
- # TestLab 작업 작업 소요시간 측정
28
- duration = measure_time do
29
-
30
- # Result Bucket & Dir
31
- results_bucket = params[:firebase_test_lab_results_bucket] || "#{params[:project_id]}_test_results"
32
- results_dir = params[:firebase_test_lab_results_dir] || "firebase_test_result_#{DateTime.now.strftime('%Y-%m-%d-%H:%M:%S')}"
33
-
34
- # Set Target Project ID
35
- Helper.config(params[:project_id])
36
-
37
- # Activate service account
38
- Helper.authenticate(params[:gcloud_key_file])
39
-
40
- # RoboScriptOption
41
- robo_script_option = params[:robo_script_path].nil? ? "" : "--robo-script #{params[:robo_script_path]} "
42
-
43
- # Run Firebase Test Lab
44
- Helper.run_tests(params[:gcloud_components_channel], "--type #{params[:type]} "\
45
- "--app #{params[:app_apk]} "\
46
- "#{"--test #{params[:app_test_apk]} " unless params[:app_test_apk].nil?}"\
47
- "#{"--use-orchestrator " if params[:type] == "instrumentation" && params[:use_orchestrator]}"\
48
- "#{params[:devices].map { |d| "--device model=#{d[:model]},version=#{d[:version]},locale=#{d[:locale]},orientation=#{d[:orientation]} " }.join}"\
49
- "--timeout #{params[:timeout]} "\
50
- "--results-bucket #{results_bucket} "\
51
- "--results-dir #{results_dir} "\
52
- "#{params[:extra_options]} "\
53
- "#{robo_script_option}"\
54
- "--format=json 1>#{Helper.if_need_dir(params[:console_log_file_name])}"
55
- )
56
-
57
- # Fetch results
58
- download_dir = params[:download_dir]
59
- if download_dir
60
- UI.message("Fetch results from Firebase Test Lab results bucket")
61
- json.each do |status|
62
- axis = status["axis_value"]
63
- Helper.if_need_dir("#{download_dir}/#{axis}")
64
- Helper.copy_from_gcs("#{results_bucket}/#{results_dir}/#{axis}", download_dir)
65
- Helper.set_public("#{results_bucket}/#{results_dir}/#{axis}")
66
- end
67
- end
68
-
69
- end
70
-
71
- # Swit Result PayLoad
72
- swit_device_payload = ""
73
-
74
- # Swit Send PayLoad - 테스트 시간 추가
75
- swit_webhook_payload = params[:swit_webhook_payload][0..-5] + ','
76
- swit_device_payload += "{\"type\":\"rt_section\",\"indent\":1,\"elements\":[{\"type\":\"rt_text\",\"content\":\"테스트 시간 : \"},{\"type\":\"rt_text\",\"content\":\"#{duration}\",\"styles\":{\"bold\":true}}]},"
77
-
78
- # Firebase Test Lab Result Json
79
- resultJson = File.read(params[:console_log_file_name])
80
-
81
- swit_device_payload = resultJson.map.with_index do |item, device_index|
82
- axis_value_parts = item["axis_value"].split('-')
83
- outcome = item["outcome"]
84
-
85
- model = axis_value_parts[0]
86
- version = axis_value_parts[1]
87
- locale = axis_value_parts[2]
88
- orientation = axis_value_parts[3]
89
-
90
- # 디바이스 정보
91
- device_payload =
92
- "[{\"type\":\"rt_section\",\"indent\":1,\"elements\":[{\"type\":\"rt_text\",\"content\":\"#{model}\"}]}, " +
93
- "{\"type\":\"rt_section\",\"indent\":2,\"elements\":[{\"type\":\"rt_text\", \"content\": \"OS: #{version} / Locale: #{locale} / Orientation: #{orientation}\"}]}, "
94
-
95
- # 성공 여부
96
- if outcome == 'Passed'
97
- device_payload +=
98
- "{\"type\":\"rt_section\",\"elements\":[{\"type\":\"rt_text\",\"content\":\"결과 : \"},{\"type\":\"rt_emoji\",\"name\":\":tada:\"},{\"type\":\"rt_text\",\"content\":\" Passed \"},{\"type\":\"rt_emoji\",\"name\":\":tada:\"}]}"
99
- elsif outcome == 'Failed'
100
- device_payload +=
101
- "{\"type\":\"rt_section\",\"elements\":[{\"type\":\"rt_text\",\"content\":\"결과 : \"},{\"type\":\"rt_emoji\",\"name\":\":interrobang:\"},{\"type\":\"rt_text\",\"content\":\" Failed \"},{\"type\":\"rt_emoji\",\"name\": \":interrobang:\"}]}"
102
- else # Skip or other outcomes
103
- device_payload +=
104
- "{\"type\":\"rt_section\",\"elements\":[{\"type\":{\"name\": \":bulb:\"}},{\"text\":{\"content\": \" Skipped or other outcomes \"}}, {\"emoji\":{\"name\": \":bulb:\"}}]}"
105
- end
17
+ # Result Bucket & Dir
18
+ results_bucket = params[:firebase_test_lab_results_bucket] || "#{params[:project_id]}_test_results"
19
+ results_dir = params[:firebase_test_lab_results_dir] || "firebase_test_result_#{DateTime.now.strftime('%Y-%m-%d-%H:%M:%S')}"
106
20
 
107
- device_payload += "]"
108
-
109
- end.join(',')
21
+ # Set Target Project ID
22
+ Helper.config(params[:project_id])
110
23
 
111
- swit_device_payload.chomp!(',')
24
+ # Activate service account
25
+ Helper.authenticate(params[:gcloud_key_file])
112
26
 
113
- # Swit PayLoad 병합
114
- swit_webhook_payload += swit_device_payload + ']}]}'
27
+ # RoboScriptOption
28
+ robo_script_option = params[:robo_script_path].nil? ? "" : "--robo-script #{params[:robo_script_path]} "
29
+
30
+ # Run Firebase Test Lab
31
+
32
+ # 딜레이
33
+ params[:devices].each_with_index do |device, index|
34
+ # 딜레이 추가
35
+ sleep(index * 60) # 각 디바이스별로 1분씩 증가하는 딜레이
36
+
37
+ # Run Firebase Test Lab for the current device
38
+ Helper.run_tests(params[:gcloud_components_channel], "--type #{params[:type]} "\
39
+ "--app #{params[:app_apk]} "\
40
+ "#{"--test #{params[:app_test_apk]} " unless params[:app_test_apk].nil?}"\
41
+ "#{"--use-orchestrator " if params[:type] == "instrumentation" && params[:use_orchestrator]}"\
42
+ "--device model=#{device[:model]},version=#{device[:version]},locale=#{device[:locale]},orientation=#{device[:orientation]} "\
43
+ "--timeout #{params[:timeout]} "\
44
+ "--results-bucket #{results_bucket} "\
45
+ "--results-dir #{results_dir} "\
46
+ "#{params[:extra_options]} "\
47
+ "#{robo_script_option}"\
48
+ "--format=json 1>#{Helper.if_need_dir(params[:console_log_file_name])}"
49
+ end
115
50
 
116
- UI.message(swit_webhook_payload)
117
-
118
- # Swit WebHook
119
- HTTParty.post(params[:swit_webhook_url], body: { body_text: swit_webhook_payload }.to_json, headers: { 'Content-Type' => 'application/json' })
51
+
52
+ #Helper.run_tests(params[:gcloud_components_channel], "--type #{params[:type]} "\
53
+ "--app #{params[:app_apk]} "\
54
+ "#{"--test #{params[:app_test_apk]} " unless params[:app_test_apk].nil?}"\
55
+ "#{"--use-orchestrator " if params[:type] == "instrumentation" && params[:use_orchestrator]}"\
56
+ "#{params[:devices].map { |d| "--device model=#{d[:model]},version=#{d[:version]},locale=#{d[:locale]},orientation=#{d[:orientation]} " }.join}"\
57
+ "--timeout #{params[:timeout]} "\
58
+ "--results-bucket #{results_bucket} "\
59
+ "--results-dir #{results_dir} "\
60
+ "#{params[:extra_options]} "\
61
+ "#{robo_script_option}"\
62
+ "--format=json 1>#{Helper.if_need_dir(params[:console_log_file_name])}"
63
+ #)
64
+
65
+ # Fetch results
66
+ download_dir = params[:download_dir]
67
+ if download_dir
68
+ UI.message("Fetch results from Firebase Test Lab results bucket")
69
+ json.each do |status|
70
+ axis = status["axis_value"]
71
+ Helper.if_need_dir("#{download_dir}/#{axis}")
72
+ Helper.copy_from_gcs("#{results_bucket}/#{results_dirresults_dir}/#{axis}", download_dir)
73
+ Helper.set_public("#{results_bucket}/#{results_dir}/#{axis}")
74
+ end
75
+ end
120
76
 
121
77
  UI.message("********************************")
122
78
  UI.message("Finish Action")
@@ -215,20 +171,6 @@ module Fastlane
215
171
  type: String,
216
172
  optional: false),
217
173
 
218
- # swit_webhook url (false)
219
- FastlaneCore::ConfigItem.new(key: :swit_webhook_url,
220
- env_name: "SWIT_WEBHOOK_URL",
221
- description: "The Swit WebHOOK URL",
222
- type: String,
223
- optional: true),
224
-
225
- # swit_webhook payload (false)
226
- FastlaneCore::ConfigItem.new(key: :swit_webhook_payload,
227
- env_name: "SWIT_WEBHOOK_PAYLOAD",
228
- description: "The Swit WebHOOK PAYLOAD",
229
- type: String,
230
- optional: true),
231
-
232
174
  # test apk (false)
233
175
  FastlaneCore::ConfigItem.new(key: :app_test_apk,
234
176
  env_name: "APP_TEST_APK",
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AndroidTestlabScriptSwit
3
- VERSION = "0.1.933"
3
+ VERSION = "0.1.935"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-android_testlab_script_swit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.933
4
+ version: 0.1.935
5
5
  platform: ruby
6
6
  authors:
7
7
  - 나비이쁜이
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-08-29 00:00:00.000000000 Z
11
+ date: 2023-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler