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,51 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- end
5
-
6
- class PrecheckAction < Action
7
- def self.run(config)
8
- require 'precheck'
9
- Precheck.config = config
10
- return Precheck::Runner.new.run
11
- end
3
+ require 'fastlane/actions/check_app_store_metadata'
4
+ class PrecheckAction < CheckAppStoreMetadataAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
12
8
 
13
9
  def self.description
14
- "Check your app's metadata before you submit your app to review using _precheck_"
15
- end
16
-
17
- def self.details
18
- "More information: https://fastlane.tools/precheck"
19
- end
20
-
21
- def self.available_options
22
- require 'precheck/options'
23
- Precheck::Options.available_options
24
- end
25
-
26
- def self.return_value
27
- return "true if precheck passes, else, false"
28
- end
29
-
30
- def self.authors
31
- ["taquitos"]
32
- end
33
-
34
- def self.is_supported?(platform)
35
- platform == :ios
36
- end
37
-
38
- def self.example_code
39
- [
40
- 'precheck(
41
- negative_apple_sentiment(level: :skip), # Set to skip to not run the `negative_apple_sentiment` rule
42
- curse_words(level: :warn) # Set to warn to only warn on curse word check failures
43
- )'
44
- ]
45
- end
46
-
47
- def self.category
48
- :misc
10
+ "Alias for the `check_app_store_metadata` action"
49
11
  end
50
12
  end
51
13
  end
@@ -1,73 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- PRODUCE_APPLE_ID = :PRODUCE_APPLE_ID
5
- end
6
-
7
- class ProduceAction < Action
8
- def self.run(params)
9
- require 'produce'
10
-
11
- return if Helper.test?
12
-
13
- Produce.config = params # we alread have the finished config
14
-
15
- Dir.chdir(FastlaneCore::FastlaneFolder.path || Dir.pwd) do
16
- # This should be executed in the fastlane folder
17
- apple_id = Produce::Manager.start_producing.to_s
18
-
19
- Actions.lane_context[SharedValues::PRODUCE_APPLE_ID] = apple_id
20
- ENV['PRODUCE_APPLE_ID'] = apple_id
21
- end
22
- end
3
+ require 'fastlane/actions/create_app_online'
4
+ class ProduceAction < CreateAppOnlineAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
23
8
 
24
9
  def self.description
25
- "Creates the given application on iTC and the Dev Portal if necessary"
26
- end
27
-
28
- def details
29
- [
30
- 'Create new apps on iTunes Connect and Apple Developer Portal. If the app already exists, `produce` will not do anything.',
31
- 'For more information about produce, visit its GitHub page:',
32
- 'https://github.com/fastlane/fastlane/tree/master/produce'
33
- ].join(' ')
34
- end
35
-
36
- def self.available_options
37
- require 'produce'
38
- Produce::Options.available_options
39
- end
40
-
41
- def self.output
42
- [
43
- ['PRODUCE_APPLE_ID', 'The Apple ID of the newly created app. You probably need it for `deliver`']
44
- ]
45
- end
46
-
47
- def self.author
48
- "KrauseFx"
49
- end
50
-
51
- def self.is_supported?(platform)
52
- platform == :ios
53
- end
54
-
55
- def self.example_code
56
- [
57
- 'produce(
58
- username: "felix@krausefx.com",
59
- app_identifier: "com.krausefx.app",
60
- app_name: "MyApp",
61
- language: "English",
62
- app_version: "1.0",
63
- sku: "123",
64
- team_name: "SunApps GmbH" # Only necessary when in multiple teams.
65
- )'
66
- ]
67
- end
68
-
69
- def self.category
70
- :misc
10
+ "Alias for the `create_app_online` action"
71
11
  end
72
12
  end
73
13
  end
@@ -0,0 +1,105 @@
1
+ module Fastlane
2
+ module Actions
3
+ module SharedValues
4
+ SCAN_DERIVED_DATA_PATH = :SCAN_DERIVED_DATA_PATH
5
+ SCAN_GENERATED_PLIST_FILE = :SCAN_GENERATED_PLIST_FILE
6
+ SCAN_GENERATED_PLIST_FILES = :SCAN_GENERATED_PLIST_FILES
7
+ end
8
+
9
+ class RunTestsAction < Action
10
+ def self.run(values)
11
+ require 'scan'
12
+ plist_files_before = []
13
+
14
+ begin
15
+ destination = values[:destination] # save destination value which can be later overridden
16
+ Scan.config = values # we set this here to auto-detect missing values, which we need later on
17
+ unless values[:derived_data_path].to_s.empty?
18
+ plist_files_before = test_summary_filenames(values[:derived_data_path])
19
+ end
20
+
21
+ values[:destination] = destination # restore destination value
22
+ Scan::Manager.new.work(values)
23
+
24
+ return true
25
+ rescue => ex
26
+ if values[:fail_build]
27
+ raise ex
28
+ end
29
+ ensure
30
+ unless values[:derived_data_path].to_s.empty?
31
+ Actions.lane_context[SharedValues::SCAN_DERIVED_DATA_PATH] = values[:derived_data_path]
32
+ plist_files_after = test_summary_filenames(values[:derived_data_path])
33
+ all_test_summaries = (plist_files_after - plist_files_before)
34
+ Actions.lane_context[SharedValues::SCAN_GENERATED_PLIST_FILES] = all_test_summaries
35
+ Actions.lane_context[SharedValues::SCAN_GENERATED_PLIST_FILE] = all_test_summaries.last
36
+ end
37
+ end
38
+ end
39
+
40
+ def self.description
41
+ "Easily run tests of your iOS app (via `scan`)"
42
+ end
43
+
44
+ def self.details
45
+ "More information: https://github.com/fastlane/fastlane/tree/master/scan"
46
+ end
47
+
48
+ def self.author
49
+ "KrauseFx"
50
+ end
51
+
52
+ def self.available_options
53
+ require 'scan'
54
+
55
+ FastlaneCore::CommanderGenerator.new.generate(Scan::Options.available_options) + [
56
+ FastlaneCore::ConfigItem.new(key: :fail_build,
57
+ env_name: "SCAN_FAIL_BUILD",
58
+ description: "Should this step stop the build if the tests fail? Set this to false if you're using trainer",
59
+ is_string: false,
60
+ default_value: true)
61
+ ]
62
+ end
63
+
64
+ def self.is_supported?(platform)
65
+ [:ios, :mac].include? platform
66
+ end
67
+
68
+ private_class_method
69
+
70
+ def self.test_summary_filenames(derived_data_path)
71
+ Dir["#{derived_data_path}/**/Logs/Test/*TestSummaries.plist"]
72
+ end
73
+
74
+ def self.example_code
75
+ [
76
+ 'run_tests',
77
+ 'scan # alias for "run_tests"',
78
+ 'run_tests(
79
+ workspace: "App.xcworkspace",
80
+ scheme: "MyTests",
81
+ clean: false
82
+ )',
83
+ '# Build For Testing
84
+ run_tests(
85
+ derived_data_path: "my_folder",
86
+ build_for_testing: true
87
+ )',
88
+ '# run tests using derived data from prev. build
89
+ run_tests(
90
+ derived_data_path: "my_folder",
91
+ test_without_building: true
92
+ )',
93
+ '# or run it from an existing xctestrun package
94
+ run_tests(
95
+ xctestrun: "/path/to/mytests.xctestrun"
96
+ )'
97
+ ]
98
+ end
99
+
100
+ def self.category
101
+ :testing
102
+ end
103
+ end
104
+ end
105
+ end
@@ -1,103 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- SCAN_DERIVED_DATA_PATH = :SCAN_DERIVED_DATA_PATH
5
- SCAN_GENERATED_PLIST_FILE = :SCAN_GENERATED_PLIST_FILE
6
- SCAN_GENERATED_PLIST_FILES = :SCAN_GENERATED_PLIST_FILES
7
- end
8
-
9
- class ScanAction < Action
10
- def self.run(values)
11
- require 'scan'
12
- plist_files_before = []
13
-
14
- begin
15
- destination = values[:destination] # save destination value which can be later overridden
16
- Scan.config = values # we set this here to auto-detect missing values, which we need later on
17
- unless values[:derived_data_path].to_s.empty?
18
- plist_files_before = test_summary_filenames(values[:derived_data_path])
19
- end
20
-
21
- values[:destination] = destination # restore destination value
22
- Scan::Manager.new.work(values)
23
-
24
- return true
25
- rescue => ex
26
- if values[:fail_build]
27
- raise ex
28
- end
29
- ensure
30
- unless values[:derived_data_path].to_s.empty?
31
- Actions.lane_context[SharedValues::SCAN_DERIVED_DATA_PATH] = values[:derived_data_path]
32
- plist_files_after = test_summary_filenames(values[:derived_data_path])
33
- all_test_summaries = (plist_files_after - plist_files_before)
34
- Actions.lane_context[SharedValues::SCAN_GENERATED_PLIST_FILES] = all_test_summaries
35
- Actions.lane_context[SharedValues::SCAN_GENERATED_PLIST_FILE] = all_test_summaries.last
36
- end
37
- end
38
- end
3
+ require 'fastlane/actions/run_tests'
4
+ class ScanAction < RunTestsAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
39
8
 
40
9
  def self.description
41
- "Easily run tests of your iOS app using _scan_"
42
- end
43
-
44
- def self.details
45
- "More information: https://github.com/fastlane/fastlane/tree/master/scan"
46
- end
47
-
48
- def self.author
49
- "KrauseFx"
50
- end
51
-
52
- def self.available_options
53
- require 'scan'
54
-
55
- FastlaneCore::CommanderGenerator.new.generate(Scan::Options.available_options) + [
56
- FastlaneCore::ConfigItem.new(key: :fail_build,
57
- env_name: "SCAN_FAIL_BUILD",
58
- description: "Should this step stop the build if the tests fail? Set this to false if you're using trainer",
59
- is_string: false,
60
- default_value: true)
61
- ]
62
- end
63
-
64
- def self.is_supported?(platform)
65
- [:ios, :mac].include? platform
66
- end
67
-
68
- private_class_method
69
-
70
- def self.test_summary_filenames(derived_data_path)
71
- Dir["#{derived_data_path}/**/Logs/Test/*TestSummaries.plist"]
72
- end
73
-
74
- def self.example_code
75
- [
76
- 'scan',
77
- 'scan(
78
- workspace: "App.xcworkspace",
79
- scheme: "MyTests",
80
- clean: false
81
- )',
82
- '# Build For Testing
83
- scan(
84
- derived_data_path: "my_folder",
85
- build_for_testing: true
86
- )',
87
- '# run tests using derived data from prev. build
88
- scan(
89
- derived_data_path: "my_folder",
90
- test_without_building: true
91
- )',
92
- '# or run it from an existing xctestrun package
93
- scan(
94
- xctestrun: "/path/to/mytests.xctestrun"
95
- )'
96
- ]
97
- end
98
-
99
- def self.category
100
- :testing
10
+ "Alias for the `run_tests` action"
101
11
  end
102
12
  end
103
13
  end
@@ -1,55 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- SCREENGRAB_OUTPUT_DIRECTORY = :SCREENGRAB_OUTPUT_DIRECTORY
5
- end
6
-
7
- class ScreengrabAction < Action
8
- def self.run(params)
9
- require 'screengrab'
10
-
11
- Screengrab.config = params
12
- Screengrab.android_environment = Screengrab::AndroidEnvironment.new(params[:android_home],
13
- params[:build_tools_version])
14
- Screengrab::DependencyChecker.check(Screengrab.android_environment)
15
- Screengrab::Runner.new.run
16
-
17
- Actions.lane_context[SharedValues::SCREENGRAB_OUTPUT_DIRECTORY] = File.expand_path(params[:output_directory])
18
-
19
- true
20
- end
3
+ require 'fastlane/actions/capture_android_screenshots'
4
+ class ScreengrabAction < CaptureAndroidScreenshotsAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
21
8
 
22
9
  def self.description
23
- 'Automated localized screenshots of your Android app on every device'
24
- end
25
-
26
- def self.available_options
27
- require 'screengrab'
28
- Screengrab::Options.available_options
29
- end
30
-
31
- def self.author
32
- ['asfalcone', 'i2amsam', 'mfurtak']
33
- end
34
-
35
- def self.is_supported?(platform)
36
- platform == :android
37
- end
38
-
39
- def self.example_code
40
- [
41
- 'screengrab',
42
- 'screengrab(
43
- locales: ["en-US", "fr-FR", "ja-JP"],
44
- clear_previous_screenshots: true,
45
- app_apk_path: "build/outputs/apk/example-debug.apk",
46
- tests_apk_path: "build/outputs/apk/example-debug-androidTest-unaligned.apk"
47
- )'
48
- ]
49
- end
50
-
51
- def self.category
52
- :screenshots
10
+ "Alias for the `capture_android_screenshots` action"
53
11
  end
54
12
  end
55
13
  end
@@ -1,86 +1,13 @@
1
1
  module Fastlane
2
2
  module Actions
3
- module SharedValues
4
- SIGH_PROFILE_PATH = :SIGH_PROFILE_PATH
5
- SIGH_PROFILE_PATHS = :SIGH_PROFILE_PATHS
6
- SIGH_UDID = :SIGH_UDID # deprecated
7
- SIGH_UUID = :SIGH_UUID
8
- SIGH_NAME = :SIGH_NAME
9
- SIGH_PROFILE_TYPE = :SIGH_PROFILE_TYPE
10
- end
11
-
12
- class SighAction < Action
13
- def self.run(values)
14
- require 'sigh'
15
- require 'credentials_manager/appfile_config'
16
-
17
- Sigh.config = values # we already have the finished config
18
-
19
- path = Sigh::Manager.start
20
-
21
- Actions.lane_context[SharedValues::SIGH_PROFILE_PATH] = path # absolute path
22
- Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] ||= []
23
- Actions.lane_context[SharedValues::SIGH_PROFILE_PATHS] << path
24
-
25
- uuid = ENV["SIGH_UUID"] || ENV["SIGH_UDID"] # the UUID of the profile
26
- name = ENV["SIGH_NAME"] # the name of the profile
27
- Actions.lane_context[SharedValues::SIGH_UUID] = Actions.lane_context[SharedValues::SIGH_UDID] = uuid if uuid
28
- Actions.lane_context[SharedValues::SIGH_NAME] = Actions.lane_context[SharedValues::SIGH_NAME] = name if name
29
-
30
- set_profile_type(values, ENV["SIGH_PROFILE_ENTERPRISE"])
31
-
32
- return uuid # returs uuid of profile
33
- end
34
-
35
- def self.set_profile_type(values, enterprise)
36
- profile_type = "app-store"
37
- profile_type = "ad-hoc" if values[:adhoc]
38
- profile_type = "development" if values[:development]
39
- profile_type = "enterprise" if enterprise
40
-
41
- UI.message("Setting Provisioning Profile type to '#{profile_type}'")
42
-
43
- Actions.lane_context[SharedValues::SIGH_PROFILE_TYPE] = profile_type
44
- end
3
+ require 'fastlane/actions/get_provisioning_profile'
4
+ class SighAction < GetProvisioningProfileAction
5
+ #####################################################
6
+ # @!group Documentation
7
+ #####################################################
45
8
 
46
9
  def self.description
47
- "Generates a provisioning profile. Stores the profile in the current folder"
48
- end
49
-
50
- def self.author
51
- "KrauseFx"
52
- end
53
-
54
- def self.return_value
55
- "The UUID of the profile sigh just fetched/generated"
56
- end
57
-
58
- def self.details
59
- "**Note**: It is recommended to use [match](https://github.com/fastlane/fastlane/tree/master/match) according to the [codesigning.guide](https://codesigning.guide) for generating and maintaining your provisioning profiles. Use _sigh_ directly only if you want full control over what's going on and know more about codesigning."
60
- end
61
-
62
- def self.available_options
63
- require 'sigh'
64
- Sigh::Options.available_options
65
- end
66
-
67
- def self.is_supported?(platform)
68
- platform == :ios
69
- end
70
-
71
- def self.example_code
72
- [
73
- 'sigh',
74
- 'sigh(
75
- adhoc: true,
76
- force: true,
77
- filename: "myFile.mobileprovision"
78
- )'
79
- ]
80
- end
81
-
82
- def self.category
83
- :code_signing
10
+ "Alias for the `get_provisioning_profile` action"
84
11
  end
85
12
  end
86
13
  end