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,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