fastlane 1.36.4 → 1.37.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: 88a3768ac7d5d80c0823cc6908ec20c2b36844fd
4
- data.tar.gz: 9e7041994983ae4e0333211c856185cc7647f2a9
3
+ metadata.gz: 4793357ce92d97781498a3d157ccf7b5f006d205
4
+ data.tar.gz: 85a52b0db7e07c517ce85d7131e3803d579ef41d
5
5
  SHA512:
6
- metadata.gz: ca68a5977e044087b743fc930002ce145c6b6a5bfebdda9ce8626eb918fa14b215de92f398d98126cc514b48308f79f38e67ed18a7c7fbec63b4544649aedf1b
7
- data.tar.gz: 314424099c5c9ae58ce4fb6a894ef38480fdebe4b5eadedce707211bf5fd74ffc175cd322b69fc88d50076a7f589784193f8f3fda34b1f501188dc10d441c4e9
6
+ metadata.gz: 13d07ce3a8741163350e4ef5d6a374d7235b9dff8b7f4dfeb28b9156d1b7b16be8b3dc2e81a6a5225d64fa49e8b024ef6962ee62e2b04051dd679e0560d758f8
7
+ data.tar.gz: 8aea7f461df3f6924f6613bbfbc803af874c2f9d238d55a2c4fb66aa0213b93e1644e4183bb2e226c53475b1c21ed851f1a2b28c3b4c0bf7a3bbb09e73c026e5
data/README.md CHANGED
@@ -152,7 +152,7 @@ See how [Wikipedia](https://github.com/fastlane/examples#wikipedia-by-wikimedia-
152
152
 
153
153
  ## [`fastlane`](https://fastlane.tools) Toolchain
154
154
 
155
- `fastlane` is designed to make your life easier by bringing together all `fastlane` tools under one roof.
155
+ `fastlane` is designed to make your life easier by bringing together all `fastlane` tools
156
156
 
157
157
  - [`deliver`](https://github.com/fastlane/deliver): Upload screenshots, metadata and your app to the App Store
158
158
  - [`snapshot`](https://github.com/fastlane/snapshot): Automate taking localized screenshots of your iOS app on every device
@@ -108,7 +108,13 @@ module Fastlane
108
108
  env_name: "CRASHLYTICS_NOTIFICATIONS",
109
109
  description: "Crashlytics notification option (true/false)",
110
110
  default_value: true,
111
+ is_string: false),
112
+ FastlaneCore::ConfigItem.new(key: :debug,
113
+ env_name: "CRASHLYTICS_DEBUG",
114
+ description: "Crashlytics debug option (true/false)",
115
+ default_value: false,
111
116
  is_string: false)
117
+
112
118
  ]
113
119
  end
114
120
 
@@ -0,0 +1,46 @@
1
+ module Fastlane
2
+ module Actions
3
+ class InstallXcodePluginAction < Action
4
+ def self.run(params)
5
+ zip_path = File.join(Dir.tmpdir, 'plugin.zip')
6
+ sh "curl -Lso #{zip_path} #{params[:url]}"
7
+ Action.sh "unzip -qo '#{zip_path}' -d '#{ENV['HOME']}/Library/Application Support/Developer/Shared/Xcode/Plug-ins'"
8
+
9
+ Helper.log.info("Plugin #{File.basename(params[:url], '.zip')} installed successfully")
10
+ end
11
+
12
+ #####################################################
13
+ # @!group Documentation
14
+ #####################################################
15
+
16
+ def self.description
17
+ "Install an Xcode plugin for the current user"
18
+ end
19
+
20
+ def self.available_options
21
+ [
22
+ FastlaneCore::ConfigItem.new(key: :url,
23
+ env_name: "FL_XCODE_PLUGIN_URL",
24
+ description: "URL for Xcode plugin ZIP file",
25
+ verify_block: proc do |value|
26
+ raise "No URL for InstallXcodePluginAction given, pass using `url: 'url'`".red unless value and !value.empty?
27
+ end)
28
+ ]
29
+ end
30
+
31
+ def self.output
32
+ end
33
+
34
+ def self.return_value
35
+ end
36
+
37
+ def self.authors
38
+ ["NeoNachoSoto"]
39
+ end
40
+
41
+ def self.is_supported?(platform)
42
+ [:ios, :mac, :tvos, :watchos, :caros].include?(platform)
43
+ end
44
+ end
45
+ end
46
+ end
@@ -50,6 +50,7 @@ module Fastlane
50
50
  build_args = params_to_build_args(params)
51
51
 
52
52
  # Pulling parameters for other uses
53
+ s3_region = params[:region]
53
54
  s3_subdomain = params[:region] ? "s3-#{params[:region]}" : "s3"
54
55
  s3_access_key = params[:access_key]
55
56
  s3_secret_access_key = params[:secret_access_key]
@@ -166,6 +167,7 @@ module Fastlane
166
167
  s3_access_key,
167
168
  s3_secret_access_key,
168
169
  s3_bucket,
170
+ s3_region,
169
171
  plist_file_name,
170
172
  plist_render,
171
173
  html_file_name,
@@ -191,13 +193,22 @@ module Fastlane
191
193
  end.compact
192
194
  end
193
195
 
194
- def self.upload_plist_and_html_to_s3(s3_access_key, s3_secret_access_key, s3_bucket, plist_file_name, plist_render, html_file_name, html_render, version_file_name, version_render)
196
+ def self.upload_plist_and_html_to_s3(s3_access_key, s3_secret_access_key, s3_bucket, s3_region, plist_file_name, plist_render, html_file_name, html_render, version_file_name, version_render)
195
197
  Actions.verify_gem!('aws-sdk')
196
198
  require 'aws-sdk'
197
- s3_client = AWS::S3.new(
198
- access_key_id: s3_access_key,
199
- secret_access_key: s3_secret_access_key
200
- )
199
+ if s3_region
200
+ s3_client = AWS::S3.new(
201
+ access_key_id: s3_access_key,
202
+ secret_access_key: s3_secret_access_key,
203
+ region: s3_region
204
+ )
205
+ else
206
+ s3_client = AWS::S3.new(
207
+ access_key_id: s3_access_key,
208
+ secret_access_key: s3_secret_access_key
209
+ )
210
+ end
211
+
201
212
  bucket = s3_client.buckets[s3_bucket]
202
213
 
203
214
  plist_obj = bucket.objects.create(plist_file_name, plist_render.to_s, acl: :public_read)
@@ -8,15 +8,20 @@ module Fastlane
8
8
  command += proxy_options(params)
9
9
  command += upload_options(params)
10
10
  command << upload_url
11
+ command << upload_progress(params)
11
12
 
12
- result = Fastlane::Actions.sh(command.join(' '), log: false)
13
+ # Fastlane::Actions.sh has buffering issues, no progress bar is shown in real time
14
+ # will reanable it when it is fixed
15
+ # result = Fastlane::Actions.sh(command.join(' '), log: false)
16
+ shell_command = command.join(' ')
17
+ result = Helper.is_test? ? shell_command : `#{shell_command}`
13
18
  fail_on_error(result)
14
19
 
15
20
  result
16
21
  end
17
22
 
18
23
  def self.fail_on_error(result)
19
- if result.include?("error") || result.include?("Excess found")
24
+ if result.include?("error")
20
25
  raise "Server error, failed to upload the dSYM file".red
21
26
  end
22
27
  end
@@ -26,7 +31,11 @@ module Fastlane
26
31
  end
27
32
 
28
33
  def self.verbose(params)
29
- params[:verbose] ? "--verbose" : "--silent"
34
+ params[:verbose] ? "--verbose" : ""
35
+ end
36
+
37
+ def self.upload_progress(params)
38
+ params[:upload_progress] ? " --progress-bar -o /dev/null --no-buffer" : ""
30
39
  end
31
40
 
32
41
  def self.dsym_path(params)
@@ -93,6 +102,12 @@ module Fastlane
93
102
  is_string: false,
94
103
  default_value: false,
95
104
  optional: true),
105
+ FastlaneCore::ConfigItem.new(key: :upload_progress,
106
+ env_name: "FL_SPLUNKMINT_UPLOAD_PROGRESS",
107
+ description: "Show upload progress",
108
+ is_string: false,
109
+ default_value: false,
110
+ optional: true),
96
111
  FastlaneCore::ConfigItem.new(key: :proxy_username,
97
112
  env_name: "FL_SPLUNKMINT_PROXY_USERNAME",
98
113
  description: "Proxy username",
@@ -0,0 +1,82 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ XCODE_INSTALL_XCODE_PATH = :XCODE_INSTALL_XCODE_PATH
5
+ end
6
+
7
+ class XcodeInstallAction < Action
8
+ def self.run(params)
9
+ ENV["XCODE_INSTALL_USER"] = params[:username]
10
+ ENV["XCODE_INSTALL_TEAM_ID"] = params[:team_id]
11
+
12
+ require 'xcode/install'
13
+ installer = XcodeInstall::Installer.new
14
+
15
+ if installer.installed?(params[:version])
16
+ Helper.log.info "Xcode #{params[:version]} is already installed ✨".green
17
+ else
18
+ installer.install_version(params[:version], true, true, true, true)
19
+ end
20
+
21
+ xcode = installer.installed_versions.find { |x| x.version == params[:version] }
22
+ raise "Could not find Xcode with version '#{params[:version]}'" unless xcode
23
+ Helper.log.info "Using Xcode #{params[:version]} on path '#{xcode.path}'"
24
+ xcode.approve_license
25
+
26
+ ENV["DEVELOPER_DIR"] = File.join(xcode.path, "/Contents/Developer")
27
+ Actions.lane_context[SharedValues::XCODE_INSTALL_XCODE_PATH] = xcode.path
28
+ return xcode.path
29
+ end
30
+
31
+ #####################################################
32
+ # @!group Documentation
33
+ #####################################################
34
+
35
+ def self.description
36
+ "Make sure a certain version of Xcode is installed"
37
+ end
38
+
39
+ def self.details
40
+ end
41
+
42
+ def self.available_options
43
+ [
44
+ FastlaneCore::ConfigItem.new(key: :version,
45
+ env_name: "FL_XCODE_VERSION",
46
+ description: "The version number of the version of Xcode to install",
47
+ verify_block: proc do |value|
48
+ end),
49
+ FastlaneCore::ConfigItem.new(key: :username,
50
+ short_option: "-u",
51
+ env_name: "XCODE_INSTALL_USER",
52
+ description: "Your Apple ID Username",
53
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:apple_id)),
54
+ FastlaneCore::ConfigItem.new(key: :team_id,
55
+ short_option: "-b",
56
+ env_name: "XCODE_INSTALL_TEAM_ID",
57
+ description: "The ID of your team if you're in multiple teams",
58
+ optional: true,
59
+ default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id))
60
+ ]
61
+ end
62
+
63
+ def self.output
64
+ [
65
+ ['XCODE_INSTALL_CUSTOM_VALUE', 'A description of what this value contains']
66
+ ]
67
+ end
68
+
69
+ def self.return_value
70
+ "The path to the newly installed Xcode version"
71
+ end
72
+
73
+ def self.authors
74
+ ["Krausefx"]
75
+ end
76
+
77
+ def self.is_supported?(platform)
78
+ [:ios, :mac].include?(platform)
79
+ end
80
+ end
81
+ end
82
+ end
@@ -30,7 +30,7 @@ module Fastlane
30
30
 
31
31
  Helper.log.info "Setting Xcode version to #{xcode_path} for all build steps"
32
32
 
33
- ENV["DEVELOPER_DIR"] = xcode_path + "/Contents/Developer"
33
+ ENV["DEVELOPER_DIR"] = File.join(xcode_path, "/Contents/Developer")
34
34
  end
35
35
 
36
36
  def self.description
@@ -15,6 +15,7 @@ module Fastlane
15
15
  command << "-notesPath '#{params[:notes_path]}'" if params[:notes_path]
16
16
  command << "-groupAliases '#{params[:groups]}'" if params[:groups]
17
17
  command << "-notifications #{(params[:notifications] ? 'YES' : 'NO')}"
18
+ command << "-debug #{(params[:debug] ? 'YES' : 'NO')}"
18
19
 
19
20
  return command
20
21
  end
@@ -23,6 +23,7 @@ module Fastlane
23
23
  else
24
24
  exit_status = nil
25
25
  IO.popen(command, err: [:child, :out]) do |io|
26
+ io.sync = true
26
27
  io.each do |line|
27
28
  Helper.log.info ['[SHELL]', line.strip].join(': ')
28
29
  result << line
@@ -1,3 +1,3 @@
1
1
  module Fastlane
2
- VERSION = '1.36.4'
2
+ VERSION = '1.37.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fastlane
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.36.4
4
+ version: 1.37.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Krause
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2015-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: krausefx-shenzhen
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: 2.3.8
159
+ - !ruby/object:Gem::Dependency
160
+ name: xcode-install
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 1.0.1
166
+ type: :runtime
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: 1.0.1
159
173
  - !ruby/object:Gem::Dependency
160
174
  name: fastlane_core
161
175
  requirement: !ruby/object:Gem::Requirement
@@ -625,6 +639,7 @@ files:
625
639
  - lib/fastlane/actions/import_from_git.rb
626
640
  - lib/fastlane/actions/increment_build_number.rb
627
641
  - lib/fastlane/actions/increment_version_number.rb
642
+ - lib/fastlane/actions/install_xcode_plugin.rb
628
643
  - lib/fastlane/actions/ipa.rb
629
644
  - lib/fastlane/actions/is_ci.rb
630
645
  - lib/fastlane/actions/lane_context.rb
@@ -677,6 +692,7 @@ files:
677
692
  - lib/fastlane/actions/verify_xcode.rb
678
693
  - lib/fastlane/actions/version_bump_podspec.rb
679
694
  - lib/fastlane/actions/version_get_podspec.rb
695
+ - lib/fastlane/actions/xcode_install.rb
680
696
  - lib/fastlane/actions/xcode_select.rb
681
697
  - lib/fastlane/actions/xcode_server_get_assets.rb
682
698
  - lib/fastlane/actions/xcodebuild.rb