fastlane 2.68.0.beta.20171129010003 → 2.68.0.beta.20171130010004

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/fastlane/lib/assets/ActionDetails.md.erb +2 -2
  3. data/fastlane/lib/fastlane/actions/appstore.rb +3 -32
  4. data/fastlane/lib/fastlane/actions/build_android_app.rb +14 -0
  5. data/fastlane/lib/fastlane/actions/build_app.rb +14 -0
  6. data/fastlane/lib/fastlane/actions/build_ios_app.rb +143 -0
  7. data/fastlane/lib/fastlane/actions/capture_android_screenshots.rb +57 -0
  8. data/fastlane/lib/fastlane/actions/capture_ios_screenshots.rb +55 -0
  9. data/fastlane/lib/fastlane/actions/capture_screenshots.rb +14 -0
  10. data/fastlane/lib/fastlane/actions/cert.rb +6 -60
  11. data/fastlane/lib/fastlane/actions/check_app_store_metadata.rb +53 -0
  12. data/fastlane/lib/fastlane/actions/create_app_online.rb +76 -0
  13. data/fastlane/lib/fastlane/actions/deliver.rb +6 -56
  14. data/fastlane/lib/fastlane/actions/docs/frameit.md +2 -1
  15. data/fastlane/lib/fastlane/actions/frame_screenshots.rb +62 -0
  16. data/fastlane/lib/fastlane/actions/frameit.rb +6 -53
  17. data/fastlane/lib/fastlane/actions/get_certificates.rb +69 -0
  18. data/fastlane/lib/fastlane/actions/get_provisioning_profile.rb +88 -0
  19. data/fastlane/lib/fastlane/actions/get_push_certificate.rb +82 -0
  20. data/fastlane/lib/fastlane/actions/gym.rb +6 -133
  21. data/fastlane/lib/fastlane/actions/match.rb +3 -87
  22. data/fastlane/lib/fastlane/actions/pem.rb +6 -73
  23. data/fastlane/lib/fastlane/actions/pilot.rb +3 -55
  24. data/fastlane/lib/fastlane/actions/precheck.rb +6 -44
  25. data/fastlane/lib/fastlane/actions/produce.rb +6 -66
  26. data/fastlane/lib/fastlane/actions/run_tests.rb +105 -0
  27. data/fastlane/lib/fastlane/actions/scan.rb +6 -96
  28. data/fastlane/lib/fastlane/actions/screengrab.rb +6 -48
  29. data/fastlane/lib/fastlane/actions/sigh.rb +6 -79
  30. data/fastlane/lib/fastlane/actions/snapshot.rb +6 -46
  31. data/fastlane/lib/fastlane/actions/supply.rb +3 -56
  32. data/fastlane/lib/fastlane/actions/sync_code_signing.rb +99 -0
  33. data/fastlane/lib/fastlane/actions/testflight.rb +3 -32
  34. data/fastlane/lib/fastlane/actions/upload_to_app_store.rb +67 -0
  35. data/fastlane/lib/fastlane/actions/upload_to_play_store.rb +68 -0
  36. data/fastlane/lib/fastlane/actions/upload_to_testflight.rb +67 -0
  37. data/fastlane/lib/fastlane/version.rb +1 -1
  38. data/spaceship/lib/spaceship/client.rb +1 -1
  39. metadata +19 -2
@@ -1,53 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- SNAPSHOT_SCREENSHOTS_PATH = :SNAPSHOT_SCREENSHOTS_PATH
5
- end
6
-
7
- class SnapshotAction < Action
8
- def self.run(params)
9
- return nil unless Helper.mac?
10
- require 'snapshot'
11
-
12
- Snapshot.config = params
13
- Snapshot::DependencyChecker.check_simulators
14
- Snapshot::Runner.new.work
15
-
16
- Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] = File.expand_path(params[:output_directory]) # absolute URL
17
-
18
- true
19
- end
3
+ require 'fastlane/actions/capture_ios_screenshots'
4
+ class SnapshotAction < CaptureIosScreenshotsAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
20
8
 
21
9
  def self.description
22
- "Generate new localized screenshots on multiple devices"
23
- end
24
-
25
- def self.available_options
26
- return [] unless Helper.mac?
27
- require 'snapshot'
28
- Snapshot::Options.available_options
29
- end
30
-
31
- def self.author
32
- "KrauseFx"
33
- end
34
-
35
- def self.is_supported?(platform)
36
- [:ios, :mac].include? platform
37
- end
38
-
39
- def self.example_code
40
- [
41
- 'snapshot',
42
- 'snapshot(
43
- skip_open_summary: true,
44
- clean: true
45
- )'
46
- ]
47
- end
48
-
49
- def self.category
50
- :screenshots
10
+ "Alias for the `capture_ios_screenshots` action"
51
11
  end
52
12
  end
53
13
  end
@@ -1,66 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- class SupplyAction < Action
4
- def self.run(params)
5
- require 'supply'
6
- require 'supply/options'
7
-
8
- # If no APK params were provided, try to fill in the values from lane context, preferring
9
- # the multiple APKs over the single APK if set.
10
- if params[:apk_paths].nil? && params[:apk].nil?
11
- all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
12
- if all_apk_paths.size > 1
13
- params[:apk_paths] = all_apk_paths
14
- else
15
- params[:apk] = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
16
- end
17
- end
18
-
19
- Supply.config = params # we already have the finished config
20
-
21
- Supply::Uploader.new.perform_upload
22
- end
23
-
3
+ require 'fastlane/actions/upload_to_play_store'
4
+ class SupplyAction < UploadToPlayStoreAction
24
5
  #####################################################
25
6
  # @!group Documentation
26
7
  #####################################################
27
8
 
28
9
  def self.description
29
- "Upload metadata, screenshots and binaries to Google Play"
30
- end
31
-
32
- def self.details
33
- "More information: https://github.com/fastlane/fastlane/tree/master/supply"
34
- end
35
-
36
- def self.available_options
37
- require 'supply'
38
- require 'supply/options'
39
- Supply::Options.available_options
40
- end
41
-
42
- def self.output
43
- end
44
-
45
- def self.return_value
46
- end
47
-
48
- def self.authors
49
- ["KrauseFx"]
50
- end
51
-
52
- def self.is_supported?(platform)
53
- platform == :android
54
- end
55
-
56
- def self.example_code
57
- [
58
- 'supply'
59
- ]
60
- end
61
-
62
- def self.category
63
- :production
10
+ "Alias for the `upload_to_play_store` action"
64
11
  end
65
12
  end
66
13
  end
@@ -0,0 +1,99 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ MATCH_PROVISIONING_PROFILE_MAPPING = :MATCH_PROVISIONING_PROFILE_MAPPING
5
+ end
6
+
7
+ class SyncCodeSigningAction < Action
8
+ def self.run(params)
9
+ require 'match'
10
+
11
+ params.load_configuration_file("Matchfile")
12
+ Match::Runner.new.run(params)
13
+
14
+ define_profile_type(params)
15
+ define_provisioning_profile_mapping(params)
16
+ end
17
+
18
+ def self.define_profile_type(params)
19
+ profile_type = "app-store"
20
+ profile_type = "ad-hoc" if params[:type] == 'adhoc'
21
+ profile_type = "development" if params[:type] == 'development'
22
+ profile_type = "enterprise" if params[:type] == 'enterprise'
23
+
24
+ UI.message("Setting Provisioning Profile type to '#{profile_type}'")
25
+
26
+ Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
27
+ end
28
+
29
+ # Maps the bundle identifier to the appropriate provisioning profile
30
+ # This is used in the _gym_ action as part of the export options
31
+ # e.g.
32
+ #
33
+ # export_options: {
34
+ # provisioningProfiles: { "me.themoji.app.beta": "match AppStore me.themoji.app.beta" }
35
+ # }
36
+ #
37
+ def self.define_provisioning_profile_mapping(params)
38
+ mapping = Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] || {}
39
+
40
+ # Array (...) to make sure it's an Array, Ruby is magic, try this
41
+ # Array(1) # => [1]
42
+ # Array([1, 2]) # => [1, 2]
43
+ Array(params[:app_identifier]).each do |app_identifier|
44
+ env_variable_name = Match::Utils.environment_variable_name_profile_name(app_identifier: app_identifier,
45
+ type: Match.profile_type_sym(params[:type]),
46
+ platform: params[:platform])
47
+ mapping[app_identifier] = ENV[env_variable_name]
48
+ end
49
+
50
+ Actions.lane_context[SharedValues::MATCH_PROVISIONING_PROFILE_MAPPING] = mapping
51
+ end
52
+
53
+ #####################################################
54
+ # @!group Documentation
55
+ #####################################################
56
+
57
+ def self.description
58
+ "Easily sync your certificates and profiles across your team (via `match`)"
59
+ end
60
+
61
+ def self.details
62
+ "More details https://github.com/fastlane/fastlane/tree/master/match"
63
+ end
64
+
65
+ def self.available_options
66
+ require 'match'
67
+ Match::Options.available_options
68
+ end
69
+
70
+ def self.output
71
+ []
72
+ end
73
+
74
+ def self.return_value
75
+ end
76
+
77
+ def self.authors
78
+ ["KrauseFx"]
79
+ end
80
+
81
+ def self.is_supported?(platform)
82
+ platform == :ios
83
+ end
84
+
85
+ def self.example_code
86
+ [
87
+ 'sync_code_signing(type: "appstore", app_identifier: "tools.fastlane.app")',
88
+ 'sync_code_signing(type: "development", readonly: true)',
89
+ 'sync_code_signing(app_identifier: ["tools.fastlane.app", "tools.fastlane.sleepy"])',
90
+ 'match(...) # alias for "sync_code_signing"'
91
+ ]
92
+ end
93
+
94
+ def self.category
95
+ :code_signing
96
+ end
97
+ end
98
+ end
99
+ end
@@ -1,42 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- class TestflightAction < Action
4
- def self.run(params)
5
- Actions::PilotAction.run(params)
6
- end
7
-
3
+ require 'fastlane/actions/upload_to_testflight'
4
+ class TestflightAction < UploadToTestflightAction
8
5
  #####################################################
9
6
  # @!group Documentation
10
7
  #####################################################
11
8
 
12
9
  def self.description
13
- "Alias for the pilot action"
14
- end
15
-
16
- def self.available_options
17
- require "pilot"
18
- require "pilot/options"
19
- FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options)
20
- end
21
-
22
- def self.output
23
- []
24
- end
25
-
26
- def self.author
27
- 'KrauseFx'
28
- end
29
-
30
- def self.example_code
31
- Actions::PilotAction.example_code
32
- end
33
-
34
- def self.category
35
- Actions::PilotAction.category
36
- end
37
-
38
- def self.is_supported?(platform)
39
- Actions::PilotAction.is_supported?(platform)
10
+ "Alias for the `upload_to_testflight` action"
40
11
  end
41
12
  end
42
13
  end
@@ -0,0 +1,67 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ end
5
+
6
+ class UploadToAppStoreAction < Action
7
+ def self.run(config)
8
+ require 'deliver'
9
+
10
+ begin
11
+ config.load_configuration_file("Deliverfile")
12
+ config[:screenshots_path] = Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH] if Actions.lane_context[SharedValues::SNAPSHOT_SCREENSHOTS_PATH]
13
+ config[:ipa] = Actions.lane_context[SharedValues::IPA_OUTPUT_PATH] if Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
14
+
15
+ return config if Helper.test?
16
+ Deliver::Runner.new(config).run
17
+ end
18
+ end
19
+
20
+ def self.description
21
+ "Upload metadata and binary to iTunes Connect (via `deliver`)"
22
+ end
23
+
24
+ def self.details
25
+ [
26
+ "Using _upload_to_app_store_ after _build_app_ and _capture_screenshots_ will automatically upload the",
27
+ "latest ipa and screenshots with no other configuration",
28
+ "",
29
+ "If you don't want a PDF report for App Store builds, use the `:force` option.",
30
+ "This is useful when running _fastlane_ on your Continuous Integration server:",
31
+ "`_upload_to_app_store_(force: true)`",
32
+ "If your account is on multiple teams and you need to tell the `iTMSTransporter`",
33
+ "which 'provider' to use, you can set the `itc_provider` option to pass this info."
34
+ ].join("\n")
35
+ end
36
+
37
+ def self.available_options
38
+ require "deliver"
39
+ require "deliver/options"
40
+ FastlaneCore::CommanderGenerator.new.generate(Deliver::Options.available_options)
41
+ end
42
+
43
+ def self.author
44
+ "KrauseFx"
45
+ end
46
+
47
+ def self.is_supported?(platform)
48
+ [:ios, :mac].include?(platform)
49
+ end
50
+
51
+ def self.example_code
52
+ [
53
+ 'upload_to_app_store(
54
+ force: true, # Set to true to skip PDF verification
55
+ itc_provider: "abcde12345" # pass a specific value to the iTMSTransporter -itc_provider option
56
+ )',
57
+ 'deliver(...) # alias for "upload_to_app_store"',
58
+ 'appstore(...) # alias for "upload_to_app_store"'
59
+ ]
60
+ end
61
+
62
+ def self.category
63
+ :production
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,68 @@
1
+ module Fastlane
2
+ module Actions
3
+ class UploadToPlayStoreAction < Action
4
+ def self.run(params)
5
+ require 'supply'
6
+ require 'supply/options'
7
+
8
+ # If no APK params were provided, try to fill in the values from lane context, preferring
9
+ # the multiple APKs over the single APK if set.
10
+ if params[:apk_paths].nil? && params[:apk].nil?
11
+ all_apk_paths = Actions.lane_context[SharedValues::GRADLE_ALL_APK_OUTPUT_PATHS] || []
12
+ if all_apk_paths.size > 1
13
+ params[:apk_paths] = all_apk_paths
14
+ else
15
+ params[:apk] = Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]
16
+ end
17
+ end
18
+
19
+ Supply.config = params # we already have the finished config
20
+
21
+ Supply::Uploader.new.perform_upload
22
+ end
23
+
24
+ #####################################################
25
+ # @!group Documentation
26
+ #####################################################
27
+
28
+ def self.description
29
+ "Upload metadata, screenshots and binaries to Google Play (via `supply`)"
30
+ end
31
+
32
+ def self.details
33
+ "More information: https://github.com/fastlane/fastlane/tree/master/supply"
34
+ end
35
+
36
+ def self.available_options
37
+ require 'supply'
38
+ require 'supply/options'
39
+ Supply::Options.available_options
40
+ end
41
+
42
+ def self.output
43
+ end
44
+
45
+ def self.return_value
46
+ end
47
+
48
+ def self.authors
49
+ ["KrauseFx"]
50
+ end
51
+
52
+ def self.is_supported?(platform)
53
+ platform == :android
54
+ end
55
+
56
+ def self.example_code
57
+ [
58
+ 'upload_to_play_store',
59
+ 'supply # alias for "upload_to_play_store"'
60
+ ]
61
+ end
62
+
63
+ def self.category
64
+ :production
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,67 @@
1
+ module Fastlane
2
+ module Actions
3
+ class UploadToTestflightAction < Action
4
+ def self.run(values)
5
+ require 'pilot'
6
+ require 'pilot/options'
7
+
8
+ changelog = Actions.lane_context[SharedValues::FL_CHANGELOG]
9
+ values[:changelog] ||= changelog if changelog
10
+
11
+ values[:ipa] ||= Actions.lane_context[SharedValues::IPA_OUTPUT_PATH]
12
+ values[:ipa] = File.expand_path(values[:ipa]) if values[:ipa]
13
+
14
+ return values if Helper.test?
15
+
16
+ Pilot::BuildManager.new.upload(values) # we already have the finished config
17
+ end
18
+
19
+ #####################################################
20
+ # @!group Documentation
21
+ #####################################################
22
+
23
+ def self.description
24
+ "Upload a new binary to iTunes Connect for TestFlight beta testing (via `pilot`)"
25
+ end
26
+
27
+ def self.details
28
+ [
29
+ "More details can be found on https://github.com/fastlane/fastlane/tree/master/pilot",
30
+ "This integration will only do the TestFlight upload"
31
+ ].join("\n")
32
+ end
33
+
34
+ def self.available_options
35
+ require "pilot"
36
+ require "pilot/options"
37
+ FastlaneCore::CommanderGenerator.new.generate(Pilot::Options.available_options)
38
+ end
39
+
40
+ def self.example_code
41
+ [
42
+ 'upload_to_testfight',
43
+ 'testflight # alias for "upload_to_testfight"',
44
+ 'pilot # alias for "upload_to_testfight"',
45
+ 'upload_to_testfight(skip_submission: true) # to only upload the build',
46
+ 'upload_to_testfight(
47
+ username: "felix@krausefx.com",
48
+ app_identifier: "com.krausefx.app",
49
+ itc_provider: "abcde12345" # pass a specific value to the iTMSTransporter -itc_provider option
50
+ )'
51
+ ]
52
+ end
53
+
54
+ def self.category
55
+ :beta
56
+ end
57
+
58
+ def self.authors
59
+ ["KrauseFx"]
60
+ end
61
+
62
+ def self.is_supported?(platform)
63
+ [:ios].include?(platform)
64
+ end
65
+ end
66
+ end
67
+ end