fastlane-plugin-firebase_app_distribution 0.3.7 → 0.4.0.pre.1
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 +4 -4
- data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_action.rb +32 -2
- data/lib/fastlane/plugin/firebase_app_distribution/client/firebase_app_distribution_api_client.rb +7 -5
- data/lib/fastlane/plugin/firebase_app_distribution/helper/firebase_app_distribution_auth_client.rb +5 -6
- data/lib/fastlane/plugin/firebase_app_distribution/helper/upload_status_response.rb +12 -0
- data/lib/fastlane/plugin/firebase_app_distribution/version.rb +1 -1
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ead39ff778cdc9d618dba283f3b3b3149d7c8627bd2dd151836dad8c18f1e933
|
4
|
+
data.tar.gz: 258676867d23801518d9f5945c771a047595860e2e9814570ba495674f0d71c6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21803dd990c28b6053663e2a360c158cc858290f55bdd346b4843680c17dd40f7a5aa6c54572aa9614586045c7673e8c0176a525a8e886d8dd777b4c1a55527e
|
7
|
+
data.tar.gz: 6a72e46140d9eb893c76fb0a5084738465e5feaec313c50e1c40cfaea2ebf7b98f9a18d0049d9c8b1fb032f86497ce9de68da6a104267263e80ce134536978f3
|
data/lib/fastlane/plugin/firebase_app_distribution/actions/firebase_app_distribution_action.rb
CHANGED
@@ -15,6 +15,8 @@ module Fastlane
|
|
15
15
|
extend Auth::FirebaseAppDistributionAuthClient
|
16
16
|
extend Helper::FirebaseAppDistributionHelper
|
17
17
|
|
18
|
+
DEFAULT_UPLOAD_TIMEOUT_SECONDS = 300
|
19
|
+
|
18
20
|
def self.run(params)
|
19
21
|
params.values # to validate all inputs before looking for the ipa/apk/aab
|
20
22
|
|
@@ -42,7 +44,10 @@ module Fastlane
|
|
42
44
|
validate_aab_setup!(aab_info)
|
43
45
|
end
|
44
46
|
|
45
|
-
|
47
|
+
upload_timeout = get_upload_timeout(params)
|
48
|
+
|
49
|
+
upload_status_response = fad_api_client.upload(app_name, binary_path, platform.to_s, upload_timeout)
|
50
|
+
release_name = upload_status_response.release_name
|
46
51
|
|
47
52
|
if binary_type == :AAB && aab_info && !aab_info.certs_provided?
|
48
53
|
updated_aab_info = fad_api_client.get_aab_info(app_name)
|
@@ -65,6 +70,18 @@ module Fastlane
|
|
65
70
|
group_aliases = string_to_array(groups)
|
66
71
|
fad_api_client.distribute(release_name, emails, group_aliases)
|
67
72
|
UI.success("🎉 App Distribution upload finished successfully.")
|
73
|
+
|
74
|
+
if upload_status_response.firebase_console_uri
|
75
|
+
UI.message("🔗 View this release in the Firebase console: #{upload_status_response.firebase_console_uri}")
|
76
|
+
end
|
77
|
+
|
78
|
+
if upload_status_response.testing_uri
|
79
|
+
UI.message("🔗 Share this release with testers: #{upload_status_response.testing_uri}")
|
80
|
+
end
|
81
|
+
|
82
|
+
if upload_status_response.binary_download_uri
|
83
|
+
UI.message("🔗 Download the release binary (link expires in 1 hour): #{upload_status_response.binary_download_uri}")
|
84
|
+
end
|
68
85
|
end
|
69
86
|
|
70
87
|
def self.description
|
@@ -135,6 +152,14 @@ module Fastlane
|
|
135
152
|
end
|
136
153
|
end
|
137
154
|
|
155
|
+
def self.get_upload_timeout(params)
|
156
|
+
if params[:upload_timeout]
|
157
|
+
return params[:upload_timeout]
|
158
|
+
else
|
159
|
+
return DEFAULT_UPLOAD_TIMEOUT_SECONDS
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
138
163
|
def self.validate_aab_setup!(aab_info)
|
139
164
|
if aab_info && aab_info.integration_state != AabInfo::AabState::INTEGRATED && aab_info.integration_state != AabInfo::AabState::UNAVAILABLE
|
140
165
|
case aab_info.integration_state
|
@@ -242,7 +267,12 @@ module Fastlane
|
|
242
267
|
FastlaneCore::ConfigItem.new(key: :service_credentials_file,
|
243
268
|
description: "Path to Google service account json",
|
244
269
|
optional: true,
|
245
|
-
type: String)
|
270
|
+
type: String),
|
271
|
+
FastlaneCore::ConfigItem.new(key: :upload_timeout,
|
272
|
+
description: "The amount of seconds before the upload will timeout, if not completed",
|
273
|
+
optional: true,
|
274
|
+
default_value: DEFAULT_UPLOAD_TIMEOUT_SECONDS,
|
275
|
+
type: Integer)
|
246
276
|
]
|
247
277
|
end
|
248
278
|
|
data/lib/fastlane/plugin/firebase_app_distribution/client/firebase_app_distribution_api_client.rb
CHANGED
@@ -106,11 +106,12 @@ module Fastlane
|
|
106
106
|
# app_name - Firebase App resource name
|
107
107
|
# binary_path - Absolute path to your app's aab/apk/ipa file
|
108
108
|
# platform - 'android' or 'ios'
|
109
|
+
# timeout - The amount of seconds before the upload will timeout, if not completed
|
109
110
|
#
|
110
111
|
# Throws a user_error if the binary file does not exist
|
111
|
-
def upload_binary(app_name, binary_path, platform)
|
112
|
+
def upload_binary(app_name, binary_path, platform, timeout)
|
112
113
|
response = connection.post(binary_upload_url(app_name), read_binary(binary_path)) do |request|
|
113
|
-
request.options.timeout =
|
114
|
+
request.options.timeout = timeout # seconds
|
114
115
|
request.headers[AUTHORIZATION] = "Bearer " + @auth_token
|
115
116
|
request.headers[CONTENT_TYPE] = APPLICATION_OCTET_STREAM
|
116
117
|
request.headers[CLIENT_VERSION] = client_version_header_value
|
@@ -130,16 +131,17 @@ module Fastlane
|
|
130
131
|
# args
|
131
132
|
# app_name - Firebase App resource name
|
132
133
|
# binary_path - Absolute path to your app's aab/apk/ipa file
|
134
|
+
# timeout - The amount of seconds before the upload will timeout, if not completed
|
133
135
|
#
|
134
136
|
# Returns the release_name of the uploaded release.
|
135
137
|
#
|
136
138
|
# Crashes if the number of polling retries exceeds MAX_POLLING_RETRIES or if the binary cannot
|
137
139
|
# be uploaded.
|
138
|
-
def upload(app_name, binary_path, platform)
|
140
|
+
def upload(app_name, binary_path, platform, timeout)
|
139
141
|
binary_type = binary_type_from_path(binary_path)
|
140
142
|
|
141
143
|
UI.message("⌛ Uploading the #{binary_type}.")
|
142
|
-
operation_name = upload_binary(app_name, binary_path, platform)
|
144
|
+
operation_name = upload_binary(app_name, binary_path, platform, timeout)
|
143
145
|
|
144
146
|
upload_status_response = get_upload_status(operation_name)
|
145
147
|
MAX_POLLING_RETRIES.times do
|
@@ -169,7 +171,7 @@ module Fastlane
|
|
169
171
|
UI.crash!("It took longer than expected to process your #{binary_type}, please try again.")
|
170
172
|
end
|
171
173
|
|
172
|
-
upload_status_response
|
174
|
+
upload_status_response
|
173
175
|
end
|
174
176
|
|
175
177
|
# Fetches the status of an uploaded binary
|
data/lib/fastlane/plugin/firebase_app_distribution/helper/firebase_app_distribution_auth_client.rb
CHANGED
@@ -24,24 +24,23 @@ module Fastlane
|
|
24
24
|
# Crashes if given invalid or missing credentials
|
25
25
|
def fetch_auth_token(google_service_path, firebase_cli_token, debug = false)
|
26
26
|
if !google_service_path.nil? && !google_service_path.empty?
|
27
|
-
UI.message("Authenticating with --service_credentials_file path parameter: #{google_service_path}")
|
27
|
+
UI.message("🔐 Authenticating with --service_credentials_file path parameter: #{google_service_path}")
|
28
28
|
token = service_account(google_service_path, debug)
|
29
29
|
elsif !firebase_cli_token.nil? && !firebase_cli_token.empty?
|
30
|
-
UI.message("Authenticating with --firebase_cli_token parameter")
|
30
|
+
UI.message("🔐 Authenticating with --firebase_cli_token parameter")
|
31
31
|
token = firebase_token(firebase_cli_token, debug)
|
32
32
|
elsif !ENV["FIREBASE_TOKEN"].nil? && !ENV["FIREBASE_TOKEN"].empty?
|
33
|
-
UI.message("Authenticating with FIREBASE_TOKEN environment variable")
|
33
|
+
UI.message("🔐 Authenticating with FIREBASE_TOKEN environment variable")
|
34
34
|
token = firebase_token(ENV["FIREBASE_TOKEN"], debug)
|
35
35
|
elsif !ENV["GOOGLE_APPLICATION_CREDENTIALS"].nil? && !ENV["GOOGLE_APPLICATION_CREDENTIALS"].empty?
|
36
|
-
UI.message("Authenticating with GOOGLE_APPLICATION_CREDENTIALS environment variable: #{ENV['GOOGLE_APPLICATION_CREDENTIALS']}")
|
36
|
+
UI.message("🔐 Authenticating with GOOGLE_APPLICATION_CREDENTIALS environment variable: #{ENV['GOOGLE_APPLICATION_CREDENTIALS']}")
|
37
37
|
token = service_account(ENV["GOOGLE_APPLICATION_CREDENTIALS"], debug)
|
38
38
|
elsif (refresh_token = refresh_token_from_firebase_tools)
|
39
|
-
UI.message("No authentication method specified. Using cached Firebase CLI credentials.")
|
39
|
+
UI.message("🔐 No authentication method specified. Using cached Firebase CLI credentials.")
|
40
40
|
token = firebase_token(refresh_token, debug)
|
41
41
|
else
|
42
42
|
UI.user_error!(ErrorMessage::MISSING_CREDENTIALS)
|
43
43
|
end
|
44
|
-
UI.success("🔐 Authenticated successfully.")
|
45
44
|
token
|
46
45
|
end
|
47
46
|
|
@@ -31,6 +31,18 @@ class UploadStatusResponse
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
def firebase_console_uri
|
35
|
+
release ? release[:firebaseConsoleUri] : nil
|
36
|
+
end
|
37
|
+
|
38
|
+
def testing_uri
|
39
|
+
release ? release[:testingUri] : nil
|
40
|
+
end
|
41
|
+
|
42
|
+
def binary_download_uri
|
43
|
+
release ? release[:binaryDownloadUri] : nil
|
44
|
+
end
|
45
|
+
|
34
46
|
def status
|
35
47
|
response ? response[:result] : nil
|
36
48
|
end
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-firebase_app_distribution
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0.pre.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Natchev
|
8
8
|
- Manny Jimenez
|
9
9
|
- Alonso Salas Infante
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-01-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: pry
|
@@ -138,7 +138,7 @@ dependencies:
|
|
138
138
|
- - ">="
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: 2.127.1
|
141
|
-
description:
|
141
|
+
description:
|
142
142
|
email:
|
143
143
|
- snatchev@google.com
|
144
144
|
- mannyjimenez@google.com
|
@@ -169,7 +169,7 @@ homepage: https://github.com/fastlane/fastlane-plugin-firebase_app_distribution
|
|
169
169
|
licenses:
|
170
170
|
- MIT
|
171
171
|
metadata: {}
|
172
|
-
post_install_message:
|
172
|
+
post_install_message:
|
173
173
|
rdoc_options: []
|
174
174
|
require_paths:
|
175
175
|
- lib
|
@@ -180,12 +180,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
180
180
|
version: '0'
|
181
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
182
|
requirements:
|
183
|
-
- - "
|
183
|
+
- - ">"
|
184
184
|
- !ruby/object:Gem::Version
|
185
|
-
version:
|
185
|
+
version: 1.3.1
|
186
186
|
requirements: []
|
187
|
-
rubygems_version: 3.
|
188
|
-
signing_key:
|
187
|
+
rubygems_version: 3.1.6
|
188
|
+
signing_key:
|
189
189
|
specification_version: 4
|
190
190
|
summary: Release your beta builds to Firebase App Distribution. https://firebase.google.com/docs/app-distribution
|
191
191
|
test_files: []
|