fastlane 1.36.4 → 1.37.0

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: 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