fastlane 2.113.0.beta.20190106200016 → 2.113.0.beta.20190107200010
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/fastlane/lib/fastlane/actions/commit_version_bump.rb +2 -3
- data/fastlane/lib/fastlane/actions/create_pull_request.rb +27 -0
- data/fastlane/lib/fastlane/actions/hg_commit_version_bump.rb +2 -3
- data/fastlane/lib/fastlane/helper/xcodeproj_helper.rb +12 -0
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/match/lib/assets/MatchfileTemplate +3 -1
- data/match/lib/match/setup.rb +18 -4
- data/match/lib/match/storage/git_storage.rb +7 -0
- data/match/lib/match/storage/google_cloud_storage.rb +4 -0
- data/match/lib/match/storage/interface.rb +7 -0
- data/spaceship/lib/spaceship/du/utilities.rb +2 -2
- data/spaceship/lib/spaceship/tunes/app_version.rb +4 -1
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +4 -0
- metadata +16 -16
- data/fastlane/lib/fastlane/helper/cocoapod_helper.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7665d827137b7e8e3d6bd005d4aeff2ad0f6aedb
|
4
|
+
data.tar.gz: fd27910f274d5f117192a4a5ca155ce31f6ddfc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0013e9a12fc558d42c01c78cc353a2fc4e785033e15b12ab24ea680a6fb447db2889ad0de76fdd221be87e1ecb37f145c258fa5512267042fbbea8fbd0a3d51a
|
7
|
+
data.tar.gz: a895cf3d66c35033f18e016edf46caaf3f3c8b4175fed05471a5f35250bf71166e3ff303ff0d9e82c69f400164839de3473350fa20ad2627e1e3f67646b260e8
|
@@ -35,9 +35,8 @@ module Fastlane
|
|
35
35
|
# ensure that the xcodeproj passed in was OK
|
36
36
|
UI.user_error!("Could not find the specified xcodeproj: #{xcodeproj_path}") unless File.directory?(xcodeproj_path)
|
37
37
|
else
|
38
|
-
|
39
|
-
|
40
|
-
xcodeproj_paths = Fastlane::Actions.ignore_cocoapods_path(all_xcodeproj_paths)
|
38
|
+
# find an xcodeproj (ignoring dependencies)
|
39
|
+
xcodeproj_paths = Fastlane::Helper::XcodeprojHelper.find(repo_path)
|
41
40
|
|
42
41
|
# no projects found: error
|
43
42
|
UI.user_error!('Could not find a .xcodeproj in the current repository\'s working directory.') if xcodeproj_paths.count == 0
|
@@ -33,11 +33,33 @@ module Fastlane
|
|
33
33
|
html_url = json['html_url']
|
34
34
|
UI.success("Successfully created pull request ##{number}. You can see it at '#{html_url}'")
|
35
35
|
|
36
|
+
# Add labels to pull request
|
37
|
+
add_labels(params, number) if params[:labels]
|
38
|
+
|
36
39
|
Actions.lane_context[SharedValues::CREATE_PULL_REQUEST_HTML_URL] = html_url
|
37
40
|
return html_url
|
38
41
|
end
|
39
42
|
end
|
40
43
|
|
44
|
+
def self.add_labels(params, number)
|
45
|
+
payload = {
|
46
|
+
'labels' => params[:labels]
|
47
|
+
}
|
48
|
+
GithubApiAction.run(
|
49
|
+
server_url: params[:api_url],
|
50
|
+
api_token: params[:api_token],
|
51
|
+
http_method: 'PATCH',
|
52
|
+
path: "repos/#{params[:repo]}/issues/#{number}",
|
53
|
+
body: payload,
|
54
|
+
error_handlers: {
|
55
|
+
'*' => proc do |result|
|
56
|
+
UI.error("GitHub responded with #{result[:status]}: #{result[:body]}")
|
57
|
+
return nil
|
58
|
+
end
|
59
|
+
}
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
41
63
|
#####################################################
|
42
64
|
# @!group Documentation
|
43
65
|
#####################################################
|
@@ -72,6 +94,11 @@ module Fastlane
|
|
72
94
|
description: "The contents of the pull request",
|
73
95
|
is_string: true,
|
74
96
|
optional: true),
|
97
|
+
FastlaneCore::ConfigItem.new(key: :labels,
|
98
|
+
env_name: "GITHUB_PULL_REQUEST_LABELS",
|
99
|
+
description: "The labels for the pull request",
|
100
|
+
type: Array,
|
101
|
+
optional: true),
|
75
102
|
FastlaneCore::ConfigItem.new(key: :head,
|
76
103
|
env_name: "GITHUB_PULL_REQUEST_HEAD",
|
77
104
|
description: "The name of the branch where your changes are implemented (defaults to the current branch name)",
|
@@ -24,9 +24,8 @@ module Fastlane
|
|
24
24
|
UI.user_error!("Could not find the specified xcodeproj: #{xcodeproj_path}") unless File.directory?(xcodeproj_path)
|
25
25
|
end
|
26
26
|
else
|
27
|
-
|
28
|
-
|
29
|
-
xcodeproj_paths = Fastlane::Actions.ignore_cocoapods_path(all_xcodeproj_paths)
|
27
|
+
# find an xcodeproj (ignoring dependencies)
|
28
|
+
xcodeproj_paths = Fastlane::Helper::XcodeprojHelper.find(repo_path)
|
30
29
|
|
31
30
|
# no projects found: error
|
32
31
|
UI.user_error!('Could not find a .xcodeproj in the current repository\'s working directory.') if xcodeproj_paths.count == 0
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Fastlane
|
2
|
+
module Helper
|
3
|
+
class XcodeprojHelper
|
4
|
+
DEPENDENCY_MANAGER_DIRS = ['Pods', 'Carthage'].freeze
|
5
|
+
|
6
|
+
def self.find(dir)
|
7
|
+
xcodeproj_paths = Dir[File.expand_path(File.join(dir, '**/*.xcodeproj'))]
|
8
|
+
xcodeproj_paths.reject { |path| %r{/(#{DEPENDENCY_MANAGER_DIRS.join('|')})/.*.xcodeproj} =~ path }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Fastlane
|
2
|
-
VERSION = '2.113.0.beta.
|
2
|
+
VERSION = '2.113.0.beta.20190107200010'.freeze
|
3
3
|
DESCRIPTION = "The easiest way to automate beta deployments and releases for your iOS and Android apps".freeze
|
4
4
|
MINIMUM_XCODE_RELEASE = "7.0".freeze
|
5
5
|
RUBOCOP_REQUIREMENT = '0.49.1'.freeze
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
[[CONTENT]]
|
2
2
|
|
3
3
|
type("development") # The default type, can be: appstore, adhoc, enterprise or development
|
4
4
|
|
@@ -7,3 +7,5 @@ type("development") # The default type, can be: appstore, adhoc, enterprise or d
|
|
7
7
|
|
8
8
|
# For all available options run `fastlane match --help`
|
9
9
|
# Remove the # in the beginning of the line to enable the other options
|
10
|
+
|
11
|
+
# The docs are available on https://docs.fastlane.tools/actions/match
|
data/match/lib/match/setup.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'module'
|
2
|
+
require_relative 'storage'
|
2
3
|
|
3
4
|
module Match
|
4
5
|
class Setup
|
@@ -9,11 +10,20 @@ module Match
|
|
9
10
|
template = File.read("#{Match::ROOT}/lib/assets/MatchfileTemplate")
|
10
11
|
end
|
11
12
|
|
12
|
-
UI.
|
13
|
-
|
14
|
-
|
13
|
+
storage_mode = UI.select(
|
14
|
+
"fastlane match supports multiple storage modes, please select the one you want to use:",
|
15
|
+
self.storage_options
|
16
|
+
)
|
17
|
+
|
18
|
+
storage = Storage.for_mode(storage_mode, {})
|
19
|
+
|
20
|
+
specific_content = storage.generate_matchfile_content
|
21
|
+
UI.crash!("Looks like `generate_matchfile_content` was `nil` for `#{storage_mode}`") if specific_content.nil?
|
22
|
+
specific_content += "\n\n" if specific_content.length > 0
|
23
|
+
specific_content += "storage_mode(\"#{storage_mode}\")"
|
24
|
+
|
25
|
+
template.gsub!("[[CONTENT]]", specific_content)
|
15
26
|
|
16
|
-
template.gsub!("[[GIT_URL]]", url)
|
17
27
|
File.write(path, template)
|
18
28
|
UI.success("Successfully created '#{path}'. You can open the file using a code editor.")
|
19
29
|
|
@@ -22,5 +32,9 @@ module Match
|
|
22
32
|
UI.message("certificates for you. From then on, it will automatically import the existing profiles.")
|
23
33
|
UI.message("For more information visit https://docs.fastlane.tools/actions/match/")
|
24
34
|
end
|
35
|
+
|
36
|
+
def storage_options
|
37
|
+
return ["git", "google_cloud"]
|
38
|
+
end
|
25
39
|
end
|
26
40
|
end
|
@@ -125,6 +125,13 @@ module Match
|
|
125
125
|
].join(" ")
|
126
126
|
end
|
127
127
|
|
128
|
+
def generate_matchfile_content
|
129
|
+
UI.important("Please create a new, private git repository to store the certificates and profiles there")
|
130
|
+
url = UI.input("URL of the Git Repo: ")
|
131
|
+
|
132
|
+
return "git_url(\"#{url}\")"
|
133
|
+
end
|
134
|
+
|
128
135
|
private
|
129
136
|
|
130
137
|
# Create and checkout an specific branch in the git repo
|
@@ -90,6 +90,13 @@ module Match
|
|
90
90
|
not_implemented(__method__)
|
91
91
|
end
|
92
92
|
|
93
|
+
# Implement this for the `fastlane match init` command
|
94
|
+
# This method must return the content of the Matchfile
|
95
|
+
# that should be generated
|
96
|
+
def generate_matchfile_content(template: nil)
|
97
|
+
not_implemented(__method__)
|
98
|
+
end
|
99
|
+
|
93
100
|
# Call this method to reset any changes made locally to the files
|
94
101
|
def clear_changes
|
95
102
|
return unless @working_directory
|
@@ -40,7 +40,7 @@ module Spaceship
|
|
40
40
|
# @param video_path (String) the path to the video file
|
41
41
|
# @param timestamp (String) the `ffmpeg` timestamp format (e.g. 00.00)
|
42
42
|
# @param dimensions (Array) the dimension of the screenshot to generate
|
43
|
-
# @return the
|
43
|
+
# @return the TempFile containing the generated screenshot
|
44
44
|
def grab_video_preview(video_path, timestamp, dimensions)
|
45
45
|
width, height = dimensions
|
46
46
|
require 'tempfile'
|
@@ -50,7 +50,7 @@ module Spaceship
|
|
50
50
|
# puts "COMMAND: #{command}"
|
51
51
|
`#{command}`
|
52
52
|
raise "Failed to grab screenshot at #{timestamp} from #{video_path} (using #{command})" unless $CHILD_STATUS.to_i == 0
|
53
|
-
tmp
|
53
|
+
tmp
|
54
54
|
end
|
55
55
|
|
56
56
|
# identifies the resolution of a video using `ffmpeg`
|
@@ -567,7 +567,10 @@ module Spaceship
|
|
567
567
|
else
|
568
568
|
# IDEA: optimization, we could avoid fetching the screenshot if the timestamp hasn't changed
|
569
569
|
video_preview_resolution = video_preview_resolution_for(device, trailer_path)
|
570
|
-
|
570
|
+
|
571
|
+
# Keep a reference of the video_preview here to avoid Ruby getting rid of the Tempfile in the meanwhile
|
572
|
+
video_preview = Utilities.grab_video_preview(trailer_path, timestamp, video_preview_resolution)
|
573
|
+
video_preview_path = video_preview.path
|
571
574
|
end
|
572
575
|
video_preview_file = UploadFile.from_path(video_preview_path)
|
573
576
|
video_preview_data = client.upload_trailer_preview(self, video_preview_file, device)
|
@@ -377,6 +377,10 @@ module Spaceship
|
|
377
377
|
|
378
378
|
r = request(:get, rating_url)
|
379
379
|
all_reviews.concat(parse_response(r, 'data')['reviews'])
|
380
|
+
|
381
|
+
# The following lines throw errors when there are no reviews so exit out of the loop before them if the app has no reviews
|
382
|
+
break if all_reviews.count == 0
|
383
|
+
|
380
384
|
last_review_date = Time.at(all_reviews[-1]['value']['lastModified'] / 1000)
|
381
385
|
|
382
386
|
if upto_date && last_review_date < upto_date
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.113.0.beta.
|
4
|
+
version: 2.113.0.beta.20190107200010
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Danielle Tomlinson
|
@@ -27,7 +27,7 @@ authors:
|
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2019-01-
|
30
|
+
date: 2019-01-07 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -546,7 +546,7 @@ dependencies:
|
|
546
546
|
version: 1.12.0
|
547
547
|
- - "<"
|
548
548
|
- !ruby/object:Gem::Version
|
549
|
-
version:
|
549
|
+
version: 3.0.0
|
550
550
|
type: :runtime
|
551
551
|
prerelease: false
|
552
552
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -556,7 +556,7 @@ dependencies:
|
|
556
556
|
version: 1.12.0
|
557
557
|
- - "<"
|
558
558
|
- !ruby/object:Gem::Version
|
559
|
-
version:
|
559
|
+
version: 3.0.0
|
560
560
|
- !ruby/object:Gem::Dependency
|
561
561
|
name: faraday
|
562
562
|
requirement: !ruby/object:Gem::Requirement
|
@@ -1206,7 +1206,6 @@ files:
|
|
1206
1206
|
- fastlane/lib/fastlane/features.rb
|
1207
1207
|
- fastlane/lib/fastlane/helper/README.md
|
1208
1208
|
- fastlane/lib/fastlane/helper/adb_helper.rb
|
1209
|
-
- fastlane/lib/fastlane/helper/cocoapod_helper.rb
|
1210
1209
|
- fastlane/lib/fastlane/helper/crashlytics_helper.rb
|
1211
1210
|
- fastlane/lib/fastlane/helper/dotenv_helper.rb
|
1212
1211
|
- fastlane/lib/fastlane/helper/gem_helper.rb
|
@@ -1214,6 +1213,7 @@ files:
|
|
1214
1213
|
- fastlane/lib/fastlane/helper/gradle_helper.rb
|
1215
1214
|
- fastlane/lib/fastlane/helper/podspec_helper.rb
|
1216
1215
|
- fastlane/lib/fastlane/helper/sh_helper.rb
|
1216
|
+
- fastlane/lib/fastlane/helper/xcodeproj_helper.rb
|
1217
1217
|
- fastlane/lib/fastlane/helper/xcversion_helper.rb
|
1218
1218
|
- fastlane/lib/fastlane/junit_generator.rb
|
1219
1219
|
- fastlane/lib/fastlane/lane.rb
|
@@ -1682,24 +1682,24 @@ metadata:
|
|
1682
1682
|
post_install_message:
|
1683
1683
|
rdoc_options: []
|
1684
1684
|
require_paths:
|
1685
|
+
- frameit/lib
|
1686
|
+
- spaceship/lib
|
1685
1687
|
- precheck/lib
|
1688
|
+
- gym/lib
|
1689
|
+
- supply/lib
|
1690
|
+
- match/lib
|
1686
1691
|
- scan/lib
|
1692
|
+
- fastlane_core/lib
|
1693
|
+
- cert/lib
|
1687
1694
|
- deliver/lib
|
1688
|
-
- screengrab/lib
|
1689
|
-
- supply/lib
|
1690
|
-
- frameit/lib
|
1691
|
-
- sigh/lib
|
1692
|
-
- gym/lib
|
1693
|
-
- snapshot/lib
|
1694
1695
|
- produce/lib
|
1696
|
+
- snapshot/lib
|
1697
|
+
- screengrab/lib
|
1695
1698
|
- fastlane/lib
|
1696
1699
|
- credentials_manager/lib
|
1697
|
-
- spaceship/lib
|
1698
|
-
- match/lib
|
1699
|
-
- pilot/lib
|
1700
1700
|
- pem/lib
|
1701
|
-
-
|
1702
|
-
-
|
1701
|
+
- pilot/lib
|
1702
|
+
- sigh/lib
|
1703
1703
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1704
1704
|
requirements:
|
1705
1705
|
- - ">="
|