fastlane 2.98.0 → 2.99.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/README.md +70 -70
- data/credentials_manager/lib/credentials_manager/appfile_config.rb +1 -1
- data/deliver/lib/assets/DeliverfileDefault +1 -1
- data/deliver/lib/assets/DeliverfileDefault.swift +1 -1
- data/deliver/lib/assets/summary.html.erb +1 -1
- data/deliver/lib/deliver/commands_generator.rb +2 -2
- data/deliver/lib/deliver/detect_values.rb +1 -1
- data/deliver/lib/deliver/download_screenshots.rb +1 -1
- data/deliver/lib/deliver/options.rb +3 -3
- data/deliver/lib/deliver/runner.rb +9 -9
- data/deliver/lib/deliver/submit_for_review.rb +3 -3
- data/deliver/lib/deliver/upload_metadata.rb +3 -3
- data/deliver/lib/deliver/upload_screenshots.rb +2 -2
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +3 -3
- data/fastlane/lib/fastlane/actions/cocoapods.rb +1 -0
- data/fastlane/lib/fastlane/actions/create_app_online.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/check_app_store_metadata.md +3 -3
- data/fastlane/lib/fastlane/actions/docs/create_app_online.md +8 -8
- data/fastlane/lib/fastlane/actions/docs/frame_screenshots.md +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +2 -2
- data/fastlane/lib/fastlane/actions/docs/upload_to_app_store.md.erb +14 -14
- data/fastlane/lib/fastlane/actions/docs/upload_to_testflight.md +2 -2
- data/fastlane/lib/fastlane/actions/download_dsyms.rb +7 -7
- data/fastlane/lib/fastlane/actions/github_api.rb +2 -0
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/set_changelog.rb +6 -6
- data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +1 -1
- data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +1 -1
- data/fastlane/lib/fastlane/command_line_handler.rb +2 -2
- data/fastlane/lib/fastlane/commands_generator.rb +1 -0
- data/fastlane/lib/fastlane/fast_file.rb +8 -6
- data/fastlane/lib/fastlane/lane_manager.rb +0 -3
- data/fastlane/lib/fastlane/runner.rb +1 -9
- data/fastlane/lib/fastlane/server/socket_server.rb +4 -2
- data/fastlane/lib/fastlane/setup/setup_ios.rb +12 -12
- data/fastlane/lib/fastlane/swift_lane_manager.rb +9 -8
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +3 -1
- data/fastlane/swift/ControlCommand.swift +0 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +3 -3
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/LaneFileProtocol.swift +0 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/RubyCommand.swift +0 -1
- data/fastlane/swift/RubyCommandable.swift +0 -1
- data/fastlane/swift/Runner.swift +7 -7
- data/fastlane/swift/RunnerArgument.swift +0 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane/swift/SocketClient.swift +0 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +0 -1
- data/fastlane/swift/SocketResponse.swift +0 -1
- data/fastlane/swift/main.swift +2 -2
- data/fastlane_core/lib/fastlane_core/analytics/analytics_event_builder.rb +10 -39
- data/fastlane_core/lib/fastlane_core/analytics/analytics_ingester_client.rb +34 -30
- data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +16 -176
- data/fastlane_core/lib/fastlane_core/analytics/app_identifier_guesser.rb +1 -1
- data/fastlane_core/lib/fastlane_core/build_watcher.rb +2 -2
- data/fastlane_core/lib/fastlane_core/itunes_transporter.rb +8 -8
- data/fastlane_core/lib/fastlane_core/module.rb +2 -5
- data/fastlane_core/lib/fastlane_core/ui/errors/fastlane_error.rb +0 -1
- data/fastlane_core/lib/fastlane_core/ui/fastlane_runner.rb +5 -7
- data/gym/lib/gym/detect_values.rb +23 -0
- data/gym/lib/gym/generators/package_command_generator_xcode7.rb +1 -21
- data/match/lib/match/spaceship_ensure.rb +1 -1
- data/pilot/lib/pilot/build_manager.rb +2 -2
- data/pilot/lib/pilot/manager.rb +2 -2
- data/pilot/lib/pilot/options.rb +4 -4
- data/precheck/lib/precheck/options.rb +2 -2
- data/produce/lib/produce/commands_generator.rb +1 -1
- data/produce/lib/produce/developer_center.rb +1 -1
- data/produce/lib/produce/itunes_connect.rb +6 -6
- data/produce/lib/produce/options.rb +4 -4
- data/scan/lib/scan/test_command_generator.rb +6 -2
- data/screengrab/lib/screengrab/runner.rb +2 -2
- data/sigh/lib/sigh/runner.rb +6 -1
- data/snapshot/lib/assets/SnapshotHelper.swift +0 -1
- data/snapshot/lib/assets/SnapshotHelperXcode8.swift +0 -1
- data/spaceship/README.md +3 -3
- data/spaceship/lib/spaceship.rb +1 -1
- data/spaceship/lib/spaceship/client.rb +12 -7
- data/spaceship/lib/spaceship/du/du_client.rb +1 -1
- data/spaceship/lib/spaceship/errors.rb +1 -1
- data/spaceship/lib/spaceship/module.rb +1 -1
- data/spaceship/lib/spaceship/playground.rb +3 -3
- data/spaceship/lib/spaceship/portal/portal_client.rb +2 -2
- data/spaceship/lib/spaceship/spaceauth_runner.rb +5 -5
- data/spaceship/lib/spaceship/test_flight/client.rb +12 -1
- data/spaceship/lib/spaceship/test_flight/group.rb +1 -1
- data/spaceship/lib/spaceship/test_flight/tester.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_analytics.rb +143 -0
- data/spaceship/lib/spaceship/tunes/app_details.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_image.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_screenshot.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_status.rb +2 -2
- data/spaceship/lib/spaceship/tunes/app_submission.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_trailer.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_version.rb +6 -6
- data/spaceship/lib/spaceship/tunes/app_version_history.rb +1 -1
- data/spaceship/lib/spaceship/tunes/app_version_states_history.rb +1 -1
- data/spaceship/lib/spaceship/tunes/application.rb +15 -4
- data/spaceship/lib/spaceship/tunes/availability.rb +24 -8
- data/spaceship/lib/spaceship/tunes/b2b_user.rb +7 -2
- data/spaceship/lib/spaceship/tunes/build.rb +2 -2
- data/spaceship/lib/spaceship/tunes/build_details.rb +1 -1
- data/spaceship/lib/spaceship/tunes/build_train.rb +2 -2
- data/spaceship/lib/spaceship/tunes/errors.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap.rb +2 -2
- data/spaceship/lib/spaceship/tunes/iap_status.rb +1 -1
- data/spaceship/lib/spaceship/tunes/iap_type.rb +1 -1
- data/spaceship/lib/spaceship/tunes/tunes.rb +1 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +41 -13
- data/spaceship/lib/spaceship/two_step_client.rb +1 -1
- metadata +15 -14
@@ -42,9 +42,6 @@ module Fastlane
|
|
42
42
|
|
43
43
|
platform, lane = choose_lane(ff, platform) unless lane
|
44
44
|
|
45
|
-
# https://github.com/fastlane/fastlane/issues/11913
|
46
|
-
# FastlaneCore.session.is_fastfile = true
|
47
|
-
|
48
45
|
# xcodeproj has a bug in certain versions that causes it to change directories
|
49
46
|
# and not return to the original working directory
|
50
47
|
# https://github.com/CocoaPods/Xcodeproj/issues/426
|
@@ -224,10 +224,6 @@ module Fastlane
|
|
224
224
|
verify_supported_os(method_sym, class_ref)
|
225
225
|
|
226
226
|
begin
|
227
|
-
# https://github.com/fastlane/fastlane/issues/11913
|
228
|
-
# launch_context = FastlaneCore::ActionLaunchContext.context_for_action_name(method_sym.to_s, configuration_language: configuration_language, args: ARGV)
|
229
|
-
# FastlaneCore.session.action_launched(launch_context: launch_context)
|
230
|
-
|
231
227
|
Dir.chdir(custom_dir) do # go up from the fastlane folder, to the project folder
|
232
228
|
# If another action is calling this action, we shouldn't show it in the summary
|
233
229
|
# (see https://github.com/fastlane/fastlane/issues/4546)
|
@@ -254,11 +250,7 @@ module Fastlane
|
|
254
250
|
puts("==========================================\n".deprecated)
|
255
251
|
end
|
256
252
|
class_ref.runner = self # needed to call another action form an action
|
257
|
-
|
258
|
-
|
259
|
-
action_completed(method_sym.to_s, status: FastlaneCore::ActionCompletionStatus::SUCCESS)
|
260
|
-
|
261
|
-
return return_value
|
253
|
+
return class_ref.run(arguments)
|
262
254
|
end
|
263
255
|
end
|
264
256
|
rescue Interrupt => e
|
@@ -19,7 +19,8 @@ module Fastlane
|
|
19
19
|
command_executor: nil,
|
20
20
|
return_value_processor: nil,
|
21
21
|
connection_timeout: 5,
|
22
|
-
stay_alive: false
|
22
|
+
stay_alive: false,
|
23
|
+
port: 2000
|
23
24
|
)
|
24
25
|
if return_value_processor.nil?
|
25
26
|
return_value_processor = JSONReturnValueProcessor.new
|
@@ -29,6 +30,7 @@ module Fastlane
|
|
29
30
|
@return_value_processor = return_value_processor
|
30
31
|
@connection_timeout = connection_timeout.to_i
|
31
32
|
@stay_alive = stay_alive
|
33
|
+
@port = port.to_i
|
32
34
|
end
|
33
35
|
|
34
36
|
# this is the public API, don't call anything else
|
@@ -135,7 +137,7 @@ module Fastlane
|
|
135
137
|
end
|
136
138
|
|
137
139
|
def listen
|
138
|
-
@server = TCPServer.open('localhost',
|
140
|
+
@server = TCPServer.open('localhost', @port) # Socket to listen on port 2000
|
139
141
|
UI.verbose("Waiting for #{@connection_timeout} seconds for a connection from FastlaneRunner")
|
140
142
|
|
141
143
|
# set thread local to ready so we can check it
|
@@ -204,10 +204,10 @@ module Fastlane
|
|
204
204
|
ui_testing_scheme = UI.select("Which is your UI Testing scheme? If you can't find it in this list, make sure it's marked as `Shared` in the Xcode scheme list", available_schemes)
|
205
205
|
|
206
206
|
UI.header("Automatically upload to iTC?")
|
207
|
-
UI.message("Would you like fastlane to automatically upload all generated screenshots to
|
207
|
+
UI.message("Would you like fastlane to automatically upload all generated screenshots to App Store Connect")
|
208
208
|
UI.message("after generating them?")
|
209
|
-
UI.message("If you enable this feature you'll need to provide your
|
210
|
-
automatic_upload = UI.confirm("Enable automatic upload of localized screenshots to
|
209
|
+
UI.message("If you enable this feature you'll need to provide your App Store Connect credentials so fastlane can upload the screenshots to App Store Connect")
|
210
|
+
automatic_upload = UI.confirm("Enable automatic upload of localized screenshots to App Store Connect?")
|
211
211
|
if automatic_upload
|
212
212
|
ask_for_credentials(adp: true, itc: true)
|
213
213
|
verify_app_exists_itc!
|
@@ -293,13 +293,13 @@ module Fastlane
|
|
293
293
|
|
294
294
|
def ask_for_credentials(itc: true, adp: false)
|
295
295
|
UI.header("Login with your Apple ID")
|
296
|
-
UI.message("To use
|
296
|
+
UI.message("To use App Store Connect and Apple Developer Portal features as part of fastlane,")
|
297
297
|
UI.message("we will ask you for your Apple ID username and password")
|
298
298
|
UI.message("This is necessary for certain fastlane features, for example:")
|
299
299
|
UI.message("")
|
300
300
|
UI.message("- Create and manage your provisioning profiles on the Developer Portal")
|
301
|
-
UI.message("- Upload and manage TestFlight and App Store builds on
|
302
|
-
UI.message("- Manage your
|
301
|
+
UI.message("- Upload and manage TestFlight and App Store builds on App Store Connect")
|
302
|
+
UI.message("- Manage your App Store Connect app metadata and screenshots")
|
303
303
|
UI.message("")
|
304
304
|
UI.message("Your Apple ID credentials will only be stored in your Keychain, on your local machine")
|
305
305
|
UI.message("For more information, check out")
|
@@ -321,9 +321,9 @@ module Fastlane
|
|
321
321
|
Spaceship::Tunes.select_team
|
322
322
|
self.itc_team_id = Spaceship::Tunes.client.team_id
|
323
323
|
if self.is_swift_fastfile
|
324
|
-
self.append_team("var itcTeam: String? { return \"#{self.itc_team_id}\" } //
|
324
|
+
self.append_team("var itcTeam: String? { return \"#{self.itc_team_id}\" } // App Store Connect Team ID")
|
325
325
|
else
|
326
|
-
self.append_team("itc_team_id(\"#{self.itc_team_id}\") #
|
326
|
+
self.append_team("itc_team_id(\"#{self.itc_team_id}\") # App Store Connect Team ID")
|
327
327
|
end
|
328
328
|
end
|
329
329
|
|
@@ -386,19 +386,19 @@ module Fastlane
|
|
386
386
|
|
387
387
|
def verify_app_exists_itc!
|
388
388
|
UI.user_error!("No app identifier provided") if self.app_identifier.to_s.length == 0
|
389
|
-
UI.message("Checking if the app '#{self.app_identifier}' exists on
|
389
|
+
UI.message("Checking if the app '#{self.app_identifier}' exists on App Store Connect...")
|
390
390
|
app = Spaceship::Tunes::Application.find(self.app_identifier)
|
391
391
|
if app.nil?
|
392
|
-
UI.error("Looks like the app '#{self.app_identifier}' isn't available on #{'
|
392
|
+
UI.error("Looks like the app '#{self.app_identifier}' isn't available on #{'App Store Connect'.bold.underline}")
|
393
393
|
UI.error("for the team ID '#{self.itc_team_id}' on Apple ID '#{self.user}'")
|
394
|
-
if UI.confirm("Would you like fastlane to create the App on
|
394
|
+
if UI.confirm("Would you like fastlane to create the App on App Store Connect for you?")
|
395
395
|
create_app_online!(mode: :itc)
|
396
396
|
self.app_exists_on_itc = true
|
397
397
|
else
|
398
398
|
UI.important("Alright, we won't create the app for you. Be aware, the build is probably going to fail when you try it")
|
399
399
|
end
|
400
400
|
else
|
401
|
-
UI.success("✅ Your app '#{self.app_identifier}' is available on
|
401
|
+
UI.success("✅ Your app '#{self.app_identifier}' is available on App Store Connect")
|
402
402
|
self.app_exists_on_itc = true
|
403
403
|
end
|
404
404
|
end
|
@@ -6,7 +6,7 @@ module Fastlane
|
|
6
6
|
# @param lane_name The name of the lane to execute
|
7
7
|
# @param parameters [Hash] The parameters passed from the command line to the lane
|
8
8
|
# @param env Dot Env Information
|
9
|
-
def self.cruise_lane(lane, parameters = nil, env = nil, disable_runner_upgrades: false)
|
9
|
+
def self.cruise_lane(lane, parameters = nil, env = nil, disable_runner_upgrades: false, swift_server_port: nil)
|
10
10
|
UI.user_error!("lane must be a string") unless lane.kind_of?(String) || lane.nil?
|
11
11
|
UI.user_error!("parameters must be a hash") unless parameters.kind_of?(Hash) || parameters.nil?
|
12
12
|
|
@@ -15,8 +15,6 @@ module Fastlane
|
|
15
15
|
# https://github.com/CocoaPods/Xcodeproj/issues/426
|
16
16
|
# Setting this environment variable causes xcodeproj to work around the problem
|
17
17
|
ENV["FORK_XCODE_WRITING"] = "true"
|
18
|
-
# https://github.com/fastlane/fastlane/issues/11913
|
19
|
-
# FastlaneCore.session.is_fastfile = true
|
20
18
|
|
21
19
|
Fastlane::Helper::DotenvHelper.load_dot_env(env)
|
22
20
|
|
@@ -33,10 +31,11 @@ module Fastlane
|
|
33
31
|
end
|
34
32
|
|
35
33
|
self.ensure_runner_built!
|
36
|
-
|
34
|
+
swift_server_port ||= 2000
|
35
|
+
socket_thread = self.start_socket_thread(port: swift_server_port)
|
37
36
|
sleep(0.250) while socket_thread[:ready].nil?
|
38
37
|
# wait on socket_thread to be in ready state, then start the runner thread
|
39
|
-
self.cruise_swift_lane_in_thread(lane, parameters)
|
38
|
+
self.cruise_swift_lane_in_thread(lane, parameters, swift_server_port)
|
40
39
|
|
41
40
|
socket_thread.join
|
42
41
|
rescue Exception => ex # rubocop:disable Lint/RescueException
|
@@ -82,7 +81,7 @@ module Fastlane
|
|
82
81
|
Actions.sh(%(#{FastlaneCore::FastlaneFolder.swift_runner_path} lanes))
|
83
82
|
end
|
84
83
|
|
85
|
-
def self.cruise_swift_lane_in_thread(lane, parameters = nil)
|
84
|
+
def self.cruise_swift_lane_in_thread(lane, parameters = nil, swift_server_port)
|
86
85
|
if parameters.nil?
|
87
86
|
parameters = {}
|
88
87
|
end
|
@@ -96,6 +95,8 @@ module Fastlane
|
|
96
95
|
parameter_string += " logMode verbose"
|
97
96
|
end
|
98
97
|
|
98
|
+
parameter_string += " swiftServerPort #{swift_server_port}"
|
99
|
+
|
99
100
|
return Thread.new do
|
100
101
|
Actions.sh(%(#{FastlaneCore::FastlaneFolder.swift_runner_path} lane #{lane}#{parameter_string} > /dev/null))
|
101
102
|
end
|
@@ -216,13 +217,13 @@ module Fastlane
|
|
216
217
|
return project_modified
|
217
218
|
end
|
218
219
|
|
219
|
-
def self.start_socket_thread
|
220
|
+
def self.start_socket_thread(port: nil)
|
220
221
|
require 'fastlane/server/socket_server'
|
221
222
|
require 'fastlane/server/socket_server_action_command_executor'
|
222
223
|
|
223
224
|
return Thread.new do
|
224
225
|
command_executor = SocketServerActionCommandExecutor.new
|
225
|
-
server = Fastlane::SocketServer.new(command_executor: command_executor)
|
226
|
+
server = Fastlane::SocketServer.new(command_executor: command_executor, port: port)
|
226
227
|
server.start
|
227
228
|
end
|
228
229
|
end
|
@@ -7,7 +7,7 @@ var appIdentifier: String { return "" } // The bundle identifier of your app
|
|
7
7
|
var appleID: String { return "" } // Your Apple email address
|
8
8
|
|
9
9
|
var teamID: String { return "" } // Developer Portal Team ID
|
10
|
-
var itcTeam: String? { return nil } //
|
10
|
+
var itcTeam: String? { return nil } // App Store Connect Team ID (may be nil if no team)
|
11
11
|
|
12
12
|
// you can even provide different app identifiers, Apple IDs and team names per lane:
|
13
13
|
// More information: https://docs.fastlane.tools/advanced/#appfile
|
@@ -3,7 +3,6 @@
|
|
3
3
|
// FastlaneRunner
|
4
4
|
//
|
5
5
|
// Created by Joshua Liebowitz on 9/28/17.
|
6
|
-
// Copyright © 2017 Joshua Liebowitz. All rights reserved.
|
7
6
|
//
|
8
7
|
|
9
8
|
//
|
@@ -19,6 +18,7 @@ struct ArgumentProcessor {
|
|
19
18
|
let args: [RunnerArgument]
|
20
19
|
let currentLane: String
|
21
20
|
let commandTimeout: Int
|
21
|
+
let port: UInt32
|
22
22
|
|
23
23
|
init(args: [String]) {
|
24
24
|
// Dump the first arg which is the program name
|
@@ -35,6 +35,8 @@ struct ArgumentProcessor {
|
|
35
35
|
return arg.name.lowercased() == "logmode"
|
36
36
|
}
|
37
37
|
|
38
|
+
port = UInt32(fastlaneArgsMinusLanes.first(where: { $0.name == "swiftServerPort" })?.value ?? "") ?? 2000
|
39
|
+
|
38
40
|
// Configure logMode since we might need to use it before we finish parsing
|
39
41
|
if let logModeArg = potentialLogMode.first {
|
40
42
|
let logModeString = logModeArg.value
|
@@ -994,7 +994,7 @@ func cocoapods(clean: Bool = true,
|
|
994
994
|
useBundleExec: Bool = true,
|
995
995
|
podfile: String? = nil,
|
996
996
|
errorCallback: String? = nil,
|
997
|
-
tryRepoUpdateOnError: Bool
|
997
|
+
tryRepoUpdateOnError: Bool = false) {
|
998
998
|
let command = RubyCommand(commandID: "", methodName: "cocoapods", className: nil, args: [RubyCommand.Argument(name: "clean", value: clean),
|
999
999
|
RubyCommand.Argument(name: "integrate", value: integrate),
|
1000
1000
|
RubyCommand.Argument(name: "repo_update", value: repoUpdate),
|
@@ -3945,7 +3945,7 @@ func xcov(workspace: String? = nil,
|
|
3945
3945
|
coverallsServiceJobId: String? = nil,
|
3946
3946
|
coverallsRepoToken: String? = nil,
|
3947
3947
|
xcconfig: String? = nil,
|
3948
|
-
ideFoundationPath: String = "/Applications/
|
3948
|
+
ideFoundationPath: String = "/Applications/Xcode.app/Contents/Developer/../Frameworks/IDEFoundation.framework/Versions/A/IDEFoundation",
|
3949
3949
|
legacySupport: Bool = false) {
|
3950
3950
|
let command = RubyCommand(commandID: "", methodName: "xcov", className: nil, args: [RubyCommand.Argument(name: "workspace", value: workspace),
|
3951
3951
|
RubyCommand.Argument(name: "project", value: project),
|
@@ -4051,4 +4051,4 @@ let screengrabfile: Screengrabfile = Screengrabfile()
|
|
4051
4051
|
let snapshotfile: Snapshotfile = Snapshotfile()
|
4052
4052
|
// Please don't remove the lines below
|
4053
4053
|
// They are used to detect outdated files
|
4054
|
-
// FastlaneRunnerAPIVersion [0.9.
|
4054
|
+
// FastlaneRunnerAPIVersion [0.9.22]
|
data/fastlane/swift/Runner.swift
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
// FastlaneSwiftRunner
|
4
4
|
//
|
5
5
|
// Created by Joshua Liebowitz on 8/26/17.
|
6
|
-
// Copyright © 2017 Joshua Liebowitz. All rights reserved.
|
7
6
|
//
|
8
7
|
|
9
8
|
//
|
@@ -34,7 +33,7 @@ class Runner {
|
|
34
33
|
fileprivate var returnValue: String? // lol, so safe
|
35
34
|
fileprivate var currentlyExecutingCommand: RubyCommandable? = nil
|
36
35
|
fileprivate var shouldLeaveDispatchGroupDuringDisconnect = false
|
37
|
-
|
36
|
+
|
38
37
|
func executeCommand(_ command: RubyCommandable) -> String {
|
39
38
|
self.dispatchGroup.enter()
|
40
39
|
currentlyExecutingCommand = command
|
@@ -60,12 +59,12 @@ class Runner {
|
|
60
59
|
|
61
60
|
// Handle threading stuff
|
62
61
|
extension Runner {
|
63
|
-
func startSocketThread() {
|
62
|
+
func startSocketThread(port: UInt32) {
|
64
63
|
let secondsToWait = DispatchTimeInterval.seconds(SocketClient.connectTimeoutSeconds)
|
65
64
|
|
66
65
|
self.dispatchGroup.enter()
|
67
66
|
|
68
|
-
self.socketClient = SocketClient(commandTimeoutSeconds:timeout, socketDelegate: self)
|
67
|
+
self.socketClient = SocketClient(port: port, commandTimeoutSeconds:timeout, socketDelegate: self)
|
69
68
|
self.thread = Thread(target: self, selector: #selector(startSocketComs), object: nil)
|
70
69
|
self.thread!.name = "socket thread"
|
71
70
|
self.thread!.start()
|
@@ -94,7 +93,7 @@ extension Runner {
|
|
94
93
|
guard let socketClient = self.socketClient else {
|
95
94
|
return
|
96
95
|
}
|
97
|
-
|
96
|
+
|
98
97
|
socketClient.connectAndOpenStreams()
|
99
98
|
self.dispatchGroup.leave()
|
100
99
|
}
|
@@ -125,11 +124,11 @@ extension Runner : SocketClientDelegateProtocol {
|
|
125
124
|
case .clientInitiatedCancelAcknowledged:
|
126
125
|
verbose(message: "server acknowledged a cancel request")
|
127
126
|
self.dispatchGroup.leave()
|
128
|
-
|
127
|
+
|
129
128
|
case .alreadyClosedSockets, .connectionFailure, .malformedRequest, .malformedResponse, .serverError:
|
130
129
|
log(message: "error encountered while executing command:\n\(serverResponse)")
|
131
130
|
self.dispatchGroup.leave()
|
132
|
-
|
131
|
+
|
133
132
|
case .commandTimeout(let timeout):
|
134
133
|
log(message: "Runner timed out after \(timeout) second(s)")
|
135
134
|
}
|
@@ -198,3 +197,4 @@ func verbose(message: String) {
|
|
198
197
|
// Please don't remove the lines below
|
199
198
|
// They are used to detect outdated files
|
200
199
|
// FastlaneRunnerAPIVersion [0.9.2]
|
200
|
+
|
data/fastlane/swift/main.swift
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
// FastlaneSwiftRunner
|
4
4
|
//
|
5
5
|
// Created by Joshua Liebowitz on 8/26/17.
|
6
|
-
// Copyright © 2017 Joshua Liebowitz. All rights reserved.
|
7
6
|
//
|
8
7
|
|
9
8
|
//
|
@@ -23,7 +22,7 @@ class MainProcess {
|
|
23
22
|
var thread: Thread!
|
24
23
|
|
25
24
|
@objc func connectToFastlaneAndRunLane() {
|
26
|
-
runner.startSocketThread()
|
25
|
+
runner.startSocketThread(port: argumentProcessor.port)
|
27
26
|
|
28
27
|
let completedRun = Fastfile.runLane(named: argumentProcessor.currentLane, parameters: argumentProcessor.laneParameters())
|
29
28
|
if completedRun {
|
@@ -50,3 +49,4 @@ while (!process.doneRunningLane && (RunLoop.current.run(mode: RunLoopMode.defaul
|
|
50
49
|
// Please don't remove the lines below
|
51
50
|
// They are used to detect outdated files
|
52
51
|
// FastlaneRunnerAPIVersion [0.9.2]
|
52
|
+
|