fastlane 1.14.1 → 1.15.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 +4 -4
- data/lib/assets/AppfileTemplate +1 -1
- data/lib/fastlane/actions/backup_xcarchive.rb +1 -1
- data/lib/fastlane/actions/crashlytics.rb +26 -4
- data/lib/fastlane/actions/import_from_git.rb +40 -0
- data/lib/fastlane/actions/update_fastlane.rb +1 -1
- data/lib/fastlane/fast_file.rb +37 -0
- data/lib/fastlane/lane.rb +3 -0
- data/lib/fastlane/lane_manager.rb +2 -1
- data/lib/fastlane/version.rb +1 -1
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c980a477b659d8d6117c8de3009035284dcc1e38
|
4
|
+
data.tar.gz: 2aa626bbd632c0e49094b8b3ffa79acbcf053db9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d393d36508309b50c28f18ec62ca7b542be5adb0f3d9d0f1131610f034f40d45422ee756b1921a3a63a30ffff8813f192437b389cfaa13384f82081802bea15
|
7
|
+
data.tar.gz: 20a859c58f3788fcbdb20f398bf50daf2564f4f806cc294c7d096870472fa56797aee7de4bf8d5a251b44e5c94cfee3ee3a6b23c14dd2581a4891b2cef5ccd82
|
data/lib/assets/AppfileTemplate
CHANGED
@@ -8,4 +8,4 @@ apple_id "[[APPLE_ID]]" # Your Apple email address
|
|
8
8
|
|
9
9
|
|
10
10
|
# you can even provide different app identifiers, Apple IDs and team names per lane:
|
11
|
-
# https://github.com/KrauseFx/fastlane/blob/master/docs/
|
11
|
+
# https://github.com/KrauseFx/fastlane/blob/master/docs/Appfile.md
|
@@ -35,7 +35,7 @@ module Fastlane
|
|
35
35
|
zip_file = File.expand_path(File.join("#{xcarchive_file}.zip"))
|
36
36
|
|
37
37
|
# Create zip
|
38
|
-
Actions.sh(%Q[cd #{xcarchive_folder} && zip -r -X "#{zip_file}" "#{xcarchive_file}" > /dev/null])
|
38
|
+
Actions.sh(%Q[cd "#{xcarchive_folder}" && zip -r -X "#{zip_file}" "#{xcarchive_file}" > /dev/null])
|
39
39
|
|
40
40
|
# Moved to its final destination
|
41
41
|
FileUtils.mv(zip_file, full_destination)
|
@@ -13,7 +13,7 @@ module Fastlane
|
|
13
13
|
def self.run(params)
|
14
14
|
require 'shenzhen'
|
15
15
|
require 'shenzhen/plugins/crashlytics'
|
16
|
-
|
16
|
+
|
17
17
|
# can pass groups param either as an Array or a String
|
18
18
|
case params[:groups]
|
19
19
|
when NilClass
|
@@ -24,16 +24,34 @@ module Fastlane
|
|
24
24
|
groups = params[:groups]
|
25
25
|
end
|
26
26
|
|
27
|
+
# Normalized notification to Crashlytics notification parameter requirement
|
28
|
+
# 'YES' or 'NO' - String
|
29
|
+
case params[:notifications]
|
30
|
+
when String
|
31
|
+
if params[:notifications] == 'YES' || params[:notifications] == 'NO'
|
32
|
+
notifications = params[:notifications]
|
33
|
+
else
|
34
|
+
notifications = 'YES' if params[:notifications] == 'true'
|
35
|
+
notifications = 'NO' if params[:notifications] == 'false'
|
36
|
+
end
|
37
|
+
when TrueClass
|
38
|
+
notifications = 'YES'
|
39
|
+
when FalseClass
|
40
|
+
notifications = 'NO'
|
41
|
+
else
|
42
|
+
notifications = nil
|
43
|
+
end
|
44
|
+
|
27
45
|
Helper.log.info 'Uploading the IPA to Crashlytics. Go for a coffee ☕️.'.green
|
28
46
|
|
29
47
|
if Helper.test?
|
30
48
|
# Access all values, to do the verify
|
31
|
-
return params[:crashlytics_path], params[:api_token], params[:build_secret], params[:ipa_path], params[:build_secret], params[:ipa_path], params[:notes_path], params[:emails],
|
49
|
+
return params[:crashlytics_path], params[:api_token], params[:build_secret], params[:ipa_path], params[:build_secret], params[:ipa_path], params[:notes_path], params[:emails], groups, notifications
|
32
50
|
end
|
33
51
|
|
34
52
|
client = Shenzhen::Plugins::Crashlytics::Client.new(params[:crashlytics_path], params[:api_token], params[:build_secret])
|
35
53
|
|
36
|
-
response = client.upload_build(params[:ipa_path], file: params[:ipa_path], notes: params[:notes_path], emails: params[:emails], groups:
|
54
|
+
response = client.upload_build(params[:ipa_path], file: params[:ipa_path], notes: params[:notes_path], emails: params[:emails], groups: groups, notifications: notifications)
|
37
55
|
|
38
56
|
if response
|
39
57
|
Helper.log.info 'Build successfully uploaded to Crashlytics'.green
|
@@ -92,7 +110,11 @@ module Fastlane
|
|
92
110
|
FastlaneCore::ConfigItem.new(key: :notifications,
|
93
111
|
env_name: "CRASHLYTICS_NOTIFICATIONS",
|
94
112
|
description: "Crashlytics notification option (true/false)",
|
95
|
-
optional: true
|
113
|
+
optional: true,
|
114
|
+
is_string: false,
|
115
|
+
verify_block: Proc.new do |value|
|
116
|
+
raise "Crashlytics supported notifications options: TrueClass, FalseClass, 'true', 'false', 'YES', 'NO'".red unless (value.is_a?(TrueClass) || value.is_a?(FalseClass) || value.is_a?(String))
|
117
|
+
end)
|
96
118
|
]
|
97
119
|
end
|
98
120
|
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class ImportFromGitAction < Action
|
4
|
+
def self.run(params)
|
5
|
+
# this is implemented in the fast_file.rb
|
6
|
+
end
|
7
|
+
|
8
|
+
#####################################################
|
9
|
+
# @!group Documentation
|
10
|
+
#####################################################
|
11
|
+
|
12
|
+
def self.description
|
13
|
+
"Import another Fastfile from a remote git repository to use its lanes"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.details
|
17
|
+
[
|
18
|
+
"This is useful if you have shared lanes across multiple apps and you want to store the Fastfile",
|
19
|
+
"in a remote git repository."
|
20
|
+
].join("\n")
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.available_options
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.output
|
28
|
+
[]
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.authors
|
32
|
+
["fabiomassimo", "KrauseFx"]
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.is_supported?(platform)
|
36
|
+
true
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/fastlane/fast_file.rb
CHANGED
@@ -178,6 +178,43 @@ module Fastlane
|
|
178
178
|
Fastlane::Actions.load_external_actions(actions_path) if File.directory?(actions_path)
|
179
179
|
end
|
180
180
|
|
181
|
+
# @param url [String] The git URL to clone the repository from
|
182
|
+
# @param path [String] The path to the Fastfile
|
183
|
+
def import_from_git(url: nil, path: 'fastlane/Fastfile')
|
184
|
+
raise "Please pass a path to the `import_from_git` action".red if url.to_s.length == 0
|
185
|
+
|
186
|
+
Actions.execute_action('import_from_git') do
|
187
|
+
|
188
|
+
# Checkout the repo
|
189
|
+
repo_name = url.split("/").last
|
190
|
+
|
191
|
+
folder = File.join("/tmp", "fl_clones", repo_name)
|
192
|
+
|
193
|
+
if File.directory?folder
|
194
|
+
Helper.log.info "Using existing git repo..."
|
195
|
+
Actions.sh("git pull")
|
196
|
+
else
|
197
|
+
# When this fails, we have to clone the git repo
|
198
|
+
Helper.log.info "Cloning remote git repo..."
|
199
|
+
Actions.sh("git clone '#{url}' '#{folder}' --depth 1 -n")
|
200
|
+
end
|
201
|
+
|
202
|
+
Actions.sh("cd '#{folder}' && git checkout HEAD '#{path}'")
|
203
|
+
|
204
|
+
# We also want to check out all the local actions of this fastlane setup
|
205
|
+
containing = path.split(File::SEPARATOR)[0..-2]
|
206
|
+
containing = "." if containing.count == 0
|
207
|
+
actions_folder = File.join(containing, "actions")
|
208
|
+
begin
|
209
|
+
Actions.sh("cd '#{folder}' && git checkout HEAD '#{actions_folder}'")
|
210
|
+
rescue => ex
|
211
|
+
# We don't care about a failure here, as local actions are optional
|
212
|
+
end
|
213
|
+
|
214
|
+
import(File.join(folder, path))
|
215
|
+
end
|
216
|
+
end
|
217
|
+
|
181
218
|
#####################################################
|
182
219
|
# @!group Overwriting Ruby methods
|
183
220
|
#####################################################
|
data/lib/fastlane/lane.rb
CHANGED
@@ -16,6 +16,9 @@ module Fastlane
|
|
16
16
|
|
17
17
|
def initialize(platform: nil, name: nil, description: nil, block: nil, is_private: false)
|
18
18
|
raise "description must be an array" unless description.kind_of?Array
|
19
|
+
raise "lane name must not contain any spaces".red if name.to_s.include?" "
|
20
|
+
raise "lane name must start with :".red unless name.kind_of?Symbol
|
21
|
+
|
19
22
|
|
20
23
|
self.platform = platform
|
21
24
|
self.name = name
|
data/lib/fastlane/version.rb
CHANGED
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.
|
4
|
+
version: 1.15.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-08-
|
11
|
+
date: 2015-08-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - ">="
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: 0.
|
173
|
+
version: 0.12.0
|
174
174
|
type: :runtime
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: 0.
|
180
|
+
version: 0.12.0
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: spaceship
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -457,6 +457,7 @@ files:
|
|
457
457
|
- lib/fastlane/actions/hockey.rb
|
458
458
|
- lib/fastlane/actions/import.rb
|
459
459
|
- lib/fastlane/actions/import_certificate.rb
|
460
|
+
- lib/fastlane/actions/import_from_git.rb
|
460
461
|
- lib/fastlane/actions/increment_build_number.rb
|
461
462
|
- lib/fastlane/actions/increment_version_number.rb
|
462
463
|
- lib/fastlane/actions/install_carthage.rb
|