fastlane-plugin-emerge 0.6.2 → 0.7.0
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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: d4d089c7870b5c71f07b01d99df92996471d9050ab6fd4b0f6c3290648dcd404
|
|
4
|
+
data.tar.gz: a98f1c7796d0e21d0a2d7dcbadc20e11d3e2de626e1441da4947610e8433d468
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7afe4c7adc02c46fa4193dbed344afc716877d26ca00849f6dce44bdd73e7da8458221aa875e9b9290aeec36c2e08fa2036e71d08581af4de74cb848779fdffe
|
|
7
|
+
data.tar.gz: 3fb17574090d31c7088b5afb3e0f9161e627ba777de779887b7d34ee45ea6094d3439bde09851087035d3c2face7be1caf173fb5228e5b81496f412b80d27aa0
|
|
@@ -13,7 +13,7 @@ module Fastlane
|
|
|
13
13
|
api_token = params[:api_token]
|
|
14
14
|
file_path = params[:file_path] || lane_context[SharedValues::XCODEBUILD_ARCHIVE]
|
|
15
15
|
|
|
16
|
-
if file_path
|
|
16
|
+
if file_path.nil?
|
|
17
17
|
file_path = Dir.glob("#{lane_context[SharedValues::SCAN_DERIVED_DATA_PATH]}/Build/Products/Debug-iphonesimulator/*.app").first
|
|
18
18
|
end
|
|
19
19
|
pr_number = params[:pr_number]
|
|
@@ -22,11 +22,11 @@ module Fastlane
|
|
|
22
22
|
base_sha = params[:base_sha] || params[:base_build_id]
|
|
23
23
|
repo_name = params[:repo_name]
|
|
24
24
|
gitlab_project_id = params[:gitlab_project_id]
|
|
25
|
-
|
|
25
|
+
tag = params[:tag]
|
|
26
26
|
order_file_version = params[:order_file_version]
|
|
27
27
|
config_path = params[:config_path]
|
|
28
28
|
|
|
29
|
-
if file_path
|
|
29
|
+
if file_path.nil? || !File.exist?(file_path)
|
|
30
30
|
UI.error("Invalid input file")
|
|
31
31
|
return
|
|
32
32
|
end
|
|
@@ -38,8 +38,8 @@ module Fastlane
|
|
|
38
38
|
Dir.mktmpdir do |d|
|
|
39
39
|
application_folder = "#{d}/archive.xcarchive/Products/Applications/"
|
|
40
40
|
dsym_folder = "#{d}/archive.xcarchive/dSYMs/"
|
|
41
|
-
FileUtils.mkdir_p
|
|
42
|
-
FileUtils.mkdir_p
|
|
41
|
+
FileUtils.mkdir_p(application_folder)
|
|
42
|
+
FileUtils.mkdir_p(dsym_folder)
|
|
43
43
|
if params[:linkmaps] && params[:linkmaps].length > 0
|
|
44
44
|
linkmap_folder = "#{d}/archive.xcarchive/Linkmaps/"
|
|
45
45
|
FileUtils.mkdir_p(linkmap_folder)
|
|
@@ -51,13 +51,14 @@ module Fastlane
|
|
|
51
51
|
FileUtils.cp_r(file_path, application_folder)
|
|
52
52
|
copy_dsyms("#{absolute_path.dirname}/*.dsym", dsym_folder)
|
|
53
53
|
copy_dsyms("#{absolute_path.dirname}/*/*.dsym", dsym_folder)
|
|
54
|
-
Xcodeproj::Plist.write_to_path({"NAME" => "Emerge Upload"}, "#{d}/archive.xcarchive/Info.plist")
|
|
54
|
+
Xcodeproj::Plist.write_to_path({ "NAME" => "Emerge Upload" }, "#{d}/archive.xcarchive/Info.plist")
|
|
55
55
|
file_path = "#{absolute_path.dirname}/archive.xcarchive.zip"
|
|
56
56
|
ZipAction.run(
|
|
57
57
|
path: "#{d}/archive.xcarchive",
|
|
58
58
|
output_path: file_path,
|
|
59
59
|
exclude: [],
|
|
60
|
-
include: []
|
|
60
|
+
include: []
|
|
61
|
+
)
|
|
61
62
|
UI.message("Archive generated at #{file_path}")
|
|
62
63
|
end
|
|
63
64
|
elsif File.extname(file_path) == '.xcarchive'
|
|
@@ -74,11 +75,12 @@ module Fastlane
|
|
|
74
75
|
path: file_path,
|
|
75
76
|
output_path: zip_path,
|
|
76
77
|
exclude: [],
|
|
77
|
-
include: []
|
|
78
|
+
include: []
|
|
79
|
+
)
|
|
78
80
|
file_path = zip_path
|
|
79
81
|
elsif File.extname(file_path) == '.zip' && params[:linkmaps] && params[:linkmaps].length > 0
|
|
80
82
|
UI.error("Provided zipped archive and linkmaps, linkmaps will not be added to zip.")
|
|
81
|
-
elsif
|
|
83
|
+
elsif File.extname(file_path) != '.zip'
|
|
82
84
|
UI.error("Invalid input file")
|
|
83
85
|
return
|
|
84
86
|
end
|
|
@@ -86,7 +88,7 @@ module Fastlane
|
|
|
86
88
|
filename = File.basename(file_path)
|
|
87
89
|
url = 'https://api.emergetools.com/upload'
|
|
88
90
|
params = {
|
|
89
|
-
filename: filename
|
|
91
|
+
filename: filename
|
|
90
92
|
}
|
|
91
93
|
if pr_number
|
|
92
94
|
params[:prNumber] = pr_number
|
|
@@ -109,24 +111,33 @@ module Fastlane
|
|
|
109
111
|
if order_file_version
|
|
110
112
|
params[:orderFileVersion] = order_file_version
|
|
111
113
|
end
|
|
112
|
-
params[:
|
|
114
|
+
params[:tag] = tag || "default"
|
|
113
115
|
FastlaneCore::PrintTable.print_values(
|
|
114
116
|
config: params,
|
|
115
117
|
hide_keys: [],
|
|
116
|
-
title: "Summary for Emerge #{Fastlane::Emerge::VERSION}"
|
|
117
|
-
|
|
118
|
+
title: "Summary for Emerge #{Fastlane::Emerge::VERSION}"
|
|
119
|
+
)
|
|
120
|
+
resp = Faraday.post(
|
|
121
|
+
url,
|
|
122
|
+
params.to_json,
|
|
123
|
+
'Content-Type' => 'application/json', 'X-API-Token' => api_token, 'User-Agent' => "fastlane-plugin-emerge/#{Fastlane::Emerge::VERSION}"
|
|
124
|
+
)
|
|
118
125
|
case resp.status
|
|
119
126
|
when 200
|
|
120
127
|
json = JSON.parse(resp.body)
|
|
121
128
|
upload_id = json["upload_id"]
|
|
122
129
|
upload_url = json["uploadURL"]
|
|
123
|
-
|
|
130
|
+
warning = json["warning"]
|
|
131
|
+
if warning
|
|
132
|
+
UI.important(warning)
|
|
133
|
+
end
|
|
134
|
+
return Helper::EmergeHelper.perform_upload(upload_url, upload_id, file_path)
|
|
124
135
|
when 403
|
|
125
136
|
UI.error("Invalid API token")
|
|
126
137
|
when 400
|
|
127
138
|
UI.error("Invalid parameters")
|
|
128
139
|
json = JSON.parse(resp.body)
|
|
129
|
-
UI.error("Error: #{json[
|
|
140
|
+
UI.error("Error: #{json['errorMessage']}")
|
|
130
141
|
else
|
|
131
142
|
UI.error("Upload failed")
|
|
132
143
|
end
|
|
@@ -140,10 +151,10 @@ module Fastlane
|
|
|
140
151
|
end
|
|
141
152
|
|
|
142
153
|
def self.copy_config(config_path, tmp_dir)
|
|
143
|
-
return
|
|
154
|
+
return if config_path.nil?
|
|
144
155
|
|
|
145
156
|
expanded_path = File.expand_path(config_path)
|
|
146
|
-
|
|
157
|
+
unless File.exist?(expanded_path)
|
|
147
158
|
UI.error("No config file found at path '#{expanded_path}'.\nUploading without config file")
|
|
148
159
|
return
|
|
149
160
|
end
|
|
@@ -172,65 +183,65 @@ module Fastlane
|
|
|
172
183
|
def self.available_options
|
|
173
184
|
[
|
|
174
185
|
FastlaneCore::ConfigItem.new(key: :api_token,
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
186
|
+
env_name: "EMERGE_API_TOKEN",
|
|
187
|
+
description: "An API token for Emerge",
|
|
188
|
+
optional: false,
|
|
189
|
+
type: String),
|
|
179
190
|
FastlaneCore::ConfigItem.new(key: :file_path,
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
191
|
+
env_name: "EMERGE_FILE_PATH",
|
|
192
|
+
description: "Path to the zipped xcarchive or app to upload",
|
|
193
|
+
optional: true,
|
|
194
|
+
type: String),
|
|
184
195
|
FastlaneCore::ConfigItem.new(key: :linkmaps,
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
196
|
+
description: "List of paths to linkmaps",
|
|
197
|
+
optional: true,
|
|
198
|
+
type: Array),
|
|
188
199
|
FastlaneCore::ConfigItem.new(key: :pr_number,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
200
|
+
description: "The PR number that triggered this upload",
|
|
201
|
+
optional: true,
|
|
202
|
+
type: String),
|
|
192
203
|
FastlaneCore::ConfigItem.new(key: :branch,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
204
|
+
description: "The current git branch",
|
|
205
|
+
optional: true,
|
|
206
|
+
type: String),
|
|
196
207
|
FastlaneCore::ConfigItem.new(key: :sha,
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
208
|
+
description: "The git SHA that triggered this build",
|
|
209
|
+
optional: true,
|
|
210
|
+
type: String),
|
|
200
211
|
FastlaneCore::ConfigItem.new(key: :base_sha,
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
212
|
+
description: "The git SHA of the base build",
|
|
213
|
+
optional: true,
|
|
214
|
+
type: String),
|
|
204
215
|
FastlaneCore::ConfigItem.new(key: :build_id,
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
216
|
+
description: "A string to identify this build",
|
|
217
|
+
deprecated: "Replaced by `sha`",
|
|
218
|
+
optional: true,
|
|
219
|
+
type: String),
|
|
209
220
|
FastlaneCore::ConfigItem.new(key: :base_build_id,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
221
|
+
description: "Id of the build to compare with this upload",
|
|
222
|
+
deprecated: "Replaced by `base_sha`",
|
|
223
|
+
optional: true,
|
|
224
|
+
type: String),
|
|
214
225
|
FastlaneCore::ConfigItem.new(key: :repo_name,
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
226
|
+
description: "Full name of the respository this upload was triggered from. For example: EmergeTools/Emerge",
|
|
227
|
+
optional: true,
|
|
228
|
+
type: String),
|
|
218
229
|
FastlaneCore::ConfigItem.new(key: :gitlab_project_id,
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
FastlaneCore::ConfigItem.new(key: :
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
230
|
+
description: "Id of the gitlab project this upload was triggered from",
|
|
231
|
+
optional: true,
|
|
232
|
+
type: Integer),
|
|
233
|
+
FastlaneCore::ConfigItem.new(key: :tag,
|
|
234
|
+
description: "String to label the build. Useful for grouping builds together in our dashboard, like development, default, or pull-request",
|
|
235
|
+
optional: true,
|
|
236
|
+
type: String),
|
|
226
237
|
FastlaneCore::ConfigItem.new(key: :order_file_version,
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
238
|
+
description: "Version of the order file to download",
|
|
239
|
+
optional: true,
|
|
240
|
+
type: String),
|
|
230
241
|
FastlaneCore::ConfigItem.new(key: :config_path,
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
242
|
+
description: "Path to Emerge config path",
|
|
243
|
+
optional: true,
|
|
244
|
+
type: String)
|
|
234
245
|
]
|
|
235
246
|
end
|
|
236
247
|
|
|
@@ -12,23 +12,23 @@ module Fastlane
|
|
|
12
12
|
project_id = params[:gitlab_project_id]
|
|
13
13
|
pr_number = params[:pr_number]
|
|
14
14
|
gitlab_access_token = params[:gitlab_access_token]
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
|
|
16
|
+
request_params = {
|
|
17
17
|
buildId: params[:build_id],
|
|
18
18
|
baseBuildId: params[:base_build_id]
|
|
19
19
|
}
|
|
20
|
-
resp = Faraday.get(url,
|
|
20
|
+
resp = Faraday.get(url, request_params, 'x-api-token' => api_token)
|
|
21
21
|
case resp.status
|
|
22
22
|
when 200
|
|
23
23
|
UI.message("Received comment from Emerge")
|
|
24
24
|
baseURL = gitlab_url ? gitlab_url : "https://gitlab.com"
|
|
25
25
|
url = "#{baseURL}/api/v4/projects/#{project_id}/merge_requests/#{pr_number}/notes"
|
|
26
|
-
|
|
27
|
-
case
|
|
26
|
+
gitlab_response = Faraday.post(url, { "body" => resp.body }, 'Authorization' => "Bearer #{gitlab_access_token}")
|
|
27
|
+
case gitlab_response.status
|
|
28
28
|
when 200...299
|
|
29
29
|
UI.message("Successfully posted comment")
|
|
30
30
|
else
|
|
31
|
-
UI.error("Received error #{
|
|
31
|
+
UI.error("Received error #{gitlab_response.status} from Gitlab")
|
|
32
32
|
end
|
|
33
33
|
else
|
|
34
34
|
UI.error("Received error #{resp.status} from Emerge")
|
|
@@ -46,35 +46,35 @@ module Fastlane
|
|
|
46
46
|
def self.available_options
|
|
47
47
|
[
|
|
48
48
|
FastlaneCore::ConfigItem.new(key: :api_token,
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
env_name: "EMERGE_API_TOKEN",
|
|
50
|
+
description: "An API token for Emerge",
|
|
51
|
+
optional: false,
|
|
52
|
+
type: String),
|
|
53
53
|
FastlaneCore::ConfigItem.new(key: :gitlab_acces_token,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
env_name: "GITLAB_ACCESS_TOKEN",
|
|
55
|
+
description: "An access token for Gitlab",
|
|
56
|
+
optional: false,
|
|
57
|
+
type: String),
|
|
58
58
|
FastlaneCore::ConfigItem.new(key: :pr_number,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
description: "The PR number that triggered this upload",
|
|
60
|
+
optional: false,
|
|
61
|
+
type: String),
|
|
62
62
|
FastlaneCore::ConfigItem.new(key: :build_id,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
63
|
+
description: "A string to identify this build",
|
|
64
|
+
optional: false,
|
|
65
|
+
type: String),
|
|
66
66
|
FastlaneCore::ConfigItem.new(key: :base_build_id,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
67
|
+
description: "Id of the build to compare with this upload",
|
|
68
|
+
optional: false,
|
|
69
|
+
type: String),
|
|
70
70
|
FastlaneCore::ConfigItem.new(key: :gitlab_url,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
71
|
+
description: "URL of the self hosted gitlab instance",
|
|
72
|
+
optional: true,
|
|
73
|
+
type: String),
|
|
74
74
|
FastlaneCore::ConfigItem.new(key: :gitlab_project_id,
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
description: "Id of the gitlab project this upload was triggered from",
|
|
76
|
+
optional: false,
|
|
77
|
+
type: Integer)
|
|
78
78
|
]
|
|
79
79
|
end
|
|
80
80
|
|
|
@@ -83,4 +83,4 @@ module Fastlane
|
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
85
|
end
|
|
86
|
-
end
|
|
86
|
+
end
|
|
@@ -16,9 +16,11 @@ module Fastlane
|
|
|
16
16
|
case response.status
|
|
17
17
|
when 200
|
|
18
18
|
UI.success("Your app is processing, you can find the results at https://emergetools.com/build/#{upload_id}")
|
|
19
|
+
return upload_id
|
|
19
20
|
else
|
|
20
21
|
UI.error("Upload failed")
|
|
21
22
|
end
|
|
23
|
+
return nil
|
|
22
24
|
end
|
|
23
25
|
end
|
|
24
26
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane-plugin-emerge
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Emerge Tools, Inc
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2024-03-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|