fastlane-plugin-android_testlab_script_swit 0.1.933 → 0.1.935

Sign up to get free protection for your applications and to get access to all the features.
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