fastlane-plugin-android_testlab_script_swit 0.1.917 → 0.1.919

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: 89b7b3b9a757a277099df6757bd42ece2503955a9ec758eee84958e0ccbb6b34
4
- data.tar.gz: cc93a06dd35e0a13d4b186f09ff19cf631391f94699256ebb584b2a509d930d7
3
+ metadata.gz: 3abf4f751114b6fa21b861e2d83a011b51de444a3c61f86dd0b764a8d4236d2a
4
+ data.tar.gz: 4f5735bce308da7f556689e6fe52fed729f56502edd48f089fb5a151c6af4afa
5
5
  SHA512:
6
- metadata.gz: c51e037474c6377ac1a0080e0c8b62e5efb75424fd3a81743567573e1e84f8515f52c0dc8ea1571576c32f5cea2272266b3613d3160b06411dcd0eb323da54ca
7
- data.tar.gz: f608d4c3df7e20a48e27c0bcfcfb39b2d82cb62f55c5e3bda831d833408d03c0eb7aa3128c91ab2c055abb77683eb2df223adeb3255ff7ebfba32b1242bb83b0
6
+ metadata.gz: cc540da45ace53d8e58eef8856458f34eb0dd69542c06bbbdec125c1e92952523367a22ef6c337e5e71464d92bc9a11c7736b40e0792d91ce6cb0a773e81e82b
7
+ data.tar.gz: 59deca4098f4cd101adcfd771be2502860a39b853fb15ab7ed0ca188853b391f731a95fa82daa16b9ff5539dff3ff9891b2f662dac9ab7f5e83fd2915ed55637
@@ -13,97 +13,88 @@ module Fastlane
13
13
  UI.message("********************************")
14
14
  UI.message("Start Action")
15
15
  UI.message("********************************")
16
-
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')}"
20
-
21
- # Set Target Project ID
22
- Helper.config(params[:project_id])
23
-
24
- # Activate service account
25
- Helper.authenticate(params[:gcloud_key_file])
26
-
27
- # RoboScriptOption
28
- robo_script_option = params[:robo_script_path].nil? ? "" : "--robo-script #{params[:robo_script_path]} "
16
+
17
+ def measure_time
18
+ start_time = Time.now
19
+ yield
20
+ end_time = Time.now
21
+ duration_sec_total = (end_time - start_time).round(1)
22
+ duration_min = (duration_sec_total / 60).round(1)
23
+ duration_sec = duration_sec_total % 60
24
+ return "#{duration_min}분 소요시간 자동화"
25
+ end
26
+
27
+ duration = measure_time do
28
+
29
+ # Result Bucket & Dir
30
+ results_bucket = params[:firebase_test_lab_results_bucket] || "#{params[:project_id]}_test_results"
31
+ results_dir = params[:firebase_test_lab_results_dir] || "firebase_test_result_#{DateTime.now.strftime('%Y-%m-%d-%H:%M:%S')}"
32
+
33
+ # Set Target Project ID
34
+ Helper.config(params[:project_id])
35
+
36
+ # Activate service account
37
+ Helper.authenticate(params[:gcloud_key_file])
38
+
39
+ # RoboScriptOption
40
+ robo_script_option = params[:robo_script_path].nil? ? "" : "--robo-script #{params[:robo_script_path]} "
41
+
42
+ # Run Firebase Test Lab
43
+ Helper.run_tests(params[:gcloud_components_channel], "--type #{params[:type]} "\
44
+ "--app #{params[:app_apk]} "\
45
+ "#{"--test #{params[:app_test_apk]} " unless params[:app_test_apk].nil?}"\
46
+ "#{"--use-orchestrator " if params[:type] == "instrumentation" && params[:use_orchestrator]}"\
47
+ "#{params[:devices].map { |d| "--device model=#{d[:model]},version=#{d[:version]},locale=#{d[:locale]},orientation=#{d[:orientation]} " }.join}"\
48
+ "--timeout #{params[:timeout]} "\
49
+ "--results-bucket #{results_bucket} "\
50
+ "--results-dir #{results_dir} "\
51
+ "#{params[:extra_options]} "\
52
+ "#{robo_script_option}"\
53
+ "--format=json 1>#{Helper.if_need_dir(params[:console_log_file_name])}"
54
+ )
55
+
56
+ # Fetch results
57
+ download_dir = params[:download_dir]
58
+ if download_dir
59
+ UI.message("Fetch results from Firebase Test Lab results bucket")
60
+ json.each do |status|
61
+ axis = status["axis_value"]
62
+ Helper.if_need_dir("#{download_dir}/#{axis}")
63
+ Helper.copy_from_gcs("#{results_bucket}/#{results_dir}/#{axis}", download_dir)
64
+ Helper.set_public("#{results_bucket}/#{results_dir}/#{axis}")
65
+ end
66
+ end
67
+
68
+ end
29
69
 
30
70
  # Swit Result PayLoad
31
71
  swit_device_payload = ""
32
72
 
33
- # Swit Send PayLoad
73
+ # Swit Send PayLoad - 테스트 시간 추가
34
74
  swit_webhook_payload = params[:swit_webhook_payload][0..-5] + ','
75
+ swit_webhook_payload += "{\"type\":\"rt_section\",\"indent\":1,\"elements\":[{\"type\":\"rt_text\",\"content\":\"테스트 시간 : #{duration}\"}]},"
35
76
 
36
- # Run Firebase Test Lab
37
- Helper.run_tests(params[:gcloud_components_channel], "--type #{params[:type]} "\
38
- "--app #{params[:app_apk]} "\
39
- "#{"--test #{params[:app_test_apk]} " unless params[:app_test_apk].nil?}"\
40
- "#{"--use-orchestrator " if params[:type] == "instrumentation" && params[:use_orchestrator]}"\
41
- "#{params[:devices].map { |d| "--device model=#{d[:model]},version=#{d[:version]},locale=#{d[:locale]},orientation=#{d[:orientation]} " }.join}"\
42
- "--timeout #{params[:timeout]} "\
43
- "--results-bucket #{results_bucket} "\
44
- "--results-dir #{results_dir} "\
45
- "#{params[:extra_options]} "\
46
- "#{robo_script_option}"\
47
- "--format=json 1>#{Helper.if_need_dir(params[:console_log_file_name])}"
48
- )
49
-
50
77
  # Firebase Test Lab Result Json
51
78
  resultJson = JSON.parse(File.read(params[:console_log_file_name]))
52
79
 
53
80
  swit_device_payload = resultJson.map.with_index do |item, device_index|
54
81
  axis_value_parts = item["axis_value"].split('-')
55
82
  outcome = item["outcome"]
56
-
83
+
84
+ model = axis_value_parts[0]
85
+ version = axis_value_parts[1]
86
+ locale = axis_value_parts[2]
87
+ orientation = axis_value_parts[3]
88
+
57
89
  parts_payload = axis_value_parts.map do |part|
58
90
  "{\"type\":\"rt_section\",\"indent\":2,\"elements\":[{\"type\":\"rt_text\",\"content\":\"Part : #{part}\"}]}"
59
91
  end.join(',')
60
92
 
61
- device_payload = "{\"type\":\"rt_section\",\"indent\":1,\"elements\":[{\"type\":\"rt_text\",\"content\":\"Device#{device_index + 1}\"}]},#{parts_payload},{\"type\":\"rt_section\",\"indent\":2,\"elements\":[{\"type\":\"rt_text\",\"content\": #{outcome.to_json}}]}"
62
- end.join(',')
93
+ device_payload = "{\"type\":\"rt_section\",\"indent\":1,\"elements\":[{\"type\":\"rt_text\",\"content\":\"Device#{device_index + 1}\"}]},{\"type\":\"rt_section\",\"indent\":2,\"elements\":[{\"type\":\"rt_text\",\"content\":\"model: #{model}\"},{\"type\":\"rt_text\",\"content\":\"version: #{version}\"},{\"type\":\"rt_text\",\"content\":\"locale: #{locale}\"},{\"type\":\"rt_text\",\"content\":\"orientation: #{orientation}\"},{\"type\":\"rt_text\",\"content\": \"Outcome: #{outcome.to_json}}]}"
94
+ end.join(',')
63
95
 
64
96
  swit_device_payload.chomp!(',')
65
97
 
66
-
67
-
68
-
69
- # 각 JSON 객체에 대해 반복
70
- # resultJson.each do |item|
71
- # # 정보 추출하기
72
- # axis_value = item["axis_value"]
73
- # outcome = item["outcome"]
74
- # test_details = item["test_details"]
75
- #
76
- # # 'axis_value' 분리하기
77
- # parts = axis_value.split('-')
78
- #
79
- # parts.each_with_index do |part, index|
80
- # swit_device_payload += "{\"type\":\"rt_section\",\"indent\":1,\"elements\":[{\"type\":\"rt_text\",\"content\":\"Device#{index + 1}\"}]},
81
- # {\"type\": \"rt_section\",\"indent\":2,\"elements\":[{\"type\":\"rt_text\",\"content\":\"Part : #{parts[index]}\"}]},
82
- # {\"type\":\"rt_section\",\"indent\":2,\"elements\":[{\"type\":\"rt_text\",\"content":"Result : #{outcome}\"}]}"
83
- #
84
- # swit_device_payload += "," unless index == parts.length - 1
85
- # end
86
- # end
87
-
88
-
89
-
90
-
91
-
92
- # 중간 체크
93
- UI.message(swit_device_payload)
94
-
95
- # Fetch results
96
- download_dir = params[:download_dir]
97
- if download_dir
98
- UI.message("Fetch results from Firebase Test Lab results bucket")
99
- json.each do |status|
100
- axis = status["axis_value"]
101
- Helper.if_need_dir("#{download_dir}/#{axis}")
102
- Helper.copy_from_gcs("#{results_bucket}/#{results_dir}/#{axis}", download_dir)
103
- Helper.set_public("#{results_bucket}/#{results_dir}/#{axis}")
104
- end
105
- end
106
-
107
98
  # Swit PayLoad 병합
108
99
  swit_webhook_payload += swit_device_payload + ']}]}'
109
100
 
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AndroidTestlabScriptSwit
3
- VERSION = "0.1.917"
3
+ VERSION = "0.1.919"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
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.917
4
+ version: 0.1.919
5
5
  platform: ruby
6
6
  authors:
7
7
  - 나비이쁜이