fastlane-plugin-lambdatest 0.1.6 → 0.1.8

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: a4161c59c27837cca67ca80599a10b40f40b9b4082767e9a84e97ffd98fdfb45
4
- data.tar.gz: 1578b038a477b2dc96be21fe3e7e013aa77eed11055aa4859e79e133cff95643
3
+ metadata.gz: '0904dd72df4f837c5ed44f1e39bacacbbb10a87d191b7ea60b9fb2f84fc407d1'
4
+ data.tar.gz: 1f67880f158c86feb45be918c00dff96cbb8517dc0671cabf36947893855b7ed
5
5
  SHA512:
6
- metadata.gz: 79288b6688fd2162065dd9c74b8a0b900b847bb6523417537ed88006177581c371b9ecf6c3669f9851a9c417ee73990002117f8f70712126b8d335455588b0d2
7
- data.tar.gz: 5cc8128429576c44a1ffc0434e0412eaa043e25d3cd7d76a451fff93e65bb9bdd143fb4c00e43bdda8854d8fe0431db3760a58a6cb6c676b34fac6139b0e443a
6
+ metadata.gz: 02cef93a9d104f94bc69d3999be383d99cce19a45e50fc9c8c97c3afe511c329b7f771e9308de808f6fafb12ff9f0bfbd9cdd41eff87007f04a37bb18cac7e06
7
+ data.tar.gz: d7204a4d2edf5c9e5b0fd251aa73ffdaef7bcdad36e31e51fb25f3266b86f8d0a35be8d2a0ced2db366fcba0eb82f04dfe836058b658d1b607c5b96181260057
data/README.md CHANGED
@@ -29,7 +29,7 @@ upload_to_lambdatest(
29
29
  |---------------------|------------------------------------|----------|----------------
30
30
  | `lt_username` | LambdaTest username (from ENV) | ✅ Yes | N/A |
31
31
  | `lt_access_key` | LambdaTest access key (from ENV) | ✅ Yes | N/A |
32
- | `file_path` | Path to the app file | ✅ Yes | N/A |
32
+ | `file_path` | Path to the app file | ❌ No | Output of `gym` (iOS) or `gradle` APK/AAB (Android) in the same lane |
33
33
  | `app_name` | App Name | ❌ No | "app" |
34
34
  | `visibility` | Visibility | ❌ No | "individual" |
35
35
  | `is_real_device` | Real Device or Virual Device | ❌ No | true |
@@ -9,7 +9,7 @@ module Fastlane
9
9
  end
10
10
  class UploadToLambdatestAction < Action
11
11
 
12
- SUPPORTED_EXTENSIONS = ["apk", "ipa", "aab"]
12
+ SUPPORTED_EXTENSIONS = ["apk", "ipa", "aab", "zip"]
13
13
 
14
14
  def self.run(params)
15
15
  lt_username = params[:lt_username] # Required
@@ -23,9 +23,9 @@ module Fastlane
23
23
 
24
24
  api_endpoint = self.get_api_endpoint(is_real_device)
25
25
 
26
- self.validate_file_path(file_path)
26
+ self.validate_file_path(file_path, is_real_device)
27
27
 
28
- UI.message("Started Uploading app to Lambdatest...")
28
+ UI.message("Started Uploading app " + file_path + " to Lambdatest...")
29
29
 
30
30
  lt_app_url = Helper::LambdatestHelper.upload_file(lt_username, lt_access_key, file_path, api_endpoint, custom_id, app_name, visibility, ios_keychain_enabled)
31
31
 
@@ -50,9 +50,13 @@ module Fastlane
50
50
  end
51
51
 
52
52
  # Validating file_path and extension.
53
- def self.validate_file_path(file_path)
53
+ def self.validate_file_path(file_path, is_real_device)
54
+ UI.user_error!("No app file found. Pass file_path, or build the app with gradle or gym in the same lane ❌ .") if file_path.empty?
54
55
  UI.user_error!("file not found at '#{file_path}' ❌ .") unless File.exist?(file_path)
55
56
  file_path_parts = file_path.split(".")
57
+ if file_path_parts.last == "zip" && is_real_device
58
+ UI.user_error!("Uploading zip files is only supported for virtual devices. Please set is_real_device to false.")
59
+ end
56
60
  unless file_path_parts.length > 1 && SUPPORTED_EXTENSIONS.include?(file_path_parts.last)
57
61
  UI.user_error!("Invalid file extension, only files with extensions " + SUPPORTED_EXTENSIONS.to_s + " are allowed to be uploaded.")
58
62
  end
@@ -67,7 +71,7 @@ module Fastlane
67
71
  end
68
72
 
69
73
  def self.details
70
- "Uploads IPA and APK files to Lambdatest for test."
74
+ "Uploads IPA, APK and AAB files to Lambdatest for test."
71
75
  end
72
76
 
73
77
  def self.default_file_path
@@ -76,8 +80,10 @@ module Fastlane
76
80
  # Shared value for ipa path if it was generated by gym https://docs.fastlane.tools/actions/gym/.
77
81
  return Actions.lane_context[Actions::SharedValues::IPA_OUTPUT_PATH]
78
82
  else
79
- # Shared value for apk if it was generated by gradle.
80
- return Actions.lane_context[Actions::SharedValues::GRADLE_APK_OUTPUT_PATH]
83
+ # Shared value for apk or aab if it was generated by gradle; the newer file wins, apk on a tie.
84
+ apk_path = Actions.lane_context[Actions::SharedValues::GRADLE_APK_OUTPUT_PATH]
85
+ aab_path = Actions.lane_context[Actions::SharedValues::GRADLE_AAB_OUTPUT_PATH]
86
+ return [apk_path, aab_path].compact.max_by { |path| File.exist?(path) ? File.mtime(path) : Time.at(0) }
81
87
  end
82
88
  end
83
89
 
@@ -35,6 +35,10 @@ module Fastlane
35
35
  payload[:ios_keychain_enabled] = ios_keychain_enabled
36
36
  end
37
37
 
38
+ if File.extname(file_path).downcase == ".zip"
39
+ payload[:type] = 4
40
+ end
41
+
38
42
  headers = {
39
43
  "User-Agent" => "fastlane_plugin_lambdatest"
40
44
  }
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Lambdatest
3
- VERSION = "0.1.6"
3
+ VERSION = "0.1.8"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-lambdatest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - LambdaTest
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-07-14 00:00:00.000000000 Z
11
+ date: 2026-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -190,5 +190,5 @@ requirements: []
190
190
  rubygems_version: 3.1.2
191
191
  signing_key:
192
192
  specification_version: 4
193
- summary: fastlane plugin to upload app to lambdatest
193
+ summary: fastlane plugin to upload app to TestMu AI (Formerly LambdaTest).
194
194
  test_files: []