fastlane-plugin-sentry 1.5.0 → 1.6.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
  SHA1:
3
- metadata.gz: 694c6c0337c64891bf86878741bbb9442a0ce79d
4
- data.tar.gz: 310fbe02e5192aaf65e293d8a8f02c27803324bf
3
+ metadata.gz: 943f62c00416b3aade1f829755a018fe6930e29f
4
+ data.tar.gz: 9a03647bcb4d7bbd4eeaff13d3ba2b8839ad2175
5
5
  SHA512:
6
- metadata.gz: f70d09887c83a79c057db0dc6af8a52da136fe2d4abc0f1079cf9491e8b9ee41ce30f0bbd4f3dbf38987205ba966cd5caa26155f455228b77a83e0c521b608a8
7
- data.tar.gz: 7ae2b77c6376bef7834bebbf403eaa35ab4d5330e62e2e96c33a3c19ca5ad10ef43d6f35235b3f2e3ca6b72c98dc93881486e159170ad3acfe65b4be1e21224c
6
+ metadata.gz: '09d8f06e8519e4d8e4d27206e12f50f2d159d9e61362c97e6005e35600851d66247fc07a542f9afa046f7c1f777a075c88d6f666936e6d64b63844e17a9bd4c2'
7
+ data.tar.gz: b6de262c2d24c005d922fde175d5586402e33b8cccc3a054b6eaf6fa2501c2999e6e49fbbb84802e37d03a24c227066f28727c6616e70ce410d0e42b51e4d631
data/README.md CHANGED
@@ -91,6 +91,33 @@ sentry_upload_sourcemap(
91
91
  )
92
92
  ```
93
93
 
94
+ #### Uploading Proguard Mapping File
95
+
96
+ ```ruby
97
+ sentry_upload_proguard(
98
+ api_key: '...', # Do not use if using auth_token
99
+ auth_token: '...', # Do not use if using api_key
100
+ org_slug: '...',
101
+ project_slug: '...',
102
+ android_manifest_path: 'path to merged AndroidManifest file' # found in `app/build/intermediates/manifests/full`
103
+ mapping_path: 'path to mapping.txt to upload',
104
+ )
105
+ ```
106
+
107
+ #### Associating commits
108
+
109
+ Useful for telling Sentry which commits are associated with a release.
110
+
111
+ ```ruby
112
+ sentry_set_commits(
113
+ version: '...',
114
+ app_identifier: '...', # pass in the bundle_identifer of your app
115
+ auto: false, # enable completely automated commit management
116
+ clear: false, # clear all current commits from the release
117
+ commit: '...', # commit spec, see `sentry-cli releases help set-commits` for more information
118
+ )
119
+ ```
120
+
94
121
  ## Issues and Feedback
95
122
 
96
123
  For any other issues and feedback about this plugin, please submit it to this repository.
@@ -0,0 +1,79 @@
1
+ module Fastlane
2
+ module Actions
3
+ class SentrySetCommitsAction < Action
4
+ def self.run(params)
5
+ require 'shellwords'
6
+
7
+ Helper::SentryHelper.check_sentry_cli!
8
+ Helper::SentryConfig.parse_api_params(params)
9
+
10
+ version = params[:version]
11
+ version = "#{params[:app_identifier]}-#{params[:version]}" if params[:app_identifier]
12
+
13
+ command = [
14
+ "sentry-cli",
15
+ "releases",
16
+ "set-commits",
17
+ version
18
+ ]
19
+
20
+ command.push('--auto') if params[:auto]
21
+ command.push('--clear') if params[:clear]
22
+ command.push('--commit').push(params[:commit]) unless params[:commit].nil?
23
+
24
+ Helper::SentryHelper.call_sentry_cli(command)
25
+ UI.success("Successfully set commits for release: #{version}")
26
+ end
27
+
28
+ #####################################################
29
+ # @!group Documentation
30
+ #####################################################
31
+
32
+ def self.description
33
+ "Set commits of a release"
34
+ end
35
+
36
+ def self.details
37
+ [
38
+ "This action allows you to set commits in a release for a project on Sentry.",
39
+ "See https://docs.sentry.io/cli/releases/#sentry-cli-commit-integration for more information."
40
+ ].join(" ")
41
+ end
42
+
43
+ def self.available_options
44
+ Helper::SentryConfig.common_api_config_items + [
45
+ FastlaneCore::ConfigItem.new(key: :version,
46
+ description: "Release version on Sentry"),
47
+ FastlaneCore::ConfigItem.new(key: :app_identifier,
48
+ short_option: "-a",
49
+ env_name: "SENTRY_APP_IDENTIFIER",
50
+ description: "App Bundle Identifier, prepended to version",
51
+ optional: true),
52
+ FastlaneCore::ConfigItem.new(key: :auto,
53
+ description: "Enable completely automated commit management",
54
+ is_string: false,
55
+ default_value: false),
56
+ FastlaneCore::ConfigItem.new(key: :clear,
57
+ description: "Clear all current commits from the release",
58
+ is_string: false,
59
+ default_value: false),
60
+ FastlaneCore::ConfigItem.new(key: :commit,
61
+ description: "Commit spec, see `sentry-cli releases help set-commits` for more information",
62
+ optional: true)
63
+ ]
64
+ end
65
+
66
+ def self.return_value
67
+ nil
68
+ end
69
+
70
+ def self.authors
71
+ ["brownoxford"]
72
+ end
73
+
74
+ def self.is_supported?(platform)
75
+ true
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,75 @@
1
+ module Fastlane
2
+ module Actions
3
+ class SentryUploadProguardAction < Action
4
+ def self.run(params)
5
+ Helper::SentryHelper.check_sentry_cli!
6
+ Helper::SentryConfig.parse_api_params(params)
7
+
8
+ # Params - mapping & manifest
9
+ mapping_path = params[:mapping_path]
10
+ android_manifest_path = params[:android_manifest_path]
11
+
12
+ # Verify files
13
+ UI.user_error!("Mapping file does not exist at path: #{mapping_path}") unless File.exist? mapping_path
14
+ UI.user_error!("AndroidManifest.xml file does not exist at path: #{android_manifest_path}") unless File.exist? android_manifest_path
15
+
16
+ command = [
17
+ "sentry-cli",
18
+ "upload-proguard",
19
+ "--android-manifest",
20
+ android_manifest_path,
21
+ mapping_path
22
+ ]
23
+
24
+ Helper::SentryHelper.call_sentry_cli(command)
25
+ UI.success("Successfully uploaded mapping file!")
26
+ end
27
+
28
+ #####################################################
29
+ # @!group Documentation
30
+ #####################################################
31
+
32
+ def self.description
33
+ "Upload mapping to a project on Sentry"
34
+ end
35
+
36
+ def self.details
37
+ [
38
+ "This action allows you to upload the proguard mapping file to Sentry.",
39
+ "See https://docs.sentry.io/cli/dif/proguard for more information."
40
+ ].join(" ")
41
+ end
42
+
43
+ def self.available_options
44
+ Helper::SentryConfig.common_api_config_items + [
45
+ FastlaneCore::ConfigItem.new(key: :mapping_path,
46
+ env_name: "ANDROID_MAPPING_PATH",
47
+ description: "Path to your proguard mapping.txt file",
48
+ optional: false,
49
+ verify_block: proc do |value|
50
+ UI.user_error! "Could not find your mapping file at path '#{value}'" unless File.exist?(value)
51
+ end),
52
+ FastlaneCore::ConfigItem.new(key: :android_manifest_path,
53
+ env_name: "ANDROID_MANIFEST_PATH",
54
+ description: "Path to your merged AndroidManifest file. This is usually found under `app/build/intermediates/manifests/full`",
55
+ optional: false,
56
+ verify_block: proc do |value|
57
+ UI.user_error! "Could not find your merged AndroidManifest file at path '#{value}'" unless File.exist?(value)
58
+ end)
59
+ ]
60
+ end
61
+
62
+ def self.return_value
63
+ nil
64
+ end
65
+
66
+ def self.authors
67
+ ["mpp-anasa"]
68
+ end
69
+
70
+ def self.is_supported?(platform)
71
+ platform == :android
72
+ end
73
+ end
74
+ end
75
+ end
@@ -22,11 +22,24 @@ module Fastlane
22
22
  ]
23
23
 
24
24
  command.push('--rewrite') if params[:rewrite]
25
+ command.push('--no-rewrite') unless params[:rewrite]
25
26
  command.push('--strip-prefix') if params[:strip_prefix]
26
27
  command.push('--strip-common-prefix') if params[:strip_common_prefix]
27
28
  command.push('--url-prefix').push(params[:url_prefix]) unless params[:url_prefix].nil?
28
29
  command.push('--dist').push(params[:dist]) unless params[:dist].nil?
29
30
 
31
+ unless params[:ignore].nil?
32
+ # normalize to array
33
+ unless params[:ignore].kind_of?(Enumerable)
34
+ params[:ignore] = [params[:ignore]]
35
+ end
36
+ # no nil or empty strings
37
+ params[:ignore].reject! { |e| e.strip.empty? rescue true }
38
+ command.push('--ignore').push(*params[:ignore]) if params[:ignore].any?
39
+ end
40
+
41
+ command.push('--ignore-file').push(params[:ignore_file]) unless params[:ignore_file].nil?
42
+
30
43
  Helper::SentryHelper.call_sentry_cli(command)
31
44
  UI.success("Successfully uploaded files to release: #{version}")
32
45
  end
@@ -82,6 +95,13 @@ module Fastlane
82
95
  short_option: "-a",
83
96
  env_name: "SENTRY_APP_IDENTIFIER",
84
97
  description: "App Bundle Identifier, prepended to version",
98
+ optional: true),
99
+ FastlaneCore::ConfigItem.new(key: :ignore,
100
+ description: "Ignores all files and folders matching the given glob or array of globs",
101
+ is_string: false,
102
+ optional: true),
103
+ FastlaneCore::ConfigItem.new(key: :ignore_file,
104
+ description: "Ignore all files and folders specified in the given ignore file, e.g. .gitignore",
85
105
  optional: true)
86
106
 
87
107
  ]
@@ -33,12 +33,12 @@ module Fastlane
33
33
  end
34
34
  final_command = command.map { |arg| Shellwords.escape(arg) }.join(" ")
35
35
  Open3.popen3(final_command) do |stdin, stdout, stderr, wait_thr|
36
- while (line = stderr.gets)
37
- error << line.strip!
38
- end
39
36
  while (line = stdout.gets)
40
37
  UI.message(line.strip!)
41
38
  end
39
+ while (line = stderr.gets)
40
+ error << line.strip!
41
+ end
42
42
  exit_status = wait_thr.value
43
43
  unless exit_status.success? && error.empty?
44
44
  handle_error(error)
@@ -1,6 +1,6 @@
1
1
  module Fastlane
2
2
  module Sentry
3
- VERSION = "1.5.0"
4
- CLI_VERSION = "1.31.0"
3
+ VERSION = "1.6.0"
4
+ CLI_VERSION = "1.48.0"
5
5
  end
6
6
  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: 1.5.0
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sentry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2019-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -91,8 +91,10 @@ files:
91
91
  - lib/fastlane/plugin/sentry.rb
92
92
  - lib/fastlane/plugin/sentry/actions/sentry_create_release.rb
93
93
  - lib/fastlane/plugin/sentry/actions/sentry_finalize_release.rb
94
+ - lib/fastlane/plugin/sentry/actions/sentry_set_commits.rb
94
95
  - lib/fastlane/plugin/sentry/actions/sentry_upload_dsym.rb
95
96
  - lib/fastlane/plugin/sentry/actions/sentry_upload_file.rb
97
+ - lib/fastlane/plugin/sentry/actions/sentry_upload_proguard.rb
96
98
  - lib/fastlane/plugin/sentry/actions/sentry_upload_sourcemap.rb
97
99
  - lib/fastlane/plugin/sentry/helper/sentry_config.rb
98
100
  - lib/fastlane/plugin/sentry/helper/sentry_helper.rb
@@ -117,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
119
  version: '0'
118
120
  requirements: []
119
121
  rubyforge_project:
120
- rubygems_version: 2.5.2
122
+ rubygems_version: 2.5.2.3
121
123
  signing_key:
122
124
  specification_version: 4
123
125
  summary: Upload symbols to Sentry