fastlane-plugin-bugsnag 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 699cd6ec58789101875e421f44903f7e63f4fa47
4
- data.tar.gz: 6c24799a2a13a819bc1a6e36840b82aa9cf1bd87
3
+ metadata.gz: a7020860789186a1fc8fb21cd6349d633a6f2a76
4
+ data.tar.gz: 758c188397d02a429660e287c6f35084fd409190
5
5
  SHA512:
6
- metadata.gz: 2ebfc59a0886a70e3bbdf01ff9ffc227e7de5f3449c7e175f60c7faf5cf9e809f8574db9e754cc643e67b1d9a388084a6baedf4865fdc5380c69da34c987c147
7
- data.tar.gz: c45e9a8d16301c30c684c6abac68b298925284a1f0af6d5d241a1cff40ec43dbb798740b7337075787dfa6e2c48bdb827b821ad025d7801f88ff557fc6e3859f
6
+ metadata.gz: 7f0114205b5435acea7e400e292af32a941cd5f0ba9cac57216fa7a5ff12348a653e5708606409c55acd05e6c33efc4cfe254abb627e474c5b22face56a6e5cc
7
+ data.tar.gz: 1743c54c23cd198b7f4ed73787dd37d66bfb042c3e063acfae5936a4ea24af5ac7091a27275a17aa4706d3253d76bc828e1e0c15abae6553a4cb0d0d81e5dd92
@@ -14,14 +14,25 @@ module Fastlane
14
14
  else
15
15
  payload.merge!(options_from_info_plist(params[:config_file])) if params[:config_file]
16
16
  end
17
+
18
+ default_plist = default_info_plist_path
19
+ default_manifest = default_android_manifest_path
20
+ if (lane_context[:PLATFORM_NAME] == :android and params[:config_file] == default_manifest) or
21
+ (lane_context[:PLATFORM_NAME] != :android and params[:config_file] == default_plist)
22
+ # Load custom API key and version properties only if config file has not been overridden
23
+ payload[:apiKey] = params[:api_key] unless params[:api_key].nil?
24
+ payload[:appVersion] = params[:app_version] unless params[:app_version].nil?
25
+ payload[:appVersionCode] = params[:android_version_code] unless params[:android_version_code].nil?
26
+ payload[:appBundleVersion] = params[:ios_bundle_version] unless params[:ios_bundle_version].nil?
27
+ else
28
+ # Print which file is populating version and API key information since the value has been
29
+ # overridden
30
+ UI.message("Loading API key and app version info from #{params[:config_file]}")
31
+ end
17
32
  payload.delete(:config_file)
18
33
 
19
34
  # Overwrite automated options with configured if set
20
- payload[:apiKey] = params[:api_key] unless params[:api_key].nil?
21
- payload[:appVersion] = params[:app_version] unless params[:app_version].nil?
22
35
  payload[:releaseStage] = params[:release_stage] unless params[:release_stage].nil?
23
- payload[:appVersionCode] = params[:android_version_code] unless params[:android_version_code].nil?
24
- payload[:appBundleVersion] = params[:ios_bundle_version] unless params[:ios_bundle_version].nil?
25
36
  payload[:builderName] = params[:builder]
26
37
 
27
38
  payload[:sourceControl][:revision] = params[:revision] if params[:revision]
@@ -199,7 +210,7 @@ module Fastlane
199
210
  end
200
211
 
201
212
  def self.default_info_plist_path
202
- Dir.glob("./{ios/,}*/Info.plist").reject {|path| path.include?('build/') }.first
213
+ Dir.glob("./{ios/,}*/Info.plist").reject {|path| path =~ /build|test/i }.first
203
214
  end
204
215
 
205
216
  def self.options_from_info_plist file_path
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Bugsnag
3
- VERSION = "1.3.0"
3
+ VERSION = "1.3.1"
4
4
  end
5
5
  end
@@ -2,8 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  Action = Fastlane::Actions::UploadSymbolsToBugsnagAction
4
4
 
5
- FIXTURE_PATH = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
6
-
7
5
  describe Action do
8
6
 
9
7
  it 'has an executable upload script' do
@@ -0,0 +1,49 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>BugsnagAPIKey</key>
6
+ <string>other-key</string>
7
+ <key>CFBundleDevelopmentRegion</key>
8
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>$(EXECUTABLE_NAME)</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>3.0-other</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>56</string>
23
+ <key>LSRequiresIPhoneOS</key>
24
+ <true/>
25
+ <key>UILaunchStoryboardName</key>
26
+ <string>LaunchScreen</string>
27
+ <key>UIMainStoryboardFile</key>
28
+ <string>Main</string>
29
+ <key>UIRequiredDeviceCapabilities</key>
30
+ <array>
31
+ <string>armv7</string>
32
+ </array>
33
+ <key>UISupportedInterfaceOrientations</key>
34
+ <array>
35
+ <string>UIInterfaceOrientationPortrait</string>
36
+ <string>UIInterfaceOrientationLandscapeLeft</string>
37
+ <string>UIInterfaceOrientationLandscapeRight</string>
38
+ </array>
39
+ <key>UISupportedInterfaceOrientations~ipad</key>
40
+ <array>
41
+ <string>UIInterfaceOrientationPortrait</string>
42
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
43
+ <string>UIInterfaceOrientationLandscapeLeft</string>
44
+ <string>UIInterfaceOrientationLandscapeRight</string>
45
+ </array>
46
+ </dict>
47
+ </plist>
48
+
49
+
@@ -0,0 +1,48 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>BugsnagAPIKey</key>
6
+ <string>project-key</string>
7
+ <key>CFBundleDevelopmentRegion</key>
8
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>$(EXECUTABLE_NAME)</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>2.0-project</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>6</string>
23
+ <key>LSRequiresIPhoneOS</key>
24
+ <true/>
25
+ <key>UILaunchStoryboardName</key>
26
+ <string>LaunchScreen</string>
27
+ <key>UIMainStoryboardFile</key>
28
+ <string>Main</string>
29
+ <key>UIRequiredDeviceCapabilities</key>
30
+ <array>
31
+ <string>armv7</string>
32
+ </array>
33
+ <key>UISupportedInterfaceOrientations</key>
34
+ <array>
35
+ <string>UIInterfaceOrientationPortrait</string>
36
+ <string>UIInterfaceOrientationLandscapeLeft</string>
37
+ <string>UIInterfaceOrientationLandscapeRight</string>
38
+ </array>
39
+ <key>UISupportedInterfaceOrientations~ipad</key>
40
+ <array>
41
+ <string>UIInterfaceOrientationPortrait</string>
42
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
43
+ <string>UIInterfaceOrientationLandscapeLeft</string>
44
+ <string>UIInterfaceOrientationLandscapeRight</string>
45
+ </array>
46
+ </dict>
47
+ </plist>
48
+
@@ -0,0 +1,48 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>BugsnagAPIKey</key>
6
+ <string>test-key</string>
7
+ <key>CFBundleDevelopmentRegion</key>
8
+ <string>$(DEVELOPMENT_LANGUAGE)</string>
9
+ <key>CFBundleExecutable</key>
10
+ <string>$(EXECUTABLE_NAME)</string>
11
+ <key>CFBundleIdentifier</key>
12
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
13
+ <key>CFBundleInfoDictionaryVersion</key>
14
+ <string>6.0</string>
15
+ <key>CFBundleName</key>
16
+ <string>$(PRODUCT_NAME)</string>
17
+ <key>CFBundlePackageType</key>
18
+ <string>APPL</string>
19
+ <key>CFBundleShortVersionString</key>
20
+ <string>1.0</string>
21
+ <key>CFBundleVersion</key>
22
+ <string>1</string>
23
+ <key>LSRequiresIPhoneOS</key>
24
+ <true/>
25
+ <key>UILaunchStoryboardName</key>
26
+ <string>LaunchScreen</string>
27
+ <key>UIMainStoryboardFile</key>
28
+ <string>Main</string>
29
+ <key>UIRequiredDeviceCapabilities</key>
30
+ <array>
31
+ <string>armv7</string>
32
+ </array>
33
+ <key>UISupportedInterfaceOrientations</key>
34
+ <array>
35
+ <string>UIInterfaceOrientationPortrait</string>
36
+ <string>UIInterfaceOrientationLandscapeLeft</string>
37
+ <string>UIInterfaceOrientationLandscapeRight</string>
38
+ </array>
39
+ <key>UISupportedInterfaceOrientations~ipad</key>
40
+ <array>
41
+ <string>UIInterfaceOrientationPortrait</string>
42
+ <string>UIInterfaceOrientationPortraitUpsideDown</string>
43
+ <string>UIInterfaceOrientationLandscapeLeft</string>
44
+ <string>UIInterfaceOrientationLandscapeRight</string>
45
+ </array>
46
+ </dict>
47
+ </plist>
48
+
@@ -0,0 +1,109 @@
1
+ require 'spec_helper'
2
+ require 'json'
3
+ require 'fastlane/actions/get_info_plist_value'
4
+
5
+ BuildAction = Fastlane::Actions::SendBuildToBugsnagAction
6
+
7
+ describe BuildAction do
8
+ def load_default_opts
9
+ BuildAction.available_options.map do |x|
10
+ [x.key, x.default_value]
11
+ end.to_h
12
+ end
13
+
14
+ context 'building an iOS project' do
15
+ it 'detects default Info.plist file excluding test dirs' do
16
+ expect(BuildAction).to receive(:send_notification) do |url, body|
17
+ payload = ::JSON.load(body)
18
+ expect(payload['appVersion']).to eq '3.0-other'
19
+ expect(payload['appBundleVersion']).to eq '56'
20
+ expect(payload['apiKey']).to eq 'other-key'
21
+ end
22
+
23
+ Dir.chdir(File.join(FIXTURE_PATH, 'ios_proj')) do
24
+ BuildAction.run(load_default_opts)
25
+ end
26
+ end
27
+
28
+ context 'using default config_file option' do
29
+ context 'override API key option' do
30
+ it 'reads API key from the api_key option' do
31
+ expect(BuildAction).to receive(:send_notification) do |url, body|
32
+ payload = ::JSON.load(body)
33
+ expect(payload['apiKey']).to eq 'baobab'
34
+ end
35
+
36
+ Dir.chdir(File.join(FIXTURE_PATH, 'ios_proj')) do
37
+ BuildAction.run(load_default_opts.merge({
38
+ api_key: 'baobab'
39
+ }))
40
+ end
41
+ end
42
+
43
+ it 'reads version info from the config file' do
44
+ expect(BuildAction).to receive(:send_notification) do |url, body|
45
+ payload = ::JSON.load(body)
46
+ expect(payload['appVersion']).to eq '4.0.0'
47
+ expect(payload['appBundleVersion']).to eq '400'
48
+ end
49
+
50
+ Dir.chdir(File.join(FIXTURE_PATH, 'ios_proj')) do
51
+ BuildAction.run(load_default_opts.merge({
52
+ app_version: '4.0.0',
53
+ ios_bundle_version: '400'
54
+ }))
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ context 'override config_file option' do
61
+ it 'reads API key and version info from the config file' do
62
+ expect(BuildAction).to receive(:send_notification) do |url, body|
63
+ payload = ::JSON.load(body)
64
+ expect(payload['appVersion']).to eq '2.0-project'
65
+ expect(payload['appBundleVersion']).to eq '6'
66
+ expect(payload['apiKey']).to eq 'project-key'
67
+ end
68
+
69
+ Dir.chdir(File.join(FIXTURE_PATH, 'ios_proj')) do
70
+ BuildAction.run(load_default_opts.merge({
71
+ config_file: File.join('Project', 'Info.plist')
72
+ }))
73
+ end
74
+ end
75
+
76
+ context 'override API key option' do
77
+ it 'reads API key from the config file' do
78
+ expect(BuildAction).to receive(:send_notification) do |url, body|
79
+ payload = ::JSON.load(body)
80
+ expect(payload['apiKey']).to eq 'project-key'
81
+ end
82
+
83
+ Dir.chdir(File.join(FIXTURE_PATH, 'ios_proj')) do
84
+ BuildAction.run(load_default_opts.merge({
85
+ config_file: File.join('Project', 'Info.plist'),
86
+ api_key: 'baobab'
87
+ }))
88
+ end
89
+ end
90
+
91
+ it 'reads version info from the config file' do
92
+ expect(BuildAction).to receive(:send_notification) do |url, body|
93
+ payload = ::JSON.load(body)
94
+ expect(payload['appVersion']).to eq '2.0-project'
95
+ expect(payload['appBundleVersion']).to eq '6'
96
+ end
97
+
98
+ Dir.chdir(File.join(FIXTURE_PATH, 'ios_proj')) do
99
+ BuildAction.run(load_default_opts.merge({
100
+ config_file: File.join('Project', 'Info.plist'),
101
+ app_version: '4.0.0',
102
+ ios_bundle_version: '400'
103
+ }))
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
data/spec/spec_helper.rb CHANGED
@@ -6,3 +6,5 @@ end
6
6
 
7
7
  require 'fastlane' # to import the Action super class
8
8
  require 'fastlane/plugin/bugsnag' # import the actual plugin
9
+
10
+ FIXTURE_PATH = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures'))
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane-plugin-bugsnag
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delisa Mason
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-14 00:00:00.000000000 Z
11
+ date: 2018-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xml-simple
@@ -140,9 +140,13 @@ files:
140
140
  - spec/fixtures/dSYMs/app2.dSYM/Contents/Resources/DWARF/app2
141
141
  - spec/fixtures/files.zip
142
142
  - spec/fixtures/invalid_file
143
+ - spec/fixtures/ios_proj/FirstRealFolder/Info.plist
144
+ - spec/fixtures/ios_proj/Project/Info.plist
145
+ - spec/fixtures/ios_proj/aaTests/Info.plist
143
146
  - spec/fixtures/more_files.zip
144
147
  - spec/fixtures/stuff/app.dSYM/Contents/Resources/DWARF/app
145
148
  - spec/fixtures/stuff/app2.dSYM/Contents/Resources/DWARF/app2
149
+ - spec/send_build_to_bugsnag_spec.rb
146
150
  - spec/spec_helper.rb
147
151
  homepage: https://github.com/bugsnag/bugsnag-upload
148
152
  licenses:
@@ -175,7 +179,11 @@ test_files:
175
179
  - spec/fixtures/dSYMs/app2.dSYM/Contents/Resources/DWARF/app2
176
180
  - spec/fixtures/files.zip
177
181
  - spec/fixtures/invalid_file
182
+ - spec/fixtures/ios_proj/aaTests/Info.plist
183
+ - spec/fixtures/ios_proj/FirstRealFolder/Info.plist
184
+ - spec/fixtures/ios_proj/Project/Info.plist
178
185
  - spec/fixtures/more_files.zip
179
186
  - spec/fixtures/stuff/app.dSYM/Contents/Resources/DWARF/app
180
187
  - spec/fixtures/stuff/app2.dSYM/Contents/Resources/DWARF/app2
188
+ - spec/send_build_to_bugsnag_spec.rb
181
189
  - spec/spec_helper.rb