fastlane-plugin-bugsnag_sourcemaps_upload 0.1.2 → 0.2.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 +39 -4
- data/lib/fastlane/plugin/bugsnag_sourcemaps_upload/actions/bugsnag_sourcemaps_upload_action.rb +128 -23
- data/lib/fastlane/plugin/bugsnag_sourcemaps_upload/helper/bugsnag_sourcemaps_upload_helper.rb +43 -4
- data/lib/fastlane/plugin/bugsnag_sourcemaps_upload/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: 0a6aa2675005a171fe06f6667b361df3f9f73f49cf1dd63b7697c77da1e2d019
|
4
|
+
data.tar.gz: 82caee4e3f05b789b541b121330504355828e985ce6677ff15142e40babf45f7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f3738e4d74c96ac918a48a109f7c3ff19e78124d2ff6574cc4ec033e2030b05a3b7ec968ca49845573edb461bc149fff089528d1ab0fc2364f01b2f5272293ba
|
7
|
+
data.tar.gz: 53e3699c3e634f88e4c4dea6e739f8d503303eb8bce5ebcdb3bf24d79a566a88a913dcdad2258498f1af29f7273cc7b848c32aab39088436725af1c7d42c95d1
|
data/README.md
CHANGED
@@ -13,18 +13,53 @@ fastlane add_plugin bugsnag_sourcemaps_upload
|
|
13
13
|
|
14
14
|
## About bugsnag_sourcemaps_upload
|
15
15
|
|
16
|
-
Helps to upload sourcemaps to Bugsnag
|
16
|
+
Helps to generate and upload React Native sourcemaps to Bugsnag
|
17
17
|
|
18
18
|
|
19
|
-
|
19
|
+
### Example
|
20
20
|
|
21
|
-
```
|
21
|
+
```ruby
|
22
|
+
# Generate and upload soucemaps
|
23
|
+
bugsnag_sourcemaps_upload(
|
24
|
+
api_key: 'YOUR_BUGSNAG_API_KEY',
|
25
|
+
app_version: '1.0.0'
|
26
|
+
)
|
27
|
+
|
28
|
+
# Uploading Hermes generated soucemaps
|
22
29
|
bugsnag_sourcemaps_upload(
|
23
30
|
api_key: 'YOUR_BUGSNAG_API_KEY',
|
24
|
-
|
31
|
+
app_version: '1.0.0',
|
32
|
+
generate_sourcemaps: false,
|
33
|
+
platform: 'android',
|
34
|
+
sourcemaps_dir: 'android/app/build/generated',
|
35
|
+
sourcemap: 'sourcemaps/react/release/index.android.bundle.map',
|
36
|
+
bundle: 'assets/react/release/index.android.bundle'
|
25
37
|
)
|
26
38
|
```
|
27
39
|
|
40
|
+
### Available options
|
41
|
+
|
42
|
+
| Option | Description | Environment variable | Default value |
|
43
|
+
| - | - | - | - |
|
44
|
+
| api_key* | API key | BUGSNAG_API_KEY | |
|
45
|
+
| app_version | Target app version | BUGSNAG_SOURCEMAPS_APP_VERSION | |
|
46
|
+
| code_bundle_id | CodePush bundle ID | BUGSNAG_SOURCEMAPS_CODE_BUNDLE | |
|
47
|
+
| platform | Target platform | BUGSNAG_SOURCEMAPS_PLATFORM | ios |
|
48
|
+
| sourcemaps_dir | Sourcemaps directory | BUGSNAG_SOURCEMAPS_DIR | /tmp |
|
49
|
+
| sourcemap | Override path to sourcemaps(relative path to sourcemaps_dir) | BUGSNAG_SOURCEMAPS_NAME | *platform*.bundle.map |
|
50
|
+
| bundle | Override path to minified file(relative path to sourcemaps_dir) | BUGSNAG_SOURCEMAPS_BUNDLE_NAME | *platform*.bundle |
|
51
|
+
| minified_url | Override minified url| BUGSNAG_SOURCEMAPS_MINIFIED_URL | index.android.bundle *or* main.jsbundle |
|
52
|
+
| overwrite | Overwrite sourcemaps in Bugsnag | BUGSNAG_SOURCEMAPS_OVERWRITE | true |
|
53
|
+
| strip | Strip root | BUGSNAG_SOURCEMAPS_STRIP_PROJECT_ROOT | true |
|
54
|
+
| wildcard_prefix | Add wildcard prefix | BUGSNAG_SOURCEMAPS_WILDCARD_PREFIX | false |
|
55
|
+
| generate_sourcemaps | Generate sourcemaps using react-native bundle | BUGSNAG_SOURCEMAPS_GENERATE | true |
|
56
|
+
| upload_sources | Upload source files referenced by the source map | BUGSNAG_SOURCEMAPS_UPLOAD_SOURCES | true |
|
57
|
+
| upload_modules | Upload dependency files referenced by the source map | BUGSNAG_SOURCEMAPS_UPLOAD_MODULES | false
|
58
|
+
| entry_file | React-native app index file path | BUGSNAG_SOURCEMAPS_ENTRY_FILE | index.js |
|
59
|
+
| endpoint | Bugsnag endpoint(when using Bugsnag On-premise) | BUGSNAG_SOURCEMAPS_ENDPOINT | |
|
60
|
+
|
61
|
+
\* - required
|
62
|
+
|
28
63
|
## Run tests for this plugin
|
29
64
|
|
30
65
|
To run both the tests, and code style validation, run
|
data/lib/fastlane/plugin/bugsnag_sourcemaps_upload/actions/bugsnag_sourcemaps_upload_action.rb
CHANGED
@@ -5,18 +5,48 @@ module Fastlane
|
|
5
5
|
module Actions
|
6
6
|
class BugsnagSourcemapsUploadAction < Action
|
7
7
|
def self.run(params)
|
8
|
-
params[:
|
9
|
-
|
10
|
-
|
8
|
+
api_key = params[:api_key]
|
9
|
+
app_version = params[:app_version]
|
10
|
+
code_bundle_id = params[:code_bundle_id]
|
11
|
+
platform = params[:platform]
|
12
|
+
dir = params[:sourcemaps_dir]
|
13
|
+
sourcemap = params[:sourcemap]
|
14
|
+
bundle = params[:bundle]
|
15
|
+
minified_url = params[:minified_url]
|
16
|
+
overwrite = params[:overwrite]
|
17
|
+
strip = params[:strip]
|
18
|
+
wildcard_prefix = params[:wildcard_prefix]
|
19
|
+
generate_sourcemaps = params[:generate_sourcemaps]
|
20
|
+
upload_sources = params[:upload_sources]
|
21
|
+
upload_modules = params[:upload_modules]
|
22
|
+
entry_file = params[:entry_file]
|
23
|
+
endpoint = params[:endpoint]
|
24
|
+
|
25
|
+
path = ""
|
26
|
+
if sourcemap
|
27
|
+
path = "#{dir}/#{sourcemap}".to_s
|
28
|
+
else
|
29
|
+
path = "#{dir}/#{platform}.bundle.map".to_s
|
30
|
+
end
|
31
|
+
bundle_path = ""
|
32
|
+
if bundle
|
33
|
+
bundle_path = "#{dir}/#{bundle}".to_s
|
34
|
+
else
|
35
|
+
bundle_path = "#{dir}/#{platform}.bundle".to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
if generate_sourcemaps
|
39
|
+
Helper::BugsnagSourcemapsUploadHelper.create_bundle(platform, entry_file, path, bundle_path)
|
11
40
|
end
|
41
|
+
Helper::BugsnagSourcemapsUploadHelper.upload_bundle(api_key, platform, app_version, code_bundle_id, path, bundle_path, minified_url, strip, overwrite, wildcard_prefix, upload_sources, upload_modules, endpoint)
|
12
42
|
end
|
13
43
|
|
14
44
|
def self.description
|
15
|
-
"
|
45
|
+
"Upload sourcemaps to Bugsnag"
|
16
46
|
end
|
17
47
|
|
18
48
|
def self.authors
|
19
|
-
["Evgrafov Denis"]
|
49
|
+
["Evgrafov Denis", "Ivan Sokolovskii"]
|
20
50
|
end
|
21
51
|
|
22
52
|
def self.return_value
|
@@ -25,33 +55,108 @@ module Fastlane
|
|
25
55
|
|
26
56
|
def self.details
|
27
57
|
# Optional:
|
28
|
-
"Helps to upload sourcemaps to Bugsnag"
|
58
|
+
"Helps to generate and upload React-Native sourcemaps to Bugsnag"
|
29
59
|
end
|
30
60
|
|
31
61
|
def self.available_options
|
32
62
|
[
|
33
|
-
# FastlaneCore::ConfigItem.new(key: :your_option,
|
34
|
-
# env_name: "BUGSNAG_SOURCEMAPS_UPLOAD_YOUR_OPTION",
|
35
|
-
# description: "A description of your option",
|
36
|
-
# optional: false,
|
37
|
-
# type: String)
|
38
63
|
FastlaneCore::ConfigItem.new(key: :api_key,
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
64
|
+
env_name: "BUGSNAG_API_KEY",
|
65
|
+
description: "Bugsnag API key",
|
66
|
+
optional: false,
|
67
|
+
verify_block: proc do |value|
|
68
|
+
UI.user_error!("No Bugsnag API key given, pass using `api_key: 'key'`") unless value && !value.empty?
|
69
|
+
end,
|
70
|
+
type: String),
|
71
|
+
FastlaneCore::ConfigItem.new(key: :app_version,
|
72
|
+
env_name: "BUGSNAG_SOURCEMAPS_APP_VERSION",
|
73
|
+
description: "Target app version",
|
74
|
+
optional: true,
|
75
|
+
type: String),
|
76
|
+
FastlaneCore::ConfigItem.new(key: :code_bundle_id,
|
77
|
+
env_name: "BUGSNAG_SOURCEMAPS_CODE_BUNDLE",
|
78
|
+
description: "Codepush bundle ID",
|
79
|
+
optional: true,
|
80
|
+
type: String),
|
81
|
+
FastlaneCore::ConfigItem.new(key: :platform,
|
82
|
+
env_name: "BUGSNAG_SOURCEMAPS_PLATFORM",
|
83
|
+
description: "Platform",
|
84
|
+
optional: true,
|
85
|
+
default_value: 'ios',
|
86
|
+
type: String),
|
87
|
+
FastlaneCore::ConfigItem.new(key: :sourcemaps_dir,
|
88
|
+
env_name: "BUGSNAG_SOURCEMAPS_DIR",
|
89
|
+
description: "Bugsnag sourcemaps directory",
|
90
|
+
optional: true,
|
91
|
+
default_value: "/tmp",
|
92
|
+
type: String),
|
93
|
+
FastlaneCore::ConfigItem.new(key: :sourcemap,
|
94
|
+
env_name: "BUGSNAG_SOURCEMAPS_NAME",
|
95
|
+
description: "Override path(relative to sourcemaps_dir) to sourcemaps, default is platform-specific",
|
96
|
+
optional: true,
|
97
|
+
type: String),
|
98
|
+
FastlaneCore::ConfigItem.new(key: :bundle,
|
99
|
+
env_name: "BUGSNAG_SOURCEMAPS_BUNDLE_NAME",
|
100
|
+
description: "Override path(relative to sourcemaps_dir) bundle to upload, default is platform-specific",
|
101
|
+
optional: true,
|
102
|
+
type: String),
|
103
|
+
FastlaneCore::ConfigItem.new(key: :minified_url,
|
104
|
+
env_name: "BUGSNAG_SOURCEMAPS_MINIFIED_URL",
|
105
|
+
description: "Override Bugsnag mified url, default is platform specific",
|
106
|
+
optional: true,
|
107
|
+
type: String),
|
108
|
+
FastlaneCore::ConfigItem.new(key: :overwrite,
|
109
|
+
env_name: "BUGSNAG_SOURCEMAPS_OVERWRITE",
|
110
|
+
description: "Overwrite existing sourcemaps in Bugsnag",
|
111
|
+
optional: true,
|
112
|
+
default_value: true,
|
113
|
+
type: Boolean),
|
114
|
+
FastlaneCore::ConfigItem.new(key: :strip,
|
115
|
+
env_name: "BUGSNAG_SOURCEMAPS_STRIP_PROJECT_ROOT",
|
116
|
+
description: "Strip project root",
|
117
|
+
optional: true,
|
118
|
+
default_value: true,
|
119
|
+
type: Boolean),
|
120
|
+
FastlaneCore::ConfigItem.new(key: :wildcard_prefix,
|
121
|
+
env_name: "BUGSNAG_SOURCEMAPS_WILDCARD_PREFIX",
|
122
|
+
description: "Add wildcard prefix for Bugsnag",
|
123
|
+
optional: true,
|
124
|
+
default_value: false,
|
125
|
+
type: Boolean),
|
126
|
+
FastlaneCore::ConfigItem.new(key: :generate_sourcemaps,
|
127
|
+
env_name: "BUGSNAG_SOURCEMAPS_GENERATE",
|
128
|
+
description: "Generate React-Native sourcemaps",
|
129
|
+
optional: true,
|
130
|
+
default_value: true,
|
131
|
+
type: Boolean),
|
132
|
+
FastlaneCore::ConfigItem.new(key: :upload_sources,
|
133
|
+
env_name: "BUGSNAG_SOURCEMAPS_UPLOAD_MODULES",
|
134
|
+
description: "Upload source files referenced by the source map",
|
135
|
+
optional: true,
|
136
|
+
default_value: true,
|
137
|
+
type: Boolean),
|
138
|
+
FastlaneCore::ConfigItem.new(key: :upload_modules,
|
139
|
+
env_name: "BUGSNAG_SOURCEMAPS_UPLOAD_MODULES",
|
140
|
+
description: "Upload dependency files referenced by the source map",
|
141
|
+
optional: true,
|
142
|
+
default_value: false,
|
143
|
+
type: Boolean),
|
144
|
+
FastlaneCore::ConfigItem.new(key: :entry_file,
|
145
|
+
env_name: "BUGSNAG_SOURCEMAPS_ENTRY_FILE",
|
146
|
+
description: "React Native index file for soucemaps generation",
|
147
|
+
optional: true,
|
148
|
+
default_value: "index.js",
|
149
|
+
type: String),
|
150
|
+
FastlaneCore::ConfigItem.new(key: :endpoint,
|
151
|
+
env_name: "BUGSNAG_SOURCEMAPS_ENDPOINT",
|
152
|
+
description: "Bugsnag endpoint(when using Bugsnag On-premise)",
|
153
|
+
optional: true,
|
154
|
+
type: String)
|
46
155
|
]
|
47
156
|
end
|
48
157
|
|
49
158
|
def self.is_supported?(platform)
|
50
|
-
|
51
|
-
# See: https://docs.fastlane.tools/advanced/#control-configuration-by-lane-and-by-platform
|
52
|
-
#
|
53
|
-
# [:ios, :mac, :android].include?(platform)
|
54
|
-
true
|
159
|
+
[:ios, :android].include?(platform)
|
55
160
|
end
|
56
161
|
end
|
57
162
|
end
|
data/lib/fastlane/plugin/bugsnag_sourcemaps_upload/helper/bugsnag_sourcemaps_upload_helper.rb
CHANGED
@@ -8,14 +8,53 @@ module Fastlane
|
|
8
8
|
# class methods that you define here become available in your action
|
9
9
|
# as `Helper::BugsnagSourcemapsUploadHelper.your_method`
|
10
10
|
#
|
11
|
-
def self.create_bundle(
|
11
|
+
def self.create_bundle(platform, entry_file, path, bundle_path)
|
12
12
|
UI.message("Creating React Native bundle")
|
13
|
-
Action.sh("react-native bundle
|
13
|
+
Action.sh("react-native bundle \
|
14
|
+
--dev false \
|
15
|
+
--platform #{platform} \
|
16
|
+
--bundle-output #{bundle_path} \
|
17
|
+
--sourcemap-output #{path} \
|
18
|
+
--entry-file #{entry_file}")
|
14
19
|
end
|
15
20
|
|
16
|
-
def self.upload_bundle(api_key,
|
21
|
+
def self.upload_bundle(api_key, platform, app_version, code_bundle_id, path, bundle_path, minified_url, strip, overwrite, wildcard_prefix, upload_sources, upload_modules, endpoint)
|
22
|
+
command = "bugsnag-sourcemaps upload --api-key #{api_key} --source-map #{path} --minified-file #{bundle_path} "
|
23
|
+
if upload_sources
|
24
|
+
command += "--upload-sources "
|
25
|
+
end
|
26
|
+
if upload_modules
|
27
|
+
command += "--upload-node-modules "
|
28
|
+
end
|
29
|
+
if minified_url
|
30
|
+
command += "--minified-url #{minified_url} "
|
31
|
+
else
|
32
|
+
if platform == "ios"
|
33
|
+
command += "--minified-url main.jsbundle "
|
34
|
+
else
|
35
|
+
command += "--minified-url index.android.bundle "
|
36
|
+
end
|
37
|
+
end
|
38
|
+
if app_version
|
39
|
+
command += "--app-version=#{app_version} "
|
40
|
+
end
|
41
|
+
if code_bundle_id
|
42
|
+
command += " --code-bundle-id #{code_bundle_id} "
|
43
|
+
end
|
44
|
+
if strip
|
45
|
+
command += "--strip-project-root "
|
46
|
+
end
|
47
|
+
if overwrite
|
48
|
+
command += "--overwrite "
|
49
|
+
end
|
50
|
+
if wildcard_prefix
|
51
|
+
command += "--add-wildcard-prefix "
|
52
|
+
end
|
53
|
+
if endpoint
|
54
|
+
command += "--endpoint #{endpoint} "
|
55
|
+
end
|
17
56
|
UI.message("Uploading React Native bundle to Bugsnag")
|
18
|
-
Action.sh(
|
57
|
+
Action.sh(command.to_s)
|
19
58
|
end
|
20
59
|
|
21
60
|
def self.show_message
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-bugsnag_sourcemaps_upload
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evgrafov Denis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-06-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|