fastlane 2.69.0.beta.20171212010004 → 2.69.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.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/deliver/lib/assets/DeliverfileDefault.swift +13 -0
  3. data/deliver/lib/deliver/commands_generator.rb +2 -1
  4. data/deliver/lib/deliver/options.rb +8 -3
  5. data/deliver/lib/deliver/setup.rb +19 -3
  6. data/fastlane/lib/assets/AppfileTemplate.swift +8 -0
  7. data/fastlane/lib/assets/DefaultFastfileTemplate.swift +72 -0
  8. data/fastlane/lib/fastlane.rb +6 -0
  9. data/fastlane/lib/fastlane/.DS_Store +0 -0
  10. data/fastlane/lib/fastlane/action.rb +13 -0
  11. data/fastlane/lib/fastlane/actions/adb.rb +4 -0
  12. data/fastlane/lib/fastlane/actions/appium.rb +2 -0
  13. data/fastlane/lib/fastlane/actions/bundle_install.rb +2 -0
  14. data/fastlane/lib/fastlane/actions/carthage.rb +12 -24
  15. data/fastlane/lib/fastlane/actions/changelog_from_git_commits.rb +5 -0
  16. data/fastlane/lib/fastlane/actions/cocoapods.rb +2 -1
  17. data/fastlane/lib/fastlane/actions/commit_github_file.rb +4 -0
  18. data/fastlane/lib/fastlane/actions/environment_variable.rb +73 -0
  19. data/fastlane/lib/fastlane/actions/get_version_number.rb +4 -4
  20. data/fastlane/lib/fastlane/actions/increment_build_number.rb +4 -0
  21. data/fastlane/lib/fastlane/actions/increment_version_number.rb +4 -0
  22. data/fastlane/lib/fastlane/actions/is_ci.rb +4 -0
  23. data/fastlane/lib/fastlane/actions/last_git_commit.rb +4 -0
  24. data/fastlane/lib/fastlane/actions/last_git_tag.rb +4 -0
  25. data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +4 -0
  26. data/fastlane/lib/fastlane/actions/modify_services.rb +1 -0
  27. data/fastlane/lib/fastlane/actions/number_of_commits.rb +4 -0
  28. data/fastlane/lib/fastlane/actions/podio_item.rb +1 -0
  29. data/fastlane/lib/fastlane/actions/prompt.rb +4 -0
  30. data/fastlane/lib/fastlane/actions/read_podspec.rb +4 -0
  31. data/fastlane/lib/fastlane/actions/register_device.rb +4 -0
  32. data/fastlane/lib/fastlane/actions/register_devices.rb +1 -0
  33. data/fastlane/lib/fastlane/actions/rocket.rb +4 -0
  34. data/fastlane/lib/fastlane/actions/set_github_release.rb +4 -0
  35. data/fastlane/lib/fastlane/actions/sh.rb +5 -0
  36. data/fastlane/lib/fastlane/actions/slather.rb +14 -0
  37. data/fastlane/lib/fastlane/actions/update_urban_airship_configuration.rb +1 -0
  38. data/fastlane/lib/fastlane/actions/xcode_install.rb +4 -0
  39. data/fastlane/lib/fastlane/actions/xcode_server_get_assets.rb +4 -0
  40. data/fastlane/lib/fastlane/actions/zip.rb +4 -0
  41. data/fastlane/lib/fastlane/boolean.rb +5 -0
  42. data/fastlane/lib/fastlane/command_line_handler.rb +6 -1
  43. data/fastlane/lib/fastlane/commands_generator.rb +40 -1
  44. data/fastlane/lib/fastlane/fast_file.rb +5 -1
  45. data/fastlane/lib/fastlane/lane_list.rb +67 -4
  46. data/fastlane/lib/fastlane/lane_manager.rb +3 -69
  47. data/fastlane/lib/fastlane/lane_manager_base.rb +124 -0
  48. data/fastlane/lib/fastlane/runner.rb +2 -2
  49. data/fastlane/lib/fastlane/server/command.rb +70 -0
  50. data/fastlane/lib/fastlane/server/command_executor.rb +9 -0
  51. data/fastlane/lib/fastlane/server/socket_server.rb +212 -0
  52. data/fastlane/lib/fastlane/server/socket_server_action_command_executor.rb +100 -0
  53. data/fastlane/lib/fastlane/setup/setup.rb +7 -2
  54. data/fastlane/lib/fastlane/setup/setup_ios.rb +72 -15
  55. data/fastlane/lib/fastlane/swift_fastlane_api_generator.rb +265 -0
  56. data/fastlane/lib/fastlane/swift_fastlane_function.rb +342 -0
  57. data/fastlane/lib/fastlane/swift_lane_manager.rb +246 -0
  58. data/fastlane/lib/fastlane/tools.rb +13 -0
  59. data/fastlane/lib/fastlane/version.rb +1 -1
  60. data/fastlane_core/lib/fastlane_core.rb +3 -0
  61. data/fastlane_core/lib/fastlane_core/analytics/action_launch_context.rb +6 -3
  62. data/fastlane_core/lib/fastlane_core/analytics/analytics_session.rb +7 -0
  63. data/fastlane_core/lib/fastlane_core/configuration/commander_generator.rb +13 -0
  64. data/fastlane_core/lib/fastlane_core/configuration/config_item.rb +33 -2
  65. data/fastlane_core/lib/fastlane_core/fastlane_folder.rb +32 -0
  66. data/gym/lib/assets/GymfileTemplate.swift +13 -0
  67. data/gym/lib/gym/commands_generator.rb +14 -2
  68. data/gym/lib/gym/generators/build_command_generator.rb +2 -2
  69. data/gym/lib/gym/options.rb +11 -0
  70. data/match/lib/assets/MatchfileTemplate.swift +9 -0
  71. data/match/lib/match/commands_generator.rb +9 -3
  72. data/match/lib/match/options.rb +1 -0
  73. data/match/lib/match/setup.rb +6 -2
  74. data/precheck/lib/.DS_Store +0 -0
  75. data/precheck/lib/assets/PrecheckfileTemplate +1 -1
  76. data/precheck/lib/assets/PrecheckfileTemplate.swift +19 -0
  77. data/precheck/lib/precheck/commands_generator.rb +13 -2
  78. data/scan/lib/assets/ScanfileTemplate.swift +13 -0
  79. data/scan/lib/scan/commands_generator.rb +14 -2
  80. data/scan/lib/scan/options.rb +6 -0
  81. data/screengrab/lib/assets/ScreengrabfileTemplate.swift +15 -0
  82. data/screengrab/lib/screengrab/commands_generator.rb +2 -1
  83. data/screengrab/lib/screengrab/setup.rb +9 -3
  84. data/snapshot/lib/assets/SnapfileTemplate.swift +41 -0
  85. data/snapshot/lib/snapshot/commands_generator.rb +2 -1
  86. data/snapshot/lib/snapshot/setup.rb +9 -3
  87. data/spaceship/lib/spaceship/client.rb +4 -1
  88. metadata +38 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 670eaaf7501902c99c3ef87899e4f1318fc0f47f
4
- data.tar.gz: ad212a4cbdece8817f78788beb93dcfd15fa2c68
3
+ metadata.gz: c84dc9589f4d0140988040aa2d7cc6eae54d513d
4
+ data.tar.gz: cfaa220b540897f4162dc3efdd323cbb59128156
5
5
  SHA512:
6
- metadata.gz: fe1b475b9c557933f5676d4c8252abfeff77ed06ae092eabc92dce2044f2147b660d02196b03fadb53c2bf259308ee9bbdb74d274ad8e7069d41c9985565a602
7
- data.tar.gz: 2976533d79f0bdbf1ad3e20f70c39994a3ebde2662977b8a21e807a92248a2c76de1279638ce51634c1eaabd7991f1f9e55e22cd7af4c29f6f12390ec2a95e26
6
+ metadata.gz: 760bf04a97de90d938554bcfa77249e2a91b232aabab01387b44d391ae96f64d9cf9a4a669dafe18aa960af77c6cf9d9e796e481882ca2b114a03d7dbf368bc8
7
+ data.tar.gz: bd7e6d82a6d898db2bbeb67da7be6ce4db4b6d2dcfde8ab0d7e733cf0e916fa9ef18937565a43a55e74ae44b1487f98df94a76170c86255a1ee4aeed6c937cf0
@@ -0,0 +1,13 @@
1
+ /************************ More Options ************************/
2
+ // If you want to have even more control, check out the documentation
3
+ // https://docs.fastlane.tools/actions/deliver
4
+
5
+
6
+ /************************ Automatically generated ************************/
7
+
8
+ class Deliverfile: DeliverfileProtocol {
9
+ // Feel free to remove the following lines
10
+ // These values can go in Appfile.swift
11
+ var appIdentifier: String { return "[[APP_IDENTIFIER]]" } // The bundle identifier of your app
12
+ var username: String { return "[[USERNAME]]" } // your Apple ID user
13
+ }
@@ -63,9 +63,10 @@ module Deliver
63
63
  loaded = true if File.exist?(File.join(FastlaneCore::FastlaneFolder.path || ".", "metadata"))
64
64
  unless loaded
65
65
  if UI.confirm("No deliver configuration found in the current directory. Do you want to setup deliver?")
66
+ is_swift = UI.confirm("Would you like to use Swift instead of Ruby?")
66
67
  require 'deliver/setup'
67
68
  Deliver::Runner.new(options) # to login...
68
- Deliver::Setup.new.run(options)
69
+ Deliver::Setup.new.run(options, is_swift: is_swift)
69
70
  return 0
70
71
  end
71
72
  end
@@ -125,7 +125,7 @@ module Deliver
125
125
  description: "Enable the phased release feature of iTC",
126
126
  optional: true,
127
127
  is_string: false,
128
- default_value: nil),
128
+ default_value: false),
129
129
  FastlaneCore::ConfigItem.new(key: :price_tier,
130
130
  short_option: "-r",
131
131
  description: "The price tier of this application",
@@ -264,11 +264,13 @@ module Deliver
264
264
  FastlaneCore::ConfigItem.new(key: :trade_representative_contact_information,
265
265
  description: "Metadata: A hash containing the trade representative contact information",
266
266
  optional: true,
267
- is_string: false),
267
+ is_string: false,
268
+ type: Hash),
268
269
  FastlaneCore::ConfigItem.new(key: :app_review_information,
269
270
  description: "Metadata: A hash containing the review information",
270
271
  optional: true,
271
- is_string: false),
272
+ is_string: false,
273
+ type: Hash),
272
274
  # Localised
273
275
  FastlaneCore::ConfigItem.new(key: :description,
274
276
  description: "Metadata: The localised app description",
@@ -282,6 +284,7 @@ module Deliver
282
284
  description: "Metadata: The localised app subtitle",
283
285
  optional: true,
284
286
  is_string: false,
287
+ type: Hash,
285
288
  verify_block: proc do |value|
286
289
  UI.user_error!(":subtitle must be a hash, with the language being the key") unless value.kind_of?(Hash)
287
290
  end),
@@ -289,6 +292,7 @@ module Deliver
289
292
  description: "Metadata: An array of localised keywords",
290
293
  optional: true,
291
294
  is_string: false,
295
+ type: Hash,
292
296
  verify_block: proc do |value|
293
297
  UI.user_error!(":keywords must be a hash, with the language being the key") unless value.kind_of?(Hash)
294
298
  value.each do |language, keywords|
@@ -303,6 +307,7 @@ module Deliver
303
307
  description: "Metadata: An array of localised promotional texts",
304
308
  optional: true,
305
309
  is_string: false,
310
+ type: Hash,
306
311
  verify_block: proc do |value|
307
312
  UI.user_error!(":keywords must be a hash, with the language being the key") unless value.kind_of?(Hash)
308
313
  end),
@@ -2,9 +2,17 @@ require 'fastlane_core'
2
2
 
3
3
  module Deliver
4
4
  class Setup
5
- def run(options)
5
+ attr_accessor :is_swift
6
+
7
+ def run(options, is_swift: false)
6
8
  containing = FastlaneCore::Helper.fastlane_enabled_folder_path
7
- file_path = File.join(containing, 'Deliverfile')
9
+ self.is_swift = is_swift
10
+
11
+ if is_swift
12
+ file_path = File.join(containing, 'Deliverfile.swift')
13
+ else
14
+ file_path = File.join(containing, 'Deliverfile')
15
+ end
8
16
  data = generate_deliver_file(containing, options)
9
17
  setup_deliver(file_path, data, containing, options)
10
18
  end
@@ -30,12 +38,20 @@ module Deliver
30
38
  generate_metadata_files(v, File.join(deliver_path, 'metadata'))
31
39
 
32
40
  # Generate the final Deliverfile here
33
- deliver = File.read("#{Deliver::ROOT}/lib/assets/DeliverfileDefault")
41
+ deliver = File.read(deliverfile_path)
34
42
  deliver.gsub!("[[APP_IDENTIFIER]]", options[:app].bundle_id)
35
43
  deliver.gsub!("[[USERNAME]]", Spaceship::Tunes.client.user)
36
44
  return deliver
37
45
  end
38
46
 
47
+ def deliverfile_path
48
+ if self.is_swift
49
+ return "#{Deliver::ROOT}/lib/assets/DeliverfileDefault.swift"
50
+ else
51
+ return "#{Deliver::ROOT}/lib/assets/DeliverfileDefault"
52
+ end
53
+ end
54
+
39
55
  def generate_metadata_files(v, path)
40
56
  app_details = v.application.details
41
57
 
@@ -0,0 +1,8 @@
1
+ var appIdentifier: String { return "[[APP_IDENTIFIER]]" } // The bundle identifier of your app
2
+ var appleID: String { return "[[APPLE_ID]]" } // Your Apple email address
3
+
4
+ var teamID: String { return "[[DEV_PORTAL_TEAM_ID]]" } // Developer Portal Team ID
5
+ var itcTeam: String? { return [[ITC_TEAM]] } // iTunes Connect Team ID (may be nil if no team)
6
+
7
+ // you can even provide different app identifiers, Apple IDs and team names per lane:
8
+ // More information: https://docs.fastlane.tools/advanced/#appfile
@@ -0,0 +1,72 @@
1
+ // Customize this file, documentation can be found here:
2
+ // https://docs.fastlane.tools/
3
+ // All available actions: https://docs.fastlane.tools/actions
4
+ // can also be listed using the `fastlane actions` command
5
+
6
+ // Change the syntax highlighting to Swift
7
+ // All lines starting with // are ignored when running `fastlane`
8
+
9
+ // If you want to automatically update fastlane if a new version is available:
10
+ // updateFastlane()
11
+
12
+ import Foundation
13
+
14
+ class Fastfile: LaneFile {
15
+ // This is the minimum version number required.
16
+ // Update this, if you use features of a newer version
17
+ var fastlaneVersion: String { return "[[FASTLANE_VERSION]]" }
18
+
19
+ func beforeAll() {
20
+ // environmentVariables["SLACK_URL"] = "https://hooks.slack.com/services/..."
21
+ cocoapods()
22
+ carthage()
23
+ }
24
+
25
+ func testLane() {
26
+ desc("Runs all the tests")
27
+ scan()
28
+ }
29
+
30
+ func betaLane() {
31
+ desc("Submit a new Beta Build to Apple TestFlight. This will also make sure the profile is up to date")
32
+
33
+ match(gitUrl: "gitUrl", appIdentifier: [appIdentifier], username: appleID)
34
+ // Build your app - more options available
35
+ gym([[SCHEME]])
36
+ pilot(username: appleID)
37
+ // You can also use other beta testing services here (run `fastlane actions`)
38
+ }
39
+
40
+ func releaseLane() {
41
+ desc("Deploy a new version to the App Store")
42
+
43
+ match(gitUrl: "gitUrl", type: "appstore", appIdentifier: [appIdentifier], username: appleID)
44
+ snapshot()
45
+ gym([[SCHEME]]) // Build your app - more options available
46
+ deliver(username: appleID, app: appIdentifier, force: true)
47
+ // frameit()
48
+ }
49
+
50
+ // You can define as many lanes as you want
51
+
52
+ func afterAll(currentLane: String) {
53
+ // This block is called, only if the executed lane was successful
54
+ // slack(
55
+ // message: "Successfully deployed new App Update.",
56
+ // slackUrl: "slackURL"
57
+ // )
58
+ }
59
+
60
+ func onError(currentLane: String, errorInfo: String) {
61
+ // slack(
62
+ // message: errorInfo,
63
+ // slackUrl: "slackUrl",
64
+ // success: false
65
+ // )
66
+ }
67
+
68
+ // All available actions: https://docs.fastlane.tools/actions
69
+
70
+ // fastlane reports which actions are used. No personal data is recorded.
71
+ // Learn more at https://github.com/fastlane/fastlane/#metrics
72
+ }
@@ -12,11 +12,17 @@ require 'fastlane/setup/setup'
12
12
  require 'fastlane/lane'
13
13
  require 'fastlane/junit_generator'
14
14
  require 'fastlane/lane_manager'
15
+ require 'fastlane/lane_manager_base'
16
+ require 'fastlane/swift_lane_manager'
15
17
  require 'fastlane/action'
16
18
  require 'fastlane/action_collector'
17
19
  require 'fastlane/supported_platforms'
18
20
  require 'fastlane/configuration_helper'
19
21
  require 'fastlane/one_off'
22
+ require 'fastlane/server/socket_server_action_command_executor'
23
+ require 'fastlane/server/command_executor'
24
+ require 'fastlane/server/command'
25
+ require 'fastlane/server/socket_server'
20
26
  require 'fastlane/command_line_handler'
21
27
  require 'fastlane/documentation/docs_generator'
22
28
  require 'fastlane/other_action'
Binary file
@@ -19,6 +19,14 @@ module Fastlane
19
19
  :deprecated # This should be the last item
20
20
  ]
21
21
 
22
+ RETURN_TYPES = [
23
+ :string,
24
+ :array_of_strings,
25
+ :hash_of_strings,
26
+ :bool,
27
+ :int
28
+ ]
29
+
22
30
  class << self
23
31
  attr_accessor :runner
24
32
 
@@ -57,6 +65,11 @@ module Fastlane
57
65
  nil
58
66
  end
59
67
 
68
+ def self.return_type
69
+ # Describes what type of data is expected to be returned, see RETURN_TYPES
70
+ nil
71
+ end
72
+
60
73
  def self.return_value
61
74
  # Describes what this method returns
62
75
  nil
@@ -64,6 +64,10 @@ module Fastlane
64
64
  "The output of the adb command"
65
65
  end
66
66
 
67
+ def self.return_type
68
+ :string
69
+ end
70
+
67
71
  def self.authors
68
72
  ["hjanuschka"]
69
73
  end
@@ -161,6 +161,7 @@ module Fastlane
161
161
  env_name: 'FL_APPIUM_CAPS',
162
162
  description: 'Hash of caps for Appium::Driver',
163
163
  is_string: false,
164
+ type: Hash,
164
165
  optional: true
165
166
  ),
166
167
  FastlaneCore::ConfigItem.new(
@@ -168,6 +169,7 @@ module Fastlane
168
169
  env_name: 'FL_APPIUM_LIB',
169
170
  description: 'Hash of appium_lib for Appium::Driver',
170
171
  is_string: false,
172
+ type: Hash,
171
173
  optional: true
172
174
  )
173
175
  ]
@@ -88,6 +88,7 @@ module Fastlane
88
88
  env_name: "FL_BUNDLE_INSTALL_JOBS",
89
89
  description: "Install gems using parallel workers",
90
90
  is_string: false,
91
+ type: Boolean,
91
92
  optional: true),
92
93
  FastlaneCore::ConfigItem.new(key: :local,
93
94
  env_name: "FL_BUNDLE_INSTALL_LOCAL",
@@ -127,6 +128,7 @@ module Fastlane
127
128
  env_name: "FL_BUNDLE_INSTALL_RETRY",
128
129
  description: "Retry network and git requests that have failed",
129
130
  is_string: false,
131
+ type: Boolean,
130
132
  optional: true),
131
133
  FastlaneCore::ConfigItem.new(key: :shebang,
132
134
  env_name: "FL_BUNDLE_INSTALL_SHEBANG",
@@ -73,42 +73,32 @@ module Fastlane
73
73
  env_name: "FL_CARTHAGE_USE_SSH",
74
74
  description: "Use SSH for downloading GitHub repositories",
75
75
  is_string: false,
76
- optional: true,
77
- verify_block: proc do |value|
78
- UI.user_error!("Please pass a valid value for use_ssh. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
79
- end),
76
+ type: Boolean,
77
+ optional: true),
80
78
  FastlaneCore::ConfigItem.new(key: :use_submodules,
81
79
  env_name: "FL_CARTHAGE_USE_SUBMODULES",
82
80
  description: "Add dependencies as Git submodules",
83
81
  is_string: false,
84
- optional: true,
85
- verify_block: proc do |value|
86
- UI.user_error!("Please pass a valid value for use_submodules. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
87
- end),
82
+ type: Boolean,
83
+ optional: true),
88
84
  FastlaneCore::ConfigItem.new(key: :use_binaries,
89
85
  env_name: "FL_CARTHAGE_USE_BINARIES",
90
86
  description: "Check out dependency repositories even when prebuilt frameworks exist",
91
87
  is_string: false,
92
- optional: true,
93
- verify_block: proc do |value|
94
- UI.user_error!("Please pass a valid value for use_binaries. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
95
- end),
88
+ type: Boolean,
89
+ optional: true),
96
90
  FastlaneCore::ConfigItem.new(key: :no_build,
97
91
  env_name: "FL_CARTHAGE_NO_BUILD",
98
92
  description: "When bootstrapping Carthage do not build",
99
93
  is_string: false,
100
- optional: true,
101
- verify_block: proc do |value|
102
- UI.user_error!("Please pass a valid value for no_build. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
103
- end),
94
+ type: Boolean,
95
+ optional: true),
104
96
  FastlaneCore::ConfigItem.new(key: :no_skip_current,
105
97
  env_name: "FL_CARTHAGE_NO_SKIP_CURRENT",
106
98
  description: "Don't skip building the Carthage project (in addition to its dependencies)",
107
99
  is_string: false,
108
- optional: true,
109
- verify_block: proc do |value|
110
- UI.user_error!("Please pass a valid value for no_skip_current. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
111
- end),
100
+ type: Boolean,
101
+ optional: true),
112
102
  FastlaneCore::ConfigItem.new(key: :derived_data,
113
103
  env_name: "FL_CARTHAGE_DERIVED_DATA",
114
104
  description: "Use derived data folder at path",
@@ -117,10 +107,8 @@ module Fastlane
117
107
  env_name: "FL_CARTHAGE_VERBOSE",
118
108
  description: "Print xcodebuild output inline",
119
109
  is_string: false,
120
- optional: true,
121
- verify_block: proc do |value|
122
- UI.user_error!("Please pass a valid value for verbose. Use one of the following: true, false") unless value.kind_of?(TrueClass) || value.kind_of?(FalseClass)
123
- end),
110
+ type: Boolean,
111
+ optional: true),
124
112
  FastlaneCore::ConfigItem.new(key: :platform,
125
113
  env_name: "FL_CARTHAGE_PLATFORM",
126
114
  description: "Define which platform to build for",
@@ -115,6 +115,7 @@ module Fastlane
115
115
  description: "Whether or not to include any commits that are merges\n" + '(DEPRECATED - use :merge_commit_filtering)'.red,
116
116
  optional: true,
117
117
  is_string: false,
118
+ type: Boolean,
118
119
  verify_block: proc do |value|
119
120
  UI.important "The :include_merges option is deprecated. Please use :merge_commit_filtering instead" unless value.nil?
120
121
  end),
@@ -134,6 +135,10 @@ module Fastlane
134
135
  "Returns a String containing your formatted git commits"
135
136
  end
136
137
 
138
+ def self.return_type
139
+ :string
140
+ end
141
+
137
142
  def self.author
138
143
  ['mfurtak', 'asfalcone', 'SiarheiFedartsou', 'allewun']
139
144
  end
@@ -100,13 +100,14 @@ module Fastlane
100
100
  description: 'A callback invoked with the command output if there is a non-zero exit status',
101
101
  optional: true,
102
102
  is_string: false,
103
+ type: :string_callback,
103
104
  default_value: nil),
104
105
  FastlaneCore::ConfigItem.new(key: :try_repo_update_on_error,
105
106
  env_name: "FL_COCOAPODS_TRY_REPO_UPDATE_ON_ERROR",
106
107
  description: 'Retry with --repo-update if action was finished with error',
107
108
  optional: true,
108
109
  is_string: false,
109
- default_value: true,
110
+ type: Boolean,
110
111
  conflicting_options: [:repo_update])
111
112
  ]
112
113
  # Please don't add a version parameter to the `cocoapods` action. If you need to specify a version when running
@@ -142,6 +142,10 @@ module Fastlane
142
142
  ]
143
143
  end
144
144
 
145
+ def self.return_type
146
+ :hash_of_strings
147
+ end
148
+
145
149
  def self.return_value
146
150
  [
147
151
  "A hash containing all relevant information for this commit",
@@ -0,0 +1,73 @@
1
+ module Fastlane
2
+ module Actions
3
+ class EnvironmentVariableAction < Action
4
+ def self.run(params)
5
+ values_to_set = params[:set]
6
+ value_to_get = params[:get]
7
+ value_to_remove = params[:remove]
8
+
9
+ # clear out variables that were removed
10
+ ENV[value_to_remove] = nil unless value_to_remove.nil?
11
+
12
+ # if we have to set variables, do that now
13
+ unless values_to_set.nil?
14
+ values_to_set.each do |key, value|
15
+ ENV[key] = value
16
+ end
17
+ end
18
+
19
+ # finally, get the variable we requested
20
+ return ENV[value_to_get] unless value_to_get.nil?
21
+
22
+ # if no variable is requested, just return empty string
23
+ return ""
24
+ end
25
+
26
+ def self.author
27
+ "taquitos"
28
+ end
29
+
30
+ def self.available_options
31
+ [
32
+ FastlaneCore::ConfigItem.new(
33
+ key: :set,
34
+ env_name: 'FL_ENVIRONMENT_VARIABLE_SET',
35
+ description: 'Set the environment variables named',
36
+ optional: true,
37
+ type: Hash
38
+ ),
39
+ FastlaneCore::ConfigItem.new(
40
+ key: :get,
41
+ env_name: 'FL_ENVIRONMENT_VARIABLE_GET',
42
+ description: 'Get the environment variable named',
43
+ optional: true,
44
+ is_string: true
45
+ ),
46
+ FastlaneCore::ConfigItem.new(
47
+ key: :remove,
48
+ env_name: 'FL_ENVIRONMENT_VARIABLE_REMOVE',
49
+ description: 'Remove the environment variable named',
50
+ optional: true,
51
+ is_string: true
52
+ )
53
+ ]
54
+ end
55
+
56
+ def self.description
57
+ "Sets/gets env vars for Fastlane.swift. Don't use in ruby, use `ENV[key] = val`"
58
+ end
59
+
60
+ def self.category
61
+ :misc
62
+ end
63
+
64
+ def self.return_type
65
+ :string
66
+ end
67
+
68
+ def self.is_supported?(platform)
69
+ true
70
+ end
71
+ end
72
+ end
73
+ end