fastlane 1.59.0 → 1.60.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/fastlane/actions/adb.rb +65 -0
- data/lib/fastlane/actions/adb_devices.rb +55 -0
- data/lib/fastlane/actions/badge.rb +18 -3
- data/lib/fastlane/actions/erb.rb +4 -5
- data/lib/fastlane/actions/gradle.rb +6 -1
- data/lib/fastlane/actions/nexus_upload.rb +7 -2
- data/lib/fastlane/actions/register_devices.rb +1 -0
- data/lib/fastlane/actions/setup_jenkins.rb +172 -0
- data/lib/fastlane/actions/update_fastlane.rb +3 -1
- data/lib/fastlane/actions/xcodebuild.rb +3 -0
- data/lib/fastlane/helper/adb_helper.rb +48 -0
- data/lib/fastlane/helper/gradle_helper.rb +3 -3
- data/lib/fastlane/version.rb +1 -1
- metadata +13 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1338c5055a5be98c13f9ac2339fc8af01cc4618
|
4
|
+
data.tar.gz: 27953fcef98fff5cb1f1f8cf2eee2661869a5668
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 325bf47a78344790a47d9bb191c771f0d4d01682f9383529862cf4272878bca0f77a81679619a04e96f4be0deaa7ca322cbc2f2b52b963e46b9c82972b5608b0
|
7
|
+
data.tar.gz: 94d735495e67d72454fef23fb03a09a01146f19927673531075c1d8513cf37ccf8e0d1a8de18735f8e1f5daef059564ac35cfce2dd0b9829cce92bb89172dc64
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
|
6
|
+
class AdbAction < Action
|
7
|
+
def self.run(params)
|
8
|
+
adb = Helper::AdbHelper.new(adb_path: params[:adb_path])
|
9
|
+
result = adb.trigger(command: params[:command], serial: params[:serial])
|
10
|
+
return result
|
11
|
+
end
|
12
|
+
|
13
|
+
#####################################################
|
14
|
+
# @!group Documentation
|
15
|
+
#####################################################
|
16
|
+
|
17
|
+
def self.description
|
18
|
+
"Run ADB Actions"
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.details
|
22
|
+
[
|
23
|
+
"see adb --help for more details"
|
24
|
+
].join("\n")
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.available_options
|
28
|
+
[
|
29
|
+
FastlaneCore::ConfigItem.new(key: :serial,
|
30
|
+
env_name: "FL_ANDROID_SERIAL",
|
31
|
+
description: "Android serial, which device should be used for this command",
|
32
|
+
is_string: true,
|
33
|
+
default_value: ""),
|
34
|
+
FastlaneCore::ConfigItem.new(key: :command,
|
35
|
+
env_name: "FL_ADB_COMMAND",
|
36
|
+
description: "All commands you want to pass to the adb command, e.g. `kill-server`",
|
37
|
+
optional: true,
|
38
|
+
is_string: true),
|
39
|
+
FastlaneCore::ConfigItem.new(key: :adb_path,
|
40
|
+
env_name: "FL_ADB_PATH",
|
41
|
+
optional: true,
|
42
|
+
description: "The path to your `adb` binary",
|
43
|
+
is_string: true,
|
44
|
+
default_value: "adb"
|
45
|
+
)
|
46
|
+
]
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.output
|
50
|
+
end
|
51
|
+
|
52
|
+
def self.return_value
|
53
|
+
"The output of the adb command"
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.authors
|
57
|
+
["hjanuschka"]
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.is_supported?(platform)
|
61
|
+
platform == :android
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
module SharedValues
|
4
|
+
end
|
5
|
+
|
6
|
+
class AdbDevicesAction < Action
|
7
|
+
def self.run(params)
|
8
|
+
adb = Helper::AdbHelper.new(adb_path: params[:adb_path])
|
9
|
+
result = adb.load_all_devices
|
10
|
+
return result
|
11
|
+
end
|
12
|
+
|
13
|
+
#####################################################
|
14
|
+
# @!group Documentation
|
15
|
+
#####################################################
|
16
|
+
|
17
|
+
def self.description
|
18
|
+
"Get an Array of Connected android device serials"
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.details
|
22
|
+
[
|
23
|
+
"fetches device list via adb"
|
24
|
+
].join("\n")
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.available_options
|
28
|
+
[
|
29
|
+
FastlaneCore::ConfigItem.new(key: :adb_path,
|
30
|
+
env_name: "FL_ADB_PATH",
|
31
|
+
description: "The path to your `adb` binary",
|
32
|
+
is_string: true,
|
33
|
+
optional: true,
|
34
|
+
default_value: "adb"
|
35
|
+
)
|
36
|
+
]
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.output
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.return_value
|
43
|
+
"Array of devices"
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.authors
|
47
|
+
["hjanuschka"]
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.is_supported?(platform)
|
51
|
+
platform == :android
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -9,7 +9,9 @@ module Fastlane
|
|
9
9
|
custom: params[:custom],
|
10
10
|
no_badge: params[:no_badge],
|
11
11
|
shield: params[:shield],
|
12
|
-
alpha: params[:alpha]
|
12
|
+
alpha: params[:alpha],
|
13
|
+
shield_io_timeout: params[:shield_io_timeout],
|
14
|
+
glob: params[:glob]
|
13
15
|
}
|
14
16
|
Badge::Runner.new.run(params[:path], options)
|
15
17
|
end
|
@@ -76,7 +78,20 @@ module Fastlane
|
|
76
78
|
default_value: '.',
|
77
79
|
verify_block: proc do |value|
|
78
80
|
raise "path needs to be a valid directory".red if Dir[value].empty?
|
79
|
-
end)
|
81
|
+
end),
|
82
|
+
FastlaneCore::ConfigItem.new(key: :shield_io_timeout,
|
83
|
+
env_name: "FL_BADGE_SHIELD_IO_TIMEOUT",
|
84
|
+
description: "Set custom duration for the timeout of the shield.io request in seconds",
|
85
|
+
optional: true,
|
86
|
+
is_string: false,
|
87
|
+
verify_block: proc do |value|
|
88
|
+
raise "shield_io_timeout needs to be an integer > 0".red if value.to_i < 1
|
89
|
+
end),
|
90
|
+
FastlaneCore::ConfigItem.new(key: :glob,
|
91
|
+
env_name: "FL_BADGE_GLOB",
|
92
|
+
description: "Glob pattern for finding image files",
|
93
|
+
optional: true,
|
94
|
+
is_string: true)
|
80
95
|
]
|
81
96
|
end
|
82
97
|
|
@@ -85,7 +100,7 @@ module Fastlane
|
|
85
100
|
end
|
86
101
|
|
87
102
|
def self.is_supported?(platform)
|
88
|
-
|
103
|
+
[:ios, :mac, :android].include?(platform)
|
89
104
|
end
|
90
105
|
end
|
91
106
|
end
|
data/lib/fastlane/actions/erb.rb
CHANGED
@@ -34,16 +34,15 @@ module Fastlane
|
|
34
34
|
FastlaneCore::ConfigItem.new(key: :destination,
|
35
35
|
short_option: "-D",
|
36
36
|
env_name: "FL_ERB_DST",
|
37
|
-
description: "
|
37
|
+
description: "Destination file",
|
38
38
|
optional: true,
|
39
39
|
is_string: true
|
40
40
|
),
|
41
41
|
FastlaneCore::ConfigItem.new(key: :placeholders,
|
42
42
|
short_option: "-p",
|
43
|
-
env_name: "
|
44
|
-
description: "
|
45
|
-
|
46
|
-
default_value: true,
|
43
|
+
env_name: "FL_ERB_PLACEHOLDERS",
|
44
|
+
description: "Placeholders given as a hash",
|
45
|
+
default_value: {},
|
47
46
|
is_string: false,
|
48
47
|
type: Hash
|
49
48
|
)
|
@@ -11,7 +11,7 @@ module Fastlane
|
|
11
11
|
|
12
12
|
gradle = Helper::GradleHelper.new(gradle_path: params[:gradle_path])
|
13
13
|
|
14
|
-
result = gradle.trigger(task: task, flags: params[:flags])
|
14
|
+
result = gradle.trigger(task: task, flags: params[:flags], serial: params[:serial])
|
15
15
|
|
16
16
|
return result unless task.start_with?("assemble")
|
17
17
|
|
@@ -51,6 +51,11 @@ module Fastlane
|
|
51
51
|
|
52
52
|
def self.available_options
|
53
53
|
[
|
54
|
+
FastlaneCore::ConfigItem.new(key: :serial,
|
55
|
+
env_name: "FL_ANDROID_SERIAL",
|
56
|
+
description: "Android serial, wich device should be used for this command",
|
57
|
+
is_string: true,
|
58
|
+
default_value: ""),
|
54
59
|
FastlaneCore::ConfigItem.new(key: :task,
|
55
60
|
env_name: "FL_GRADLE_TASK",
|
56
61
|
description: "The gradle task you want to execute",
|
@@ -10,11 +10,11 @@ module Fastlane
|
|
10
10
|
command += upload_options(params)
|
11
11
|
command << upload_url(params)
|
12
12
|
|
13
|
-
Fastlane::Actions.sh(command.join(' '), log:
|
13
|
+
Fastlane::Actions.sh(command.join(' '), log: params[:verbose])
|
14
14
|
end
|
15
15
|
|
16
16
|
def self.upload_url(params)
|
17
|
-
"#{params[:endpoint]
|
17
|
+
"#{params[:endpoint]}#{params[:mount_path]}/service/local/artifact/maven/content".shellescape
|
18
18
|
end
|
19
19
|
|
20
20
|
def self.verbose(params)
|
@@ -96,6 +96,11 @@ module Fastlane
|
|
96
96
|
env_name: "FL_NEXUS_ENDPOINT",
|
97
97
|
description: "Nexus endpoint e.g. http://nexus:8081",
|
98
98
|
optional: false),
|
99
|
+
FastlaneCore::ConfigItem.new(key: :mount_path,
|
100
|
+
env_name: "FL_NEXUS_MOUNT_PATH",
|
101
|
+
description: "Nexus mount path. Defaults to /nexus",
|
102
|
+
default_value: "/nexus",
|
103
|
+
optional: true),
|
99
104
|
FastlaneCore::ConfigItem.new(key: :username,
|
100
105
|
env_name: "FL_NEXUS_USERNAME",
|
101
106
|
description: "Nexus username",
|
@@ -74,6 +74,7 @@ module Fastlane
|
|
74
74
|
FastlaneCore::ConfigItem.new(key: :team_id,
|
75
75
|
env_name: "FASTLANE_TEAM_ID",
|
76
76
|
description: "optional: Your team ID",
|
77
|
+
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:team_id),
|
77
78
|
optional: true),
|
78
79
|
FastlaneCore::ConfigItem.new(key: :username,
|
79
80
|
env_name: "DELIVER_USER",
|
@@ -0,0 +1,172 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Actions
|
3
|
+
class SetupJenkinsAction < Action
|
4
|
+
USED_ENV_NAMES = [
|
5
|
+
"BACKUP_XCARCHIVE_DESTINATION",
|
6
|
+
"DERIVED_DATA_PATH",
|
7
|
+
"GYM_BUILD_PATH",
|
8
|
+
"GYM_CODE_SIGNING_IDENTITY",
|
9
|
+
"GYM_DERIVED_DATA_PATH",
|
10
|
+
"GYM_OUTPUT_DIRECTORY",
|
11
|
+
"GYM_RESULT_BUNDLE",
|
12
|
+
"SCAN_DERIVED_DATA_PATH",
|
13
|
+
"SCAN_OUTPUT_DIRECTORY",
|
14
|
+
"SCAN_RESULT_BUNDLE",
|
15
|
+
"XCODE_DERIVED_DATA_PATH"
|
16
|
+
].freeze
|
17
|
+
|
18
|
+
def self.run(params)
|
19
|
+
# Stop if not executed by CI
|
20
|
+
if !Helper.is_ci? && !params[:force]
|
21
|
+
UI.important "Not executed by Continuous Integration system."
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
25
|
+
# Print table
|
26
|
+
FastlaneCore::PrintTable.print_values(
|
27
|
+
config: params,
|
28
|
+
title: "Summary for Setup Jenkins Action"
|
29
|
+
)
|
30
|
+
|
31
|
+
# Keychain
|
32
|
+
if params[:unlock_keychain] && params[:keychain_path]
|
33
|
+
keychain_path = File.expand_path(params[:keychain_path])
|
34
|
+
UI.message "Unlocking keychain: \"#{keychain_path}\"."
|
35
|
+
Actions::UnlockKeychainAction.run(
|
36
|
+
path: keychain_path,
|
37
|
+
password: params[:keychain_password],
|
38
|
+
add_to_search_list: params[:add_keychain_to_search_list],
|
39
|
+
set_default: params[:set_default_keychain]
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Code signing identity
|
44
|
+
if params[:set_code_signing_identity] && params[:code_signing_identity]
|
45
|
+
code_signing_identity = params[:code_signing_identity]
|
46
|
+
UI.message "Set code signing identity: \"#{code_signing_identity}\"."
|
47
|
+
ENV['GYM_CODE_SIGNING_IDENTITY'] = code_signing_identity
|
48
|
+
end
|
49
|
+
|
50
|
+
# Set output directory
|
51
|
+
if params[:output_directory]
|
52
|
+
output_directory_path = File.expand_path(params[:output_directory])
|
53
|
+
UI.message "Set output directory path to: \"#{output_directory_path}\"."
|
54
|
+
ENV['GYM_BUILD_PATH'] = output_directory_path
|
55
|
+
ENV['GYM_OUTPUT_DIRECTORY'] = output_directory_path
|
56
|
+
ENV['SCAN_OUTPUT_DIRECTORY'] = output_directory_path
|
57
|
+
ENV['BACKUP_XCARCHIVE_DESTINATION'] = output_directory_path
|
58
|
+
end
|
59
|
+
|
60
|
+
# Set derived data
|
61
|
+
if params[:derived_data_path]
|
62
|
+
derived_data_path = File.expand_path(params[:derived_data_path])
|
63
|
+
UI.message "Set derived data path to: \"#{derived_data_path}\"."
|
64
|
+
ENV['DERIVED_DATA_PATH'] = derived_data_path # Used by clear_derived_data.
|
65
|
+
ENV['XCODE_DERIVED_DATA_PATH'] = derived_data_path
|
66
|
+
ENV['GYM_DERIVED_DATA_PATH'] = derived_data_path
|
67
|
+
ENV['SCAN_DERIVED_DATA_PATH'] = derived_data_path
|
68
|
+
end
|
69
|
+
|
70
|
+
# Set result bundle
|
71
|
+
if params[:result_bundle]
|
72
|
+
UI.message "Set result bundle."
|
73
|
+
ENV['GYM_RESULT_BUNDLE'] = "YES"
|
74
|
+
ENV['SCAN_RESULT_BUNDLE'] = "YES"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
#####################################################
|
79
|
+
# @!group Documentation
|
80
|
+
#####################################################
|
81
|
+
|
82
|
+
def self.description
|
83
|
+
"Setup xcodebuild, gym and scan for easier Jenkins integration"
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.details
|
87
|
+
[
|
88
|
+
"- Adds and unlocks keychains from Jenkins 'Keychains and Provisioning Profiles Plugin'",
|
89
|
+
"- Sets code signing identity from Jenkins 'Keychains and Provisioning Profiles Plugin'",
|
90
|
+
"- Sets output directory to './output' (gym, scan and backup_xcarchive).",
|
91
|
+
"- Sets derived data path to './derivedData' (xcodebuild, gym, scan and clear_derived_data).",
|
92
|
+
"- Produce result bundle (gym and scan)."
|
93
|
+
].join("\n")
|
94
|
+
end
|
95
|
+
|
96
|
+
def self.available_options
|
97
|
+
[
|
98
|
+
# General
|
99
|
+
FastlaneCore::ConfigItem.new(key: :force,
|
100
|
+
env_name: "FL_SETUP_JENKINS_FORCE",
|
101
|
+
description: "Force setup, even if not executed by Jenkins",
|
102
|
+
is_string: false,
|
103
|
+
default_value: false),
|
104
|
+
|
105
|
+
# Keychain
|
106
|
+
FastlaneCore::ConfigItem.new(key: :unlock_keychain,
|
107
|
+
env_name: "FL_SETUP_JENKINS_UNLOCK_KEYCHAIN",
|
108
|
+
description: "Unlocks keychain",
|
109
|
+
is_string: false,
|
110
|
+
default_value: true),
|
111
|
+
FastlaneCore::ConfigItem.new(key: :add_keychain_to_search_list,
|
112
|
+
env_name: "FL_SETUP_JENKINS_ADD_KEYCHAIN_TO_SEARCH_LIST",
|
113
|
+
description: "Add to keychain search list",
|
114
|
+
is_string: false,
|
115
|
+
default_value: :replace),
|
116
|
+
FastlaneCore::ConfigItem.new(key: :set_default_keychain,
|
117
|
+
env_name: "FL_SETUP_JENKINS_SET_DEFAULT_KEYCHAIN",
|
118
|
+
description: "Set keychain as default",
|
119
|
+
is_string: false,
|
120
|
+
default_value: true),
|
121
|
+
FastlaneCore::ConfigItem.new(key: :keychain_path,
|
122
|
+
env_name: "KEYCHAIN_PATH",
|
123
|
+
description: "Path to keychain",
|
124
|
+
is_string: true,
|
125
|
+
optional: true),
|
126
|
+
FastlaneCore::ConfigItem.new(key: :keychain_password,
|
127
|
+
env_name: "KEYCHAIN_PASSWORD",
|
128
|
+
description: "Keychain password",
|
129
|
+
is_string: true,
|
130
|
+
default_value: ""),
|
131
|
+
|
132
|
+
# Code signing identity
|
133
|
+
FastlaneCore::ConfigItem.new(key: :set_code_signing_identity,
|
134
|
+
env_name: "FL_SETUP_JENKINS_SET_CODE_SIGNING_IDENTITY",
|
135
|
+
description: "Set code signing identity from CODE_SIGNING_IDENTITY environment",
|
136
|
+
is_string: false,
|
137
|
+
default_value: true),
|
138
|
+
FastlaneCore::ConfigItem.new(key: :code_signing_identity,
|
139
|
+
env_name: "CODE_SIGNING_IDENTITY",
|
140
|
+
description: "Code signing identity",
|
141
|
+
is_string: true,
|
142
|
+
optional: true),
|
143
|
+
|
144
|
+
# Xcode parameters
|
145
|
+
FastlaneCore::ConfigItem.new(key: :output_directory,
|
146
|
+
env_name: "FL_SETUP_JENKINS_OUTPUT_DIRECTORY",
|
147
|
+
description: "The directory in which the ipa file should be stored in",
|
148
|
+
is_string: true,
|
149
|
+
default_value: "./output"),
|
150
|
+
FastlaneCore::ConfigItem.new(key: :derived_data_path,
|
151
|
+
env_name: "FL_SETUP_JENKINS_DERIVED_DATA_PATH",
|
152
|
+
description: "The directory where build products and other derived data will go",
|
153
|
+
is_string: true,
|
154
|
+
default_value: "./derivedData"),
|
155
|
+
FastlaneCore::ConfigItem.new(key: :result_bundle,
|
156
|
+
env_name: "FL_SETUP_JENKINS_RESULT_BUNDLE",
|
157
|
+
description: "Produce the result bundle describing what occurred will be placed",
|
158
|
+
is_string: false,
|
159
|
+
default_value: true)
|
160
|
+
]
|
161
|
+
end
|
162
|
+
|
163
|
+
def self.authors
|
164
|
+
["bartoszj"]
|
165
|
+
end
|
166
|
+
|
167
|
+
def self.is_supported?(platform)
|
168
|
+
[:ios, :mac].include?(platform)
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
end
|
@@ -70,6 +70,9 @@ module Fastlane
|
|
70
70
|
project = ENV["XCODE_PROJECT"]
|
71
71
|
buildlog_path = ENV["XCODE_BUILDLOG_PATH"]
|
72
72
|
|
73
|
+
# Set derived data path.
|
74
|
+
params[:derivedDataPath] ||= ENV["XCODE_DERIVED_DATA_PATH"]
|
75
|
+
|
73
76
|
# Append slash to build path, if needed
|
74
77
|
if build_path && !build_path.end_with?("/")
|
75
78
|
build_path += "/"
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Helper
|
3
|
+
class AdbDevice
|
4
|
+
attr_accessor :serial
|
5
|
+
|
6
|
+
def initialize(serial: nil)
|
7
|
+
self.serial = serial
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
class AdbHelper
|
12
|
+
# Path to the adb binary
|
13
|
+
attr_accessor :adb_path
|
14
|
+
|
15
|
+
# All available devices
|
16
|
+
attr_accessor :devices
|
17
|
+
|
18
|
+
def initialize(adb_path: nil)
|
19
|
+
self.adb_path = adb_path
|
20
|
+
end
|
21
|
+
|
22
|
+
# Run a certain action
|
23
|
+
def trigger(command: nil, serial: nil)
|
24
|
+
android_serial = serial != "" ? "ANDROID_SERIAL=#{serial}" : nil
|
25
|
+
command = [android_serial, adb_path, command].join(" ")
|
26
|
+
Action.sh(command)
|
27
|
+
end
|
28
|
+
|
29
|
+
def device_avalaible?(serial)
|
30
|
+
load_all_devices
|
31
|
+
return devices.map(&:serial).include?(serial)
|
32
|
+
end
|
33
|
+
|
34
|
+
def load_all_devices
|
35
|
+
self.devices = []
|
36
|
+
|
37
|
+
command = [adb_path, "devices"].join(" ")
|
38
|
+
output = Actions.sh(command, log: false)
|
39
|
+
output.split("\n").each do |line|
|
40
|
+
if (result = line.match(/(.*)\tdevice$/))
|
41
|
+
self.devices << AdbDevice.new(serial: result[1])
|
42
|
+
end
|
43
|
+
end
|
44
|
+
self.devices
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -23,10 +23,10 @@ module Fastlane
|
|
23
23
|
end
|
24
24
|
|
25
25
|
# Run a certain action
|
26
|
-
def trigger(task: nil, flags: nil)
|
26
|
+
def trigger(task: nil, flags: nil, serial:nil)
|
27
27
|
# raise "Could not find gradle task '#{task}' in the list of available tasks".red unless task_available?(task)
|
28
|
-
|
29
|
-
command = [gradle_path, task, flags].join(" ")
|
28
|
+
android_serial = serial != "" ? "ANDROID_SERIAL=#{serial}" : nil
|
29
|
+
command = [android_serial, gradle_path, task, flags].join(" ")
|
30
30
|
Action.sh(command)
|
31
31
|
end
|
32
32
|
|
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.60.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: 2016-02-
|
11
|
+
date: 2016-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: krausefx-shenzhen
|
@@ -134,7 +134,7 @@ dependencies:
|
|
134
134
|
requirements:
|
135
135
|
- - ">="
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0.36.
|
137
|
+
version: 0.36.5
|
138
138
|
- - "<"
|
139
139
|
- !ruby/object:Gem::Version
|
140
140
|
version: 1.0.0
|
@@ -144,7 +144,7 @@ dependencies:
|
|
144
144
|
requirements:
|
145
145
|
- - ">="
|
146
146
|
- !ruby/object:Gem::Version
|
147
|
-
version: 0.36.
|
147
|
+
version: 0.36.5
|
148
148
|
- - "<"
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: 1.0.0
|
@@ -194,7 +194,7 @@ dependencies:
|
|
194
194
|
requirements:
|
195
195
|
- - ">="
|
196
196
|
- !ruby/object:Gem::Version
|
197
|
-
version: 1.10.
|
197
|
+
version: 1.10.1
|
198
198
|
- - "<"
|
199
199
|
- !ruby/object:Gem::Version
|
200
200
|
version: 2.0.0
|
@@ -204,7 +204,7 @@ dependencies:
|
|
204
204
|
requirements:
|
205
205
|
- - ">="
|
206
206
|
- !ruby/object:Gem::Version
|
207
|
-
version: 1.10.
|
207
|
+
version: 1.10.1
|
208
208
|
- - "<"
|
209
209
|
- !ruby/object:Gem::Version
|
210
210
|
version: 2.0.0
|
@@ -334,7 +334,7 @@ dependencies:
|
|
334
334
|
requirements:
|
335
335
|
- - ">="
|
336
336
|
- !ruby/object:Gem::Version
|
337
|
-
version: 1.6.
|
337
|
+
version: 1.6.1
|
338
338
|
- - "<"
|
339
339
|
- !ruby/object:Gem::Version
|
340
340
|
version: 2.0.0
|
@@ -344,7 +344,7 @@ dependencies:
|
|
344
344
|
requirements:
|
345
345
|
- - ">="
|
346
346
|
- !ruby/object:Gem::Version
|
347
|
-
version: 1.6.
|
347
|
+
version: 1.6.1
|
348
348
|
- - "<"
|
349
349
|
- !ruby/object:Gem::Version
|
350
350
|
version: 2.0.0
|
@@ -614,6 +614,8 @@ files:
|
|
614
614
|
- lib/fastlane/action_collector.rb
|
615
615
|
- lib/fastlane/actions/README.md
|
616
616
|
- lib/fastlane/actions/actions_helper.rb
|
617
|
+
- lib/fastlane/actions/adb.rb
|
618
|
+
- lib/fastlane/actions/adb_devices.rb
|
617
619
|
- lib/fastlane/actions/add_git_tag.rb
|
618
620
|
- lib/fastlane/actions/appaloosa.rb
|
619
621
|
- lib/fastlane/actions/appetize.rb
|
@@ -724,6 +726,7 @@ files:
|
|
724
726
|
- lib/fastlane/actions/set_changelog.rb
|
725
727
|
- lib/fastlane/actions/set_github_release.rb
|
726
728
|
- lib/fastlane/actions/set_info_plist_value.rb
|
729
|
+
- lib/fastlane/actions/setup_jenkins.rb
|
727
730
|
- lib/fastlane/actions/sigh.rb
|
728
731
|
- lib/fastlane/actions/skip_docs.rb
|
729
732
|
- lib/fastlane/actions/slack.rb
|
@@ -770,6 +773,7 @@ files:
|
|
770
773
|
- lib/fastlane/fast_file.rb
|
771
774
|
- lib/fastlane/fastlane_folder.rb
|
772
775
|
- lib/fastlane/helper/README.md
|
776
|
+
- lib/fastlane/helper/adb_helper.rb
|
773
777
|
- lib/fastlane/helper/crashlytics_helper.rb
|
774
778
|
- lib/fastlane/helper/gem_helper.rb
|
775
779
|
- lib/fastlane/helper/git_helper.rb
|
@@ -808,7 +812,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
808
812
|
version: '0'
|
809
813
|
requirements: []
|
810
814
|
rubyforge_project:
|
811
|
-
rubygems_version: 2.
|
815
|
+
rubygems_version: 2.2.2
|
812
816
|
signing_key:
|
813
817
|
specification_version: 4
|
814
818
|
summary: Connect all iOS deployment tools into one streamlined workflow
|