fastlane-plugin-bugsnag 1.3.3 → 1.3.4

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: 97cb1046d8bdd668186f6320ecc9895431caa33e27be40fee7244355afb31a80
4
- data.tar.gz: 7643a09dcf9d6370455b180f87a66e94f690c120c7ff9cc9054f176ae21ba512
3
+ metadata.gz: 02c60ef7d341ce29ce5d18ec3f5c93362c7ed029e9d3d1ea7d088a71d82c5236
4
+ data.tar.gz: e03e1f3969e5b1c41b13ce7c0f92b3e3cd4f09bd684d861f3b5d48099d18455b
5
5
  SHA512:
6
- metadata.gz: 4ac614726269d702515c6bd2a38bbb20d26b405545936b894f52a68636898680807b7518862952f43d9f35e0699f56e1c564a4b219f8ed3c5b56985f24bb3efc
7
- data.tar.gz: 89eee8521282656e20539fcb65a1948ab6e8a8db0037d7753a10a1fadb1082404d47591d299df1a8f4dc28f631930a446801ae2e7e31bd0f6c813796d82c23ff
6
+ metadata.gz: 76f80373a17c95b8887cc7cfbd1fbff3e58742c989bb83623277de768eb82ed1a9ef32ef613ab6194f2d719003f762fec780ed2ca56a7bae98cf23f531a3df3d
7
+ data.tar.gz: 2e339494643b6e71de5b8c70bcbef48e7d876930009aca03c6236ffbbe58d85f67999bd383cfed2b0330fca7c3d4ad5de80c34ca5c51bcc14b82781f6ffe2737
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2016 Bugsnag, Inc.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,161 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # Given a directory, uploads any *.dSYM bundles with the directory to
4
+ # Bugsnag. As a pre-upload step, bitcode symbol maps can be combined with
5
+ # dSYM files to ensure symbols are sent for bitcode-enabled binaries.
6
+ #
7
+ # Depends on:
8
+ # * curl
9
+ # * dwarfdump
10
+ # * dsymutil (for --symbol-maps, optional)
11
+ # * unzip (for uploading a .zip file, optional)
12
+
13
+ function print_usage() {
14
+ echo "Usage: $0 [--symbol-maps DIR] dSYMS_PATH"
15
+ echo
16
+ echo "-h, --help Displays this message"
17
+ echo "-v, --verbose Print verbose logging output during execution"
18
+ echo "--symbol-maps DIR Path to a directory of bitcode symbol maps. The"
19
+ echo " dSYM files will be restored with symbols prior to"
20
+ echo " upload. Requires dsymutil."
21
+ echo "--upload-server URL The server receiving dSYM files. Set this value if"
22
+ echo " using an on-premise Bugsnag installation"
23
+ echo "--project-root DIR The root directory of the project. This will help to"
24
+ echo " group error reports by project"
25
+ echo "dSYMS_PATH A directory or .zip file containing *.dSYM bundles to"
26
+ echo " upload"
27
+ }
28
+
29
+ function exit_with_usage() {
30
+ echo $1
31
+ echo
32
+ print_usage
33
+ exit 1
34
+ }
35
+
36
+ function log() {
37
+ if [[ $silent != 1 ]]; then
38
+ echo $@
39
+ fi
40
+ }
41
+
42
+ function log_verbose() {
43
+ if [[ $verbose == 1 ]]; then
44
+ log $@
45
+ fi
46
+ }
47
+
48
+ upload_server=https://upload.bugsnag.com
49
+ unset symbol_maps
50
+ unset dsym_dir
51
+ unset verbose
52
+ unset silent
53
+ unset project_root
54
+
55
+ while [[ $# -gt 0 ]]; do
56
+ case $1 in
57
+ -h|--help)
58
+ print_usage
59
+ exit 0;;
60
+ -s|--silent)
61
+ silent=1
62
+ shift;;
63
+ -v|--verbose)
64
+ verbose=1
65
+ shift;;
66
+ --symbol-maps)
67
+ symbol_maps=$2
68
+ shift
69
+ shift;;
70
+ --upload-server)
71
+ upload_server=$2
72
+ shift
73
+ shift;;
74
+ --project-root)
75
+ project_root=$2
76
+ shift
77
+ shift;;
78
+ -*)
79
+ exit_with_usage "Invalid parameter provided: $1";;
80
+ *)
81
+ dsym_dir=$1
82
+ break;;
83
+ esac
84
+ done
85
+
86
+ # Set IFS to ensure that file paths with spaces in get processed correctly
87
+ IFS=$'\n'
88
+
89
+ if [[ ! -z $symbol_maps ]]; then
90
+ if [[ ! -d $symbol_maps ]]; then
91
+ exit_with_usage "Bitcode symbol map parameter is not a directory"
92
+ elif [[ ! -x "$(command -v dsymutil 2>/dev/null)" ]]; then
93
+ exit_with_usage "dsymutil command not found."
94
+ fi
95
+ fi
96
+ if [[ -z $dsym_dir ]]; then
97
+ exit_with_usage "No dSYM directory provided"
98
+ fi
99
+ if [[ ! -d $dsym_dir ]]; then
100
+ if [[ $dsym_dir == *".zip" ]]; then
101
+ if [[ ! -x "$(command -v unzip 2>/dev/null)" ]]; then
102
+ exit_with_usage "unzip command not found."
103
+ fi
104
+ temp_dir=$(mktemp -dt "bugsnag-dsym-upload.XXX")
105
+ unzip -qq $dsym_dir -d $temp_dir
106
+ dsym_dir=$temp_dir
107
+ else
108
+ exit_with_usage "'$dsym_dir' is not a directory or a zip file"
109
+ fi
110
+ fi
111
+
112
+ log_verbose "Uploading files to $upload_server"
113
+ success_count=0
114
+ fail_count=0
115
+
116
+ for dsym in $dsym_dir/*.dSYM; do
117
+ log_verbose "Preparing to upload $dsym"
118
+
119
+ if [[ -d $symbol_maps ]]; then
120
+ log_verbose "Updating file with bitcode symbol maps in $symbol_maps"
121
+ dsymutil "$dsym" --symbol-map "$symbol_maps"
122
+ fi
123
+
124
+ dwarf_data=$dsym/Contents/Resources/DWARF
125
+ if [[ ! -d $dwarf_data ]]; then
126
+ log_verbose "Skipping file missing DWARF data: $dsym"
127
+ fail_count=$((fail_count+1))
128
+ continue
129
+ fi
130
+ for file in $dwarf_data/*; do
131
+ uuid=$(dwarfdump -u $file 2>/dev/null)
132
+ if [[ $uuid == UUID* ]]; then
133
+ log Uploading $uuid
134
+ if [[ ! -z $project_root ]]; then
135
+ output=$(curl --silent --show-error $upload_server -F dsym=@\"$file\" -F projectRoot=$project_root)
136
+ else
137
+ output=$(curl --silent --show-error $upload_server -F dsym=@\"$file\")
138
+ fi
139
+ if [ $? -eq 0 ]; then
140
+ success_count=$((success_count+1))
141
+ else
142
+ fail_count=$((fail_count+1))
143
+ log_verbose "Failed to upload file: $file"
144
+ fi
145
+ echo $output | grep -v '^OK$'
146
+ log
147
+ else
148
+ log_verbose "Skipping file without UUID: $file"
149
+ fail_count=$((fail_count+1))
150
+ fi
151
+ done
152
+ done
153
+
154
+ if [ $success_count -gt 0 ]; then
155
+ log "$success_count files uploaded successfully"
156
+ fi
157
+
158
+ if [ $fail_count -gt 0 ]; then
159
+ log "$fail_count files failed to upload"
160
+ exit 1
161
+ fi
@@ -1,5 +1,5 @@
1
1
  module Fastlane
2
2
  module Bugsnag
3
- VERSION = "1.3.3"
3
+ VERSION = "1.3.4"
4
4
  end
5
5
  end
@@ -4,8 +4,19 @@ Action = Fastlane::Actions::UploadSymbolsToBugsnagAction
4
4
 
5
5
  describe Action do
6
6
 
7
- it 'has an executable upload script' do
8
- expect(File.exist?(Action::UPLOAD_SCRIPT_PATH)).to be true
7
+ context "the packaged gem" do
8
+ gem_name = "fastlane-plugin-bugsnag-#{Fastlane::Bugsnag::VERSION}"
9
+
10
+ after do
11
+ FileUtils.rm_rf(gem_name)
12
+ FileUtils.rm_rf("#{gem_name}.gem")
13
+ end
14
+
15
+ it 'has an executable upload script' do
16
+ system('rake build')
17
+ system("gem unpack #{gem_name}.gem")
18
+ expect(File.exist?(File.join("#{gem_name}/bugsnag-dsym-upload"))).to be true
19
+ end
9
20
  end
10
21
 
11
22
  describe '#run' do
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.3
4
+ version: 1.3.4
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-07-11 00:00:00.000000000 Z
11
+ date: 2018-07-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xml-simple
@@ -1 +0,0 @@
1
- ./../../LICENSE.txt
@@ -1 +0,0 @@
1
- ./../../bin/bugsnag-dsym-upload