fastlane-plugin-sentry 2.6.3 → 2.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 +4 -4
- data/README.md +2 -2
- data/lib/fastlane/plugin/sentry/actions/sentry_upload_build.rb +26 -13
- data/lib/fastlane/plugin/sentry/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8d42266cb8cf15e9fa6db59b2f89ec8b8e5d4382d9d26ee612dcfb509d6ac5cd
|
|
4
|
+
data.tar.gz: c0a6db26c67454692f675b24eda76eb2bdd65784ae910dcff0c6fadf4362fcdf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 340bbb9e19f4cc7171001942038e9ae6f28ffd7fc69ebb27d2688c5e9782d37441017eeb8d1abb16252fc10493a894068c91722b56d3795a163888e4f4c32c67
|
|
7
|
+
data.tar.gz: 8033c8ee4854f95176ebe62d88b5fc18147ab16d6ba28edf725a3f3acca068b0d5004a72605500263fb5fc158d339048269cf5995626f8fb89b1f26499a41fe3
|
data/README.md
CHANGED
|
@@ -92,7 +92,7 @@ Upload build files to Sentry for improved symbolication and source context. Supp
|
|
|
92
92
|
- **iOS**: `.xcarchive` (build archive) or `.ipa` (app bundle)
|
|
93
93
|
- **Android**: `.apk` or `.aab` (App Bundle)
|
|
94
94
|
|
|
95
|
-
Explicitly passed path parameters take precedence over SharedValues.
|
|
95
|
+
Explicitly passed path parameters take precedence over SharedValues. dSYMs provided through `dsym_path` are uploaded for symbolication and are also included in IPA build analysis.
|
|
96
96
|
|
|
97
97
|
```ruby
|
|
98
98
|
sentry_upload_build(
|
|
@@ -101,7 +101,7 @@ sentry_upload_build(
|
|
|
101
101
|
project_slug: '...',
|
|
102
102
|
# One of: xcarchive_path, ipa_path, apk_path, or aab_path (mutually exclusive)
|
|
103
103
|
xcarchive_path: './build/MyApp.xcarchive', # or ipa_path, apk_path, aab_path
|
|
104
|
-
dsym_path: './build/MyApp.app.dSYM.zip', # Optional.
|
|
104
|
+
dsym_path: './build/MyApp.app.dSYM.zip', # Optional. Path or array of dSYM inputs for symbolication; with IPA uploads, also used for build analysis. Defaults to DSYM_OUTPUT_PATH from lane context when not specified
|
|
105
105
|
# Optional git context parameters (can also be set via environment variables)
|
|
106
106
|
head_sha: 'abc123...', # The SHA of the head of the current branch (or SENTRY_HEAD_SHA)
|
|
107
107
|
base_sha: 'def456...', # The SHA of the base branch (or SENTRY_BASE_SHA)
|
|
@@ -26,6 +26,16 @@ module Fastlane
|
|
|
26
26
|
File.absolute_path(build_path)
|
|
27
27
|
]
|
|
28
28
|
|
|
29
|
+
dsym_paths = resolve_dsym_paths(params, build_type)
|
|
30
|
+
supports_dsym_build_upload = OS.mac? && OS.host_cpu == 'arm64'
|
|
31
|
+
if build_type == :ipa && supports_dsym_build_upload
|
|
32
|
+
dsym_paths.each do |path|
|
|
33
|
+
next unless File.exist?(path)
|
|
34
|
+
|
|
35
|
+
command.push("--dsym").push(path)
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
29
39
|
Helper::SentryConfig.build_vcs_command(command, params)
|
|
30
40
|
|
|
31
41
|
command << "--build-configuration" << params[:build_configuration] if params[:build_configuration]
|
|
@@ -48,8 +58,7 @@ module Fastlane
|
|
|
48
58
|
Helper::SentryHelper.call_sentry_cli(params, command)
|
|
49
59
|
UI.success("Successfully uploaded build file: #{build_path}")
|
|
50
60
|
|
|
51
|
-
|
|
52
|
-
upload_dsym_if_requested(params, build_type)
|
|
61
|
+
upload_dsyms(params, dsym_paths)
|
|
53
62
|
end
|
|
54
63
|
|
|
55
64
|
#####################################################
|
|
@@ -63,8 +72,9 @@ module Fastlane
|
|
|
63
72
|
def self.details
|
|
64
73
|
"This action allows you to upload build files to Sentry. Supported formats include iOS build archives (.xcarchive), " \
|
|
65
74
|
"iOS app bundles (.ipa), Android APK files (.apk), and Android App Bundles (.aab). IPA files typically don't " \
|
|
66
|
-
"embed dSYMs
|
|
67
|
-
"
|
|
75
|
+
"embed dSYMs; use dsym_path to provide them for build analysis and event symbolication, or call " \
|
|
76
|
+
"sentry_debug_files_upload to upload them only for symbolication. The action supports optional git-related " \
|
|
77
|
+
"parameters for enhanced context including commit SHAs, " \
|
|
68
78
|
"branch names, repository information, and pull request details. Install groups can be specified to control update " \
|
|
69
79
|
"visibility between builds."
|
|
70
80
|
end
|
|
@@ -102,7 +112,7 @@ module Fastlane
|
|
|
102
112
|
UI.user_error!("Path '#{value}' is not an AAB") unless File.extname(value).casecmp('.aab').zero?
|
|
103
113
|
end),
|
|
104
114
|
FastlaneCore::ConfigItem.new(key: :ipa_path,
|
|
105
|
-
description: "Path to your iOS app bundle (.ipa). Defaults to IPA_OUTPUT_PATH from lane context.
|
|
115
|
+
description: "Path to your iOS app bundle (.ipa). Defaults to IPA_OUTPUT_PATH from lane context. Use dsym_path to include dSYMs in build analysis and event symbolication. Mutually exclusive with xcarchive_path, apk_path, and aab_path",
|
|
106
116
|
optional: true,
|
|
107
117
|
conflicting_options: [:xcarchive_path, :apk_path, :aab_path],
|
|
108
118
|
verify_block: proc do |value|
|
|
@@ -112,7 +122,7 @@ module Fastlane
|
|
|
112
122
|
UI.user_error!("Path '#{value}' is not an IPA") unless File.extname(value).casecmp('.ipa').zero?
|
|
113
123
|
end),
|
|
114
124
|
FastlaneCore::ConfigItem.new(key: :dsym_path,
|
|
115
|
-
description: "Path to dSYM
|
|
125
|
+
description: "Path or array of paths to a dSYM bundle, a directory containing dSYM bundles, or a ZIP archive containing either. For IPA uploads, inputs are included in build analysis and uploaded for event symbolication. Defaults to DSYM_OUTPUT_PATH from lane context for iOS builds when omitted",
|
|
116
126
|
optional: true,
|
|
117
127
|
type: Array,
|
|
118
128
|
skip_type_validation: true)
|
|
@@ -180,28 +190,31 @@ module Fastlane
|
|
|
180
190
|
end
|
|
181
191
|
end
|
|
182
192
|
|
|
183
|
-
def self.
|
|
193
|
+
def self.resolve_dsym_paths(params, build_type)
|
|
184
194
|
dsym_paths = Array(params[:dsym_path]).reject { |p| p.nil? || p.to_s.empty? }
|
|
185
195
|
# For iOS builds, use DSYM_OUTPUT_PATH from lane context when dsym_path not specified
|
|
186
196
|
if dsym_paths.empty? && [:ipa, :xcarchive].include?(build_type)
|
|
187
197
|
dsym_from_context = Actions.lane_context[SharedValues::DSYM_OUTPUT_PATH]
|
|
188
198
|
dsym_paths = [dsym_from_context] if dsym_from_context && !dsym_from_context.to_s.empty?
|
|
189
199
|
end
|
|
200
|
+
dsym_paths
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def self.upload_dsyms(params, dsym_paths)
|
|
190
204
|
return if dsym_paths.empty?
|
|
191
205
|
|
|
192
206
|
uploaded_count = 0
|
|
193
207
|
dsym_paths.each do |path|
|
|
194
|
-
|
|
208
|
+
unless File.exist?(path)
|
|
209
|
+
UI.important("Skipping missing dSYM path: #{path}")
|
|
210
|
+
next
|
|
211
|
+
end
|
|
195
212
|
|
|
196
213
|
command = ["debug-files", "upload", File.absolute_path(path), "--type", "dsym"]
|
|
197
214
|
Helper::SentryHelper.call_sentry_cli(params, command)
|
|
198
215
|
uploaded_count += 1
|
|
199
216
|
end
|
|
200
|
-
if uploaded_count > 0
|
|
201
|
-
UI.success("Successfully uploaded dSYM files")
|
|
202
|
-
elsif dsym_paths.any?
|
|
203
|
-
UI.verbose("No dSYM files were uploaded: none of the specified paths exist (#{dsym_paths.join(', ')})")
|
|
204
|
-
end
|
|
217
|
+
UI.success("Successfully uploaded dSYM files") if uploaded_count > 0
|
|
205
218
|
end
|
|
206
219
|
end
|
|
207
220
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fastlane-plugin-sentry
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.7.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sentry
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-16 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: os
|