fastlane-plugin-android_reporter 0.1.29 → 0.1.34

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: 60cf725fcbd15aaabfbacbe9e7735b6fbc450530af031305485f98c06d42489b
4
- data.tar.gz: 17c84771c363ea43133a01bdcc83b149ac89a939fd3673e6fddc3f8e3f7b717e
3
+ metadata.gz: b11bd5afc304d64317d63d89038f5aa5f4ea685a713fecb6b3e742e5adbc4b66
4
+ data.tar.gz: 82c87575e9ec8e988abd5ed535d3e8260896a8a3577239160457946e88239a05
5
5
  SHA512:
6
- metadata.gz: d01fa925d85446fa274c17661117637c6e5a7fa3f1f79158b84b4eb96e5377ab340a2922d2f1106d127432a1ef842db42d01041965634331ca213f708b828093
7
- data.tar.gz: ae659b677a8d02c0c67b77591855d25f9245b7ce4a0317751054ec9f7e4d1d3306792d0981c81f04467eeb8357289c9c64e907cc933abdfaf8bb47be801ae834
6
+ metadata.gz: 7aab5363f08ccc2b0953ec3c7fcb098230eaa7c0c6150f921d7db6aa0259e4445b96db137ec27d3f95820e85249e51ea991ca17d2899c0c855ccfb525b4f8eed
7
+ data.tar.gz: be4ad6bdd4bc014428deca6b8fb4bccfd5cbd3c228165b671601e89f05ef6fd1ef39d9a6efa28103877e19b86238d9f0b0a194492b1cda738cc9df4f6bc98fd1
@@ -24,35 +24,9 @@ module Fastlane
24
24
  isLogcatFileUploaded = false
25
25
  isGradleDebugFileUploaded = false
26
26
  isGradleErrorFileUploaded = false
27
+ buildName = "Current Build"
27
28
 
28
- # 1. Delete Previus Generated Files
29
- if params[:is_delete_prev_files_enabled]
30
- begin
31
- File.open('logcat.txt', 'r') do |f|
32
- File.delete(f)
33
- end
34
- rescue Errno::ENOENT
35
- UI.message("Something Wrong When Delete Previus File [logcat.txt]")
36
- end
37
-
38
- begin
39
- File.open('android-logs.txt', 'r') do |f|
40
- File.delete(f)
41
- end
42
- rescue Errno::ENOENT
43
- UI.message("Something Wrong When Delete Previus File [android-logs.txt]")
44
- end
45
-
46
- begin
47
- File.open('android-error-logs.txt', 'r') do |f|
48
- File.delete(f)
49
- end
50
- rescue Errno::ENOENT
51
- UI.message("Something Wrong When Delete Previus File [android-error-logs.txt]")
52
- end
53
- end
54
-
55
- # 0. Checkout git to Current Branch to Run Tests on the Current Branch
29
+ # 1. Checkout git to Current Branch to Run Tests on the Current Branch
56
30
  if params[:tests_branch_name].to_s.length > 0
57
31
  begin
58
32
  sh("git fetch")
@@ -62,7 +36,27 @@ module Fastlane
62
36
  end
63
37
  end
64
38
 
65
- # 1. Send Slack Message from Android Reporter Bot That Testing Task Has been Started ....
39
+ # 2. Get Build Version From Gradle.Props File
40
+ if params[:version_name_line_number].to_s.length > 0
41
+ UI.message("Step Read Version Name of the Build")
42
+ line_num = params[:version_name_line_number].to_i
43
+ text=File.open('gradle.properties').read
44
+ text.gsub!(/\r\n?/, "\n")
45
+ text.each_line.with_index do |line, index|
46
+ if (index + 1) == line_num
47
+ buildName = line
48
+ end
49
+ end
50
+ end
51
+
52
+ # 3. Split The String and Get the Value Without Key
53
+ if params[:version_name_line_number].to_s.length > 0
54
+ buildName = buildName.split('=', -1)
55
+ buildName = buildName[1]
56
+ UI.message("Current Build Name : " + buildName)
57
+ end
58
+
59
+ # 4. Send Slack Message from Android Reporter Bot That Testing Task Has been Started ....
66
60
  if is_slack_enabled
67
61
  UI.message("Slack Messages Bot Started .... [Configuration Step]")
68
62
  Slack.configure do |config|
@@ -75,6 +69,7 @@ module Fastlane
75
69
  text: " ================================================================================== \n" +
76
70
  " New UI Testing Task Started For Current Release : " + time + " \n " +
77
71
  " Current Branch Build : " + sh("git rev-parse --abbrev-ref HEAD") +
72
+ " Current Build Version : " + buildName +
78
73
  " ================================================================================== \n",
79
74
  as_user: true
80
75
  )
@@ -86,24 +81,26 @@ module Fastlane
86
81
  end
87
82
  end
88
83
 
89
- # 2. List All Available AVD's in The Device
90
- # 3. Run the Target AVD Name From Params
84
+ # 5. List All Available AVD's in The Device
85
+ # 6. Run the Target AVD Name From Params
91
86
  if params[:avd_name].to_s.length > 0
92
87
  Thread.new do
93
- UI.message("Android Reporting Started to Run AVD : (" + avd_name + ")")
94
- sh(android_sdk_path + "/tools/bin/avdmanager", "list", "avd")
95
- sh("cd", android_sdk_path)
96
- sh(android_sdk_path + "/emulator/emulator", "-avd", avd_name)
88
+ UI.message("Android Reporting Started to Run AVD : (" + avd_name + ")")
89
+ sh(android_sdk_path + "/tools/bin/avdmanager", "list", "avd")
90
+ sh("cd", android_sdk_path)
91
+ sh(android_sdk_path + "/emulator/emulator", "-avd", avd_name)
97
92
  end
98
93
  end
99
94
 
100
- # 4. Clear the Logcat Server Before Start
95
+ # 7. Clear the Logcat Server Before Start
101
96
  if params[:generate_adb_file]
102
- sh("adb logcat -c")
97
+ Process.fork do
98
+ sh("adb logcat -c")
99
+ end
103
100
  end
104
101
 
105
- # 5. Start Clean Task with Target UI Task
106
- # 6. If Gradle Task Success then Will Generate ADB Log File then Kill Server Connection inside ADB
102
+ # 8. Start Clean Task with Target UI Task
103
+ # 9. If Gradle Task Success then Will Generate ADB Log File then Kill Server Connection inside ADB
107
104
  begin
108
105
  UI.message([
109
106
  "Android Reporting Started to Run Gradle Testing Task ...",
@@ -115,165 +112,156 @@ module Fastlane
115
112
  if gradle_task_result
116
113
  UI.message("Gradle Task Finished Successfully ...")
117
114
  if params[:generate_adb_file]
118
- Process.fork do
119
- UI.message([
120
- "Android Reporter Started to Save Logcat Logs From ADB Connection Server",
121
- "ADB Reporting File : [logcat.txt]"
122
- ])
123
-
124
- begin
125
- sh("adb logcat -d > logcat.txt kill-server")
126
- sh("adb kill-server")
127
- rescue => error
128
- if error
129
- UI.error("Something Error with Logcat Debug Report File")
130
- end
131
- puts error.message
132
- puts error.backtrace
133
- end
134
- end
115
+ UI.message([
116
+ "Android Reporter Started to Save Logcat Logs From ADB Connection Server",
117
+ "ADB Reporting File : [logcat.txt]"
118
+ ])
119
+ else
120
+ UI.message("Gradle Task Tests Failed ...")
135
121
  end
136
122
  end
123
+
124
+ Thread.new do
125
+ Process.fork do
126
+ sh("adb logcat -d > logcat.txt kill-server")
127
+ begin
128
+ UI.message("Slack Messages Bot Upload Files Tasks Started ....")
129
+ if(File.exist?("logcat.txt"))
130
+ UI.message("logcat.txt File exists ...")
131
+ client.files_upload(
132
+ channels: "#" + params[:slack_channel_name],
133
+ as_user: true,
134
+ file: Faraday::UploadIO.new('logcat.txt', 'text/plain'),
135
+ title: "Android UI Testing (ADB Logcat Result)",
136
+ filename: "logcat.txt",
137
+ initial_comment: "Current UI Testing Build Result File Report [logcat.txt]"
138
+ )
139
+
140
+ isLogcatFileUploaded = true
141
+ UI.message("Slack Step Upload [logcat.txt]")
142
+ else
143
+ isLogcatFileUploaded = false
144
+ UI.error("File does not exist [logcat.txt]")
145
+ end
146
+ rescue => error
147
+ if error
148
+ UI.error("Something Error with Slack Upload File : [Step Upload Logcat.txt File to Slack]")
149
+ end
150
+ puts error.message
151
+ puts error.backtrace
152
+ end
153
+ end
154
+ end
155
+
137
156
  end
138
- rescue
157
+ rescue => error
139
158
  UI.error("Gradle Task Finished With Error ...")
140
- if params[:generate_adb_file]
141
- begin
142
- sh("adb logcat -e > logcat.txt kill-server")
143
- rescue => error
144
- if error
145
- UI.error("Something Error with Logcat Error Report File")
146
- end
147
- puts error.message
148
- puts error.backtrace
149
- end
150
- end
159
+ puts error.backtrace
151
160
  end
152
161
 
153
- # 7. Generate Gradle Tasks (Failed and Success Files)
162
+ # 10. Generate Gradle Tasks (Failed and Success Files)
154
163
  if params[:generate_gradle_files]
155
- UI.message([
156
- "Android Reporting Started to Generate Gradle Reports Files",
157
- "Gradle Success Debug File : android-logs.txt",
158
- "Gradle Failed Debug File : android-error-logs.txt"
159
- ])
160
-
161
- begin
162
- sh("./gradlew build > android-logs.txt 2> android-error-logs.txt -Dhttp.socketTimeout=60000 -Dhttp.connectionTimeout=60000 -Dorg.gradle.daemon.idletimeout=60000")
163
- sh("./gradlew --stop")
164
- rescue => error
165
- if error
166
- UI.error("Something Error with Generate Gradle Files")
167
- end
168
- puts error.message
169
- puts error.backtrace
164
+ Process.fork do
165
+ sh("./gradlew build > android-logs.txt 2> android-error-logs.txt")
166
+ UI.message([
167
+ "Android Reporting Started to Generate Gradle Reports Files",
168
+ "Gradle Success Debug File : android-logs.txt",
169
+ "Gradle Failed Debug File : android-error-logs.txt"
170
+ ])
170
171
  end
171
172
  end
172
173
 
173
- # 8. Check Slack Option if Enabled or Not To Print The Message
174
+ # 11. Check Slack Option if Enabled or Not To Print The Message
174
175
  if is_slack_enabled
175
176
  UI.message("Slack Configuration Status : Started ...")
176
177
  else
177
178
  UI.message("Slack Configuration Status : Disabled ...")
178
179
  end
179
180
 
180
- sleep(60000)
181
- # 9. Upload Files to Slack
182
- if is_slack_enabled
183
- begin
184
- UI.message("Slack Messages Bot Upload Files Tasks Started ....")
185
- UI.message(__dir__)
186
- if(File.exist?("logcat.txt"))
187
- UI.message("logcat.txt File exists ...")
188
- client.files_upload(
189
- channels: "#" + params[:slack_channel_name],
190
- as_user: true,
191
- file: Faraday::UploadIO.new('logcat.txt', 'text/plain'),
192
- title: "Android UI Testing (ADB Logcat Result)",
193
- filename: "logcat.txt",
194
- initial_comment: "Current UI Testing Build Result File Report [logcat.txt]"
195
- )
196
-
197
- isLogcatFileUploaded = true
198
- UI.message("Slack Step Upload [logcat.txt]")
199
- else
200
- isLogcatFileUploaded = false
201
- UI.error("File does not exist [logcat.txt]")
202
- end
203
- rescue => error
204
- if error
205
- UI.error("Something Error with Slack Upload File : [Step Upload Logcat.txt File to Slack]")
206
- end
207
- puts error.message
208
- puts error.backtrace
209
- end
181
+ # 12. Upload Files to Slack if The Build Failed
182
+ if gradle_task_result == false
183
+ if is_slack_enabled
184
+ begin
185
+ if(File.exist?("android-logs.txt"))
186
+ UI.message("android-logs.txt File exists ...")
187
+ client.files_upload(
188
+ channels: "#" + params[:slack_channel_name],
189
+ as_user: true,
190
+ file: Faraday::UploadIO.new('android-logs.txt', 'text/plain'),
191
+ title: "Android UI Testing (Gradle Debug File Result)",
192
+ filename: "android-logs.txt",
193
+ initial_comment: "Current UI Testing Build Result File Report [Gradle Debug Result]"
194
+ )
195
+
196
+ isGradleDebugFileUploaded = true
197
+ UI.message("Slack Step Upload [android-logs.txt]")
198
+ else
199
+ isGradleDebugFileUploaded = false
200
+ UI.error("File does not exist [android-logs.txt]")
201
+ end
202
+ rescue => error
203
+ if error
204
+ UI.error("Something Error with Slack Upload File : [Step Upload Logcat.txt File to Slack]")
205
+ end
206
+ puts error.message
207
+ puts error.backtrace
208
+ end
210
209
 
211
- begin
212
- if(File.exist?("android-logs.txt"))
213
- UI.message("android-logs.txt File exists ...")
214
- client.files_upload(
215
- channels: "#" + params[:slack_channel_name],
216
- as_user: true,
217
- file: Faraday::UploadIO.new('android-logs.txt', 'text/plain'),
218
- title: "Android UI Testing (Gradle Debug File Result)",
219
- filename: "android-logs.txt",
220
- initial_comment: "Current UI Testing Build Result File Report [Gradle Debug Result]"
221
- )
222
-
223
- isGradleDebugFileUploaded = true
224
- UI.message("Slack Step Upload [android-logs.txt]")
225
- else
226
- isGradleDebugFileUploaded = false
227
- UI.error("File does not exist [android-logs.txt]")
228
- end
229
- rescue => error
230
- if error
231
- UI.error("Something Error with Slack Upload File : [Step Upload Logcat.txt File to Slack]")
232
- end
233
- puts error.message
234
- puts error.backtrace
235
- end
210
+ begin
211
+ if(File.exist?("android-error-logs.txt"))
212
+ UI.message("android-error-logs.txt File exists ...")
213
+ client.files_upload(
214
+ channels: "#" + params[:slack_channel_name],
215
+ as_user: true,
216
+ file: Faraday::UploadIO.new('android-error-logs.txt', 'text/plain'),
217
+ title: "Android UI Testing (Gradle Error File Result)",
218
+ filename: "android-error-logs.txt",
219
+ initial_comment: "Current UI Testing Build Result File Report [Gradle Error Result]"
220
+ )
221
+
222
+ isGradleErrorFileUploaded = true
223
+ UI.message("Slack Step Upload [android-error-logs.txt]")
224
+ else
225
+ isGradleErrorFileUploaded = false
226
+ UI.error("File does not exist [android-error-logs.txt]")
227
+ end
228
+ rescue => error
229
+ if error
230
+ UI.error("Something Error with Slack Upload File : [Step Upload Logcat.txt File to Slack]")
231
+ end
232
+ puts error.message
233
+ puts error.backtrace
234
+ end
236
235
 
237
- begin
238
- if(File.exist?("android-error-logs.txt"))
239
- UI.message("android-error-logs.txt File exists ...")
240
- client.files_upload(
241
- channels: "#" + params[:slack_channel_name],
242
- as_user: true,
243
- file: Faraday::UploadIO.new('android-error-logs.txt', 'text/plain'),
244
- title: "Android UI Testing (Gradle Error File Result)",
245
- filename: "android-error-logs.txt",
246
- initial_comment: "Current UI Testing Build Result File Report [Gradle Error Result]"
247
- )
248
-
249
- isGradleErrorFileUploaded = true
250
- UI.message("Slack Step Upload [android-error-logs.txt]")
251
- else
252
- isGradleErrorFileUploaded = false
253
- UI.error("File does not exist [android-error-logs.txt]")
254
- end
255
- rescue => error
256
- if error
257
- UI.error("Something Error with Slack Upload File : [Step Upload Logcat.txt File to Slack]")
258
- end
259
- puts error.message
260
- puts error.backtrace
261
- end
236
+ # 13. Send Message With Files Summery
237
+ slackFinalMessageContent = "Files Status : With Time : " + time + " : \n"
238
+ if isGradleDebugFileUploaded
239
+ slackFinalMessageContent += "Gradle Debug File Uploaded \n"
240
+ end
262
241
 
263
- slackFinalMessageContent = "Files Status : With Time : " + time + " : Info = \n"
264
- if isGradleDebugFileUploaded
265
- slackFinalMessageContent += "Gradle Debug File Uploaded \n"
266
- end
242
+ if isGradleErrorFileUploaded
243
+ slackFinalMessageContent += "Gradle Error File Uploaded \n"
244
+ end
267
245
 
268
- if isGradleErrorFileUploaded
269
- slackFinalMessageContent += "Gradle Error File Uploaded \n"
270
- end
246
+ if isLogcatFileUploaded
247
+ slackFinalMessageContent += "Logcat ADB Logging File Uploaded \n"
248
+ end
249
+
250
+ client.chat_postMessage(channel: "#" + params[:slack_channel_name], text: slackFinalMessageContent, as_user: true)
271
251
 
272
- if isLogcatFileUploaded
273
- slackFinalMessageContent += "Logcat ADB Logging File Uploaded \n"
274
252
  end
275
253
 
276
- client.chat_postMessage(channel: "#" + params[:slack_channel_name], text: slackFinalMessageContent, as_user: true)
254
+ end
255
+
256
+ # 14. If the Gradle Task Success Then Run Specific Lane Else Send Slack Message The Build Failed
257
+ if gradle_task_result
258
+ if params[:target_lane_name].to_s.length > 0
259
+ client.chat_postMessage(channel: "#" + params[:slack_channel_name], text: "Testing Result Success : [Fastlane Will Execute this Lane (" + params[:target_lane_name] + ") To Send Build]", as_user: true)
260
+ sh("fastlane", params[:target_lane_name])
261
+ end
262
+ else
263
+ UI.message("Gradle Task Result Failed ...")
264
+ client.chat_postMessage(channel: "#" + params[:slack_channel_name], text: "Testing Result Failed : Gradle Testing Task Failed Logs File Should be Uploaded", as_user: true)
277
265
  end
278
266
 
279
267
  end
@@ -342,13 +330,6 @@ module Fastlane
342
330
  optional: true,
343
331
  type: Boolean
344
332
  ),
345
- FastlaneCore::ConfigItem.new(
346
- key: :is_delete_prev_files_enabled,
347
- env_name: "ANDROID_GENERATED_PREV_FILES_ENABLED",
348
- description: "",
349
- optional: true,
350
- type: Boolean
351
- ),
352
333
  FastlaneCore::ConfigItem.new(
353
334
  key: :slack_api_key,
354
335
  env_name: "SLACK_API_TOKEN",
@@ -372,6 +353,22 @@ module Fastlane
372
353
  optional: true,
373
354
  type: String,
374
355
  sensitive: true
356
+ ),
357
+ FastlaneCore::ConfigItem.new(
358
+ key: :target_lane_name,
359
+ env_name: "TARGET_LANE_NAME",
360
+ description: "Target Lane Name To Execute Once Tests Task Successfully Built",
361
+ optional: true,
362
+ type: String,
363
+ sensitive: true
364
+ ),
365
+ FastlaneCore::ConfigItem.new(
366
+ key: :version_name_line_number,
367
+ env_name: "VERSION_NAME_LINE_NUMBER",
368
+ description: "Target Lane Name To Execute Once Tests Task Successfully Built",
369
+ optional: true,
370
+ type: String,
371
+ sensitive: true
375
372
  )
376
373
  ]
377
374
  end
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module AndroidReporter
3
- VERSION = "0.1.29"
3
+ VERSION = "0.1.34"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-android_reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.29
4
+ version: 0.1.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yazan Tarifi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-28 00:00:00.000000000 Z
11
+ date: 2021-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry