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

Sign up to get free protection for your applications and to get access to all the features.
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