fastlane 2.226.0 → 2.227.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 +96 -96
- data/cert/lib/cert/options.rb +7 -2
- data/cert/lib/cert/runner.rb +23 -11
- data/deliver/lib/deliver/options.rb +1 -1
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +1 -1
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/notarize.rb +4 -0
- data/fastlane/lib/fastlane/actions/onesignal.rb +1 -1
- data/fastlane/lib/fastlane/actions/setup_ci.rb +14 -4
- data/fastlane/lib/fastlane/actions/testfairy.rb +5 -2
- data/fastlane/lib/fastlane/actions/unlock_keychain.rb +6 -1
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Actions.swift +1 -1
- data/fastlane/swift/Appfile.swift +1 -1
- data/fastlane/swift/ArgumentProcessor.swift +1 -1
- data/fastlane/swift/Atomic.swift +1 -1
- data/fastlane/swift/ControlCommand.swift +1 -1
- data/fastlane/swift/Deliverfile.swift +2 -2
- data/fastlane/swift/DeliverfileProtocol.swift +2 -2
- data/fastlane/swift/Fastlane.swift +20 -10
- data/fastlane/swift/Gymfile.swift +2 -2
- data/fastlane/swift/GymfileProtocol.swift +2 -2
- data/fastlane/swift/LaneFileProtocol.swift +1 -1
- data/fastlane/swift/MainProcess.swift +1 -1
- data/fastlane/swift/Matchfile.swift +2 -2
- data/fastlane/swift/MatchfileProtocol.swift +2 -2
- data/fastlane/swift/OptionalConfigValue.swift +1 -1
- data/fastlane/swift/Plugins.swift +1 -1
- data/fastlane/swift/Precheckfile.swift +2 -2
- data/fastlane/swift/PrecheckfileProtocol.swift +2 -2
- data/fastlane/swift/RubyCommand.swift +1 -1
- data/fastlane/swift/RubyCommandable.swift +1 -1
- data/fastlane/swift/Runner.swift +1 -1
- data/fastlane/swift/RunnerArgument.swift +1 -1
- data/fastlane/swift/Scanfile.swift +2 -2
- data/fastlane/swift/ScanfileProtocol.swift +2 -2
- data/fastlane/swift/Screengrabfile.swift +2 -2
- data/fastlane/swift/ScreengrabfileProtocol.swift +2 -2
- data/fastlane/swift/Snapshotfile.swift +2 -2
- data/fastlane/swift/SnapshotfileProtocol.swift +2 -2
- data/fastlane/swift/SocketClient.swift +1 -1
- data/fastlane/swift/SocketClientDelegateProtocol.swift +1 -1
- data/fastlane/swift/SocketResponse.swift +1 -1
- data/fastlane/swift/main.swift +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +6 -1
- data/match/lib/assets/READMETemplate.md +2 -2
- data/match/lib/match/generator.rb +2 -2
- data/match/lib/match/runner.rb +1 -1
- data/precheck/lib/precheck/options.rb +1 -1
- data/produce/lib/produce/options.rb +1 -1
- data/spaceship/lib/spaceship/connect_api/models/certificate.rb +1 -0
- data/supply/lib/supply/uploader.rb +19 -12
- data/trainer/lib/trainer/legacy_xcresult.rb +586 -0
- data/trainer/lib/trainer/options.rb +5 -0
- data/trainer/lib/trainer/plist_test_summary_parser.rb +84 -0
- data/trainer/lib/trainer/test_parser.rb +12 -293
- data/trainer/lib/trainer/xcresult/helper.rb +53 -0
- data/trainer/lib/trainer/xcresult/repetition.rb +39 -0
- data/trainer/lib/trainer/xcresult/test_case.rb +221 -0
- data/trainer/lib/trainer/xcresult/test_case_attributes.rb +49 -0
- data/trainer/lib/trainer/xcresult/test_plan.rb +91 -0
- data/trainer/lib/trainer/xcresult/test_suite.rb +134 -0
- data/trainer/lib/trainer/xcresult.rb +31 -388
- data/trainer/lib/trainer.rb +3 -1
- metadata +29 -21
@@ -1,5 +1,5 @@
|
|
1
1
|
// Fastlane.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
import Foundation
|
5
5
|
|
@@ -2690,7 +2690,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
|
|
2690
2690
|
teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2691
2691
|
filename: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2692
2692
|
outputPath: String = ".",
|
2693
|
-
keychainPath: String,
|
2693
|
+
keychainPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2694
2694
|
keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
2695
2695
|
skipSetPartitionList: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
2696
2696
|
platform: String = "ios")
|
@@ -2706,7 +2706,7 @@ public func cert(development: OptionalConfigValue<Bool> = .fastlaneDefault(false
|
|
2706
2706
|
let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
|
2707
2707
|
let filenameArg = filename.asRubyArgument(name: "filename", type: nil)
|
2708
2708
|
let outputPathArg = RubyCommand.Argument(name: "output_path", value: outputPath, type: nil)
|
2709
|
-
let keychainPathArg =
|
2709
|
+
let keychainPathArg = keychainPath.asRubyArgument(name: "keychain_path", type: nil)
|
2710
2710
|
let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
|
2711
2711
|
let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil)
|
2712
2712
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
@@ -4842,7 +4842,7 @@ public func getCertificates(development: OptionalConfigValue<Bool> = .fastlaneDe
|
|
4842
4842
|
teamName: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4843
4843
|
filename: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4844
4844
|
outputPath: String = ".",
|
4845
|
-
keychainPath: String,
|
4845
|
+
keychainPath: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4846
4846
|
keychainPassword: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
4847
4847
|
skipSetPartitionList: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
4848
4848
|
platform: String = "ios")
|
@@ -4858,7 +4858,7 @@ public func getCertificates(development: OptionalConfigValue<Bool> = .fastlaneDe
|
|
4858
4858
|
let teamNameArg = teamName.asRubyArgument(name: "team_name", type: nil)
|
4859
4859
|
let filenameArg = filename.asRubyArgument(name: "filename", type: nil)
|
4860
4860
|
let outputPathArg = RubyCommand.Argument(name: "output_path", value: outputPath, type: nil)
|
4861
|
-
let keychainPathArg =
|
4861
|
+
let keychainPathArg = keychainPath.asRubyArgument(name: "keychain_path", type: nil)
|
4862
4862
|
let keychainPasswordArg = keychainPassword.asRubyArgument(name: "keychain_password", type: nil)
|
4863
4863
|
let skipSetPartitionListArg = skipSetPartitionList.asRubyArgument(name: "skip_set_partition_list", type: nil)
|
4864
4864
|
let platformArg = RubyCommand.Argument(name: "platform", value: platform, type: nil)
|
@@ -9931,6 +9931,7 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
|
|
9931
9931
|
- force: Force setup, even if not executed by CI
|
9932
9932
|
- provider: CI provider. If none is set, the provider is detected automatically
|
9933
9933
|
- timeout: Set a custom timeout in seconds for keychain. Set `0` if you want to specify 'no time-out'
|
9934
|
+
- keychainName: Set a custom keychain name
|
9934
9935
|
|
9935
9936
|
- Creates a new temporary keychain for use with match|
|
9936
9937
|
- Switches match to `readonly` mode to not create new profiles/cert on CI|
|
@@ -9940,14 +9941,17 @@ public func setPodKey(useBundleExec: OptionalConfigValue<Bool> = .fastlaneDefaul
|
|
9940
9941
|
*/
|
9941
9942
|
public func setupCi(force: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
9942
9943
|
provider: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
9943
|
-
timeout: Int = 3600
|
9944
|
+
timeout: Int = 3600,
|
9945
|
+
keychainName: String = "fastlane_tmp_keychain")
|
9944
9946
|
{
|
9945
9947
|
let forceArg = force.asRubyArgument(name: "force", type: nil)
|
9946
9948
|
let providerArg = provider.asRubyArgument(name: "provider", type: nil)
|
9947
9949
|
let timeoutArg = RubyCommand.Argument(name: "timeout", value: timeout, type: nil)
|
9950
|
+
let keychainNameArg = RubyCommand.Argument(name: "keychain_name", value: keychainName, type: nil)
|
9948
9951
|
let array: [RubyCommand.Argument?] = [forceArg,
|
9949
9952
|
providerArg,
|
9950
|
-
timeoutArg
|
9953
|
+
timeoutArg,
|
9954
|
+
keychainNameArg]
|
9951
9955
|
let args: [RubyCommand.Argument] = array
|
9952
9956
|
.filter { $0?.value != nil }
|
9953
9957
|
.compactMap { $0 }
|
@@ -11588,7 +11592,7 @@ public func teamName() {
|
|
11588
11592
|
}
|
11589
11593
|
|
11590
11594
|
/**
|
11591
|
-
Upload a new build to
|
11595
|
+
Upload a new build to SauceLabs' TestFairy
|
11592
11596
|
|
11593
11597
|
- parameters:
|
11594
11598
|
- apiKey: API Key for TestFairy
|
@@ -11610,7 +11614,9 @@ public func teamName() {
|
|
11610
11614
|
- uploadToSaucelabs: Upload file directly to Sauce Labs. It can be 'on' or 'off'
|
11611
11615
|
- platform: Use if upload build is not iOS or Android. Contact support for more information
|
11612
11616
|
|
11613
|
-
|
11617
|
+
Upload a new build to [TestFairy](https://saucelabs.com/products/mobile-testing/app-betas).
|
11618
|
+
You can retrieve your API key on [your settings page](https://app.testfairy.com/settings/access-key)
|
11619
|
+
|
11614
11620
|
*/
|
11615
11621
|
public func testfairy(apiKey: String,
|
11616
11622
|
ipa: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
@@ -11856,6 +11862,7 @@ public func testflight(apiKeyPath: OptionalConfigValue<String?> = .fastlaneDefau
|
|
11856
11862
|
- outputFilename: Filename the xml file should be written to. Defaults to name of input file. (Only works if one input file is used)
|
11857
11863
|
- failBuild: Should this step stop the build if the tests fail? Set this to false if you're handling this with a test reporter
|
11858
11864
|
- xcprettyNaming: Produces class name and test name identical to xcpretty naming in junit file
|
11865
|
+
- forceLegacyXcresulttool: Force the use of the '--legacy' flag for xcresulttool instead of using the new commands
|
11859
11866
|
- silent: Silences all output
|
11860
11867
|
- outputRemoveRetryAttempts: Doesn't include retry attempts in the output
|
11861
11868
|
|
@@ -11867,6 +11874,7 @@ public func trainer(path: String = ".",
|
|
11867
11874
|
outputFilename: OptionalConfigValue<String?> = .fastlaneDefault(nil),
|
11868
11875
|
failBuild: OptionalConfigValue<Bool> = .fastlaneDefault(true),
|
11869
11876
|
xcprettyNaming: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11877
|
+
forceLegacyXcresulttool: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11870
11878
|
silent: OptionalConfigValue<Bool> = .fastlaneDefault(false),
|
11871
11879
|
outputRemoveRetryAttempts: OptionalConfigValue<Bool> = .fastlaneDefault(false))
|
11872
11880
|
{
|
@@ -11876,6 +11884,7 @@ public func trainer(path: String = ".",
|
|
11876
11884
|
let outputFilenameArg = outputFilename.asRubyArgument(name: "output_filename", type: nil)
|
11877
11885
|
let failBuildArg = failBuild.asRubyArgument(name: "fail_build", type: nil)
|
11878
11886
|
let xcprettyNamingArg = xcprettyNaming.asRubyArgument(name: "xcpretty_naming", type: nil)
|
11887
|
+
let forceLegacyXcresulttoolArg = forceLegacyXcresulttool.asRubyArgument(name: "force_legacy_xcresulttool", type: nil)
|
11879
11888
|
let silentArg = silent.asRubyArgument(name: "silent", type: nil)
|
11880
11889
|
let outputRemoveRetryAttemptsArg = outputRemoveRetryAttempts.asRubyArgument(name: "output_remove_retry_attempts", type: nil)
|
11881
11890
|
let array: [RubyCommand.Argument?] = [pathArg,
|
@@ -11884,6 +11893,7 @@ public func trainer(path: String = ".",
|
|
11884
11893
|
outputFilenameArg,
|
11885
11894
|
failBuildArg,
|
11886
11895
|
xcprettyNamingArg,
|
11896
|
+
forceLegacyXcresulttoolArg,
|
11887
11897
|
silentArg,
|
11888
11898
|
outputRemoveRetryAttemptsArg]
|
11889
11899
|
let args: [RubyCommand.Argument] = array
|
@@ -13877,4 +13887,4 @@ public let snapshotfile: Snapshotfile = .init()
|
|
13877
13887
|
|
13878
13888
|
// Please don't remove the lines below
|
13879
13889
|
// They are used to detect outdated files
|
13880
|
-
// FastlaneRunnerAPIVersion [0.9.
|
13890
|
+
// FastlaneRunnerAPIVersion [0.9.186]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Gymfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Gymfile: GymfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// GymfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol GymfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
@@ -212,4 +212,4 @@ public extension GymfileProtocol {
|
|
212
212
|
|
213
213
|
// Please don't remove the lines below
|
214
214
|
// They are used to detect outdated files
|
215
|
-
// FastlaneRunnerAPIVersion [0.9.
|
215
|
+
// FastlaneRunnerAPIVersion [0.9.136]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Matchfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Matchfile: MatchfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// MatchfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol MatchfileProtocol: AnyObject {
|
5
5
|
/// Define the profile type, can be appstore, adhoc, development, enterprise, developer_id, mac_installer_distribution, developer_id_installer
|
@@ -232,4 +232,4 @@ public extension MatchfileProtocol {
|
|
232
232
|
|
233
233
|
// Please don't remove the lines below
|
234
234
|
// They are used to detect outdated files
|
235
|
-
// FastlaneRunnerAPIVersion [0.9.
|
235
|
+
// FastlaneRunnerAPIVersion [0.9.130]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Precheckfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Precheckfile: PrecheckfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// PrecheckfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol PrecheckfileProtocol: AnyObject {
|
5
5
|
/// Path to your App Store Connect API Key JSON file (https://docs.fastlane.tools/app-store-connect-api/#using-fastlane-api-key-json-file)
|
@@ -52,4 +52,4 @@ public extension PrecheckfileProtocol {
|
|
52
52
|
|
53
53
|
// Please don't remove the lines below
|
54
54
|
// They are used to detect outdated files
|
55
|
-
// FastlaneRunnerAPIVersion [0.9.
|
55
|
+
// FastlaneRunnerAPIVersion [0.9.129]
|
data/fastlane/swift/Runner.swift
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
// Scanfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Scanfile: ScanfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// ScanfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol ScanfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
@@ -324,4 +324,4 @@ public extension ScanfileProtocol {
|
|
324
324
|
|
325
325
|
// Please don't remove the lines below
|
326
326
|
// They are used to detect outdated files
|
327
|
-
// FastlaneRunnerAPIVersion [0.9.
|
327
|
+
// FastlaneRunnerAPIVersion [0.9.141]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Screengrabfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Screengrabfile: ScreengrabfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// ScreengrabfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol ScreengrabfileProtocol: AnyObject {
|
5
5
|
/// Path to the root of your Android SDK installation, e.g. ~/tools/android-sdk-macosx
|
@@ -96,4 +96,4 @@ public extension ScreengrabfileProtocol {
|
|
96
96
|
|
97
97
|
// Please don't remove the lines below
|
98
98
|
// They are used to detect outdated files
|
99
|
-
// FastlaneRunnerAPIVersion [0.9.
|
99
|
+
// FastlaneRunnerAPIVersion [0.9.131]
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// Snapshotfile.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
// This class is automatically included in FastlaneRunner during build
|
5
5
|
|
@@ -17,4 +17,4 @@ public class Snapshotfile: SnapshotfileProtocol {
|
|
17
17
|
// during the `init` process, and you won't see this message
|
18
18
|
}
|
19
19
|
|
20
|
-
// Generated with fastlane 2.
|
20
|
+
// Generated with fastlane 2.227.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
// SnapshotfileProtocol.swift
|
2
|
-
// Copyright (c)
|
2
|
+
// Copyright (c) 2025 FastlaneTools
|
3
3
|
|
4
4
|
public protocol SnapshotfileProtocol: AnyObject {
|
5
5
|
/// Path to the workspace file
|
@@ -208,4 +208,4 @@ public extension SnapshotfileProtocol {
|
|
208
208
|
|
209
209
|
// Please don't remove the lines below
|
210
210
|
// They are used to detect outdated files
|
211
|
-
// FastlaneRunnerAPIVersion [0.9.
|
211
|
+
// FastlaneRunnerAPIVersion [0.9.125]
|
data/fastlane/swift/main.swift
CHANGED
@@ -74,7 +74,7 @@ module FastlaneCore
|
|
74
74
|
return true if self.is_circle_ci?
|
75
75
|
|
76
76
|
# Check for Jenkins, Travis CI, ... environment variables
|
77
|
-
['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD', 'GITHUB_ACTION', 'GITHUB_ACTIONS', 'BITRISE_IO', 'BUDDY'].each do |current|
|
77
|
+
['JENKINS_HOME', 'JENKINS_URL', 'TRAVIS', 'CI', 'APPCENTER_BUILD_ID', 'TEAMCITY_VERSION', 'GO_PIPELINE_NAME', 'bamboo_buildKey', 'GITLAB_CI', 'XCS', 'TF_BUILD', 'GITHUB_ACTION', 'GITHUB_ACTIONS', 'BITRISE_IO', 'BUDDY', 'CODEBUILD_BUILD_ARN'].each do |current|
|
78
78
|
return true if FastlaneCore::Env.truthy?(current)
|
79
79
|
end
|
80
80
|
return false
|
@@ -84,6 +84,11 @@ module FastlaneCore
|
|
84
84
|
return ENV.key?('CIRCLECI')
|
85
85
|
end
|
86
86
|
|
87
|
+
# @return [boolean] true if environment variable CODEBUILD_BUILD_ARN is set
|
88
|
+
def self.is_codebuild?
|
89
|
+
return ENV.key?('CODEBUILD_BUILD_ARN')
|
90
|
+
end
|
91
|
+
|
87
92
|
def self.operating_system
|
88
93
|
return "macOS" if RUBY_PLATFORM.downcase.include?("darwin")
|
89
94
|
return "Windows" if RUBY_PLATFORM.downcase.include?("mswin")
|
@@ -1,11 +1,11 @@
|
|
1
1
|
## [fastlane match](https://docs.fastlane.tools/actions/match/)
|
2
2
|
|
3
|
+
> Do not modify this file, as it gets overwritten every time you run _match_.
|
4
|
+
|
3
5
|
This repository contains all your certificates and provisioning profiles needed to build and sign your applications. They are encrypted using OpenSSL via a passphrase.
|
4
6
|
|
5
7
|
**Important:** Make sure this repository is set to private and only your team members have access to this repo.
|
6
8
|
|
7
|
-
Do not modify this file, as it gets overwritten every time you run _match_.
|
8
|
-
|
9
9
|
### Installation
|
10
10
|
|
11
11
|
Make sure you have the latest version of the Xcode command line tools installed:
|
@@ -32,8 +32,8 @@ module Match
|
|
32
32
|
username: params[:username],
|
33
33
|
team_id: params[:team_id],
|
34
34
|
team_name: params[:team_name],
|
35
|
-
keychain_path: FastlaneCore::Helper.keychain_path(params[:keychain_name]),
|
36
|
-
keychain_password: params[:keychain_password],
|
35
|
+
keychain_path: Helper.mac? ? FastlaneCore::Helper.keychain_path(params[:keychain_name]) : nil,
|
36
|
+
keychain_password: Helper.mac? ? params[:keychain_password] : nil,
|
37
37
|
skip_set_partition_list: params[:skip_set_partition_list]
|
38
38
|
})
|
39
39
|
|
data/match/lib/match/runner.rb
CHANGED
@@ -56,7 +56,7 @@ module Match
|
|
56
56
|
|
57
57
|
unless params[:readonly]
|
58
58
|
self.spaceship = SpaceshipEnsure.new(params[:username], params[:team_id], params[:team_name], api_token(params))
|
59
|
-
if params[:type] == "enterprise" && !Spaceship.client.in_house?
|
59
|
+
if params[:type] == "enterprise" && !Spaceship::ConnectAPI.client.in_house?
|
60
60
|
UI.user_error!("You defined the profile type 'enterprise', but your Apple account doesn't support In-House profiles")
|
61
61
|
end
|
62
62
|
end
|
@@ -84,7 +84,7 @@ module Precheck
|
|
84
84
|
optional: true,
|
85
85
|
default_value: "ios",
|
86
86
|
verify_block: proc do |value|
|
87
|
-
UI.user_error!("The platform can only be ios, appletvos
|
87
|
+
UI.user_error!("The platform can only be ios, appletvos/tvos or osx") unless %w(ios appletvos tvos osx).include?(value)
|
88
88
|
end),
|
89
89
|
FastlaneCore::ConfigItem.new(key: :default_rule_level,
|
90
90
|
short_option: "-r",
|
@@ -54,7 +54,7 @@ module Produce
|
|
54
54
|
optional: true,
|
55
55
|
default_value: "ios",
|
56
56
|
verify_block: proc do |value|
|
57
|
-
UI.user_error!("The platform can only be ios or
|
57
|
+
UI.user_error!("The platform can only be ios, osx or tvos") unless %w(ios osx tvos).include?(value)
|
58
58
|
end),
|
59
59
|
FastlaneCore::ConfigItem.new(key: :platforms,
|
60
60
|
short_option: "-J",
|
@@ -133,16 +133,23 @@ module Supply
|
|
133
133
|
UI.message("Updating #{version_code}'s rollout to '#{Supply.config[:rollout]}' on track '#{Supply.config[:track]}'...")
|
134
134
|
|
135
135
|
if track && release
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
136
|
+
rollout = Supply.config[:rollout]
|
137
|
+
status = Supply.config[:release_status]
|
138
|
+
|
139
|
+
# If release_status not provided explicitly (and thus defaults to 'completed'), but rollout is provided with a value < 1.0, then set to 'inProgress' instead
|
140
|
+
status = Supply::ReleaseStatus::IN_PROGRESS if status == Supply::ReleaseStatus::COMPLETED && !rollout.nil? && rollout.to_f < 1
|
141
|
+
# If release_status is set to 'inProgress' but rollout is provided with a value = 1.0, then set to 'completed' instead
|
142
|
+
status = Supply::ReleaseStatus::COMPLETED if status == Supply::ReleaseStatus::IN_PROGRESS && rollout.to_f == 1
|
143
|
+
# If release_status is set to 'inProgress' but no rollout value is provided, error out
|
144
|
+
UI.user_error!("You need to provide a rollout value when release_status is set to 'inProgress'") if status == Supply::ReleaseStatus::IN_PROGRESS && rollout.nil?
|
145
|
+
release.status = status
|
146
|
+
# user_fraction is only valid for IN_PROGRESS or HALTED status
|
147
|
+
# https://googleapis.dev/ruby/google-api-client/latest/Google/Apis/AndroidpublisherV3/TrackRelease.html#user_fraction-instance_method
|
148
|
+
release.user_fraction = [Supply::ReleaseStatus::IN_PROGRESS, Supply::ReleaseStatus::HALTED].include?(release.status) ? rollout : nil
|
149
|
+
|
150
|
+
# It's okay to set releases to an array containing the newest release
|
151
|
+
# Google Play will keep previous releases there untouched
|
152
|
+
track.releases = [release]
|
146
153
|
else
|
147
154
|
UI.user_error!("Unable to find version to rollout in track '#{Supply.config[:track]}'")
|
148
155
|
end
|
@@ -213,7 +220,7 @@ module Supply
|
|
213
220
|
end
|
214
221
|
|
215
222
|
if track_to
|
216
|
-
#
|
223
|
+
# It's okay to set releases to an array containing the newest release
|
217
224
|
# Google Play will keep previous releases there this release is a partial rollout
|
218
225
|
track_to.releases = [release]
|
219
226
|
else
|
@@ -438,7 +445,7 @@ module Supply
|
|
438
445
|
tracks = client.tracks(Supply.config[:track])
|
439
446
|
track = tracks.first
|
440
447
|
if track
|
441
|
-
#
|
448
|
+
# It's okay to set releases to an array containing the newest release
|
442
449
|
# Google Play will keep previous releases there this release is a partial rollout
|
443
450
|
track.releases = [track_release]
|
444
451
|
else
|