fastlane 2.135.0 → 2.138.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +78 -78
- data/fastlane/lib/fastlane/actions/app_store_build_number.rb +1 -1
- data/fastlane/lib/fastlane/actions/docs/capture_android_screenshots.md +38 -4
- data/fastlane/lib/fastlane/actions/docs/sync_code_signing.md +19 -0
- data/fastlane/lib/fastlane/actions/docs/upload_to_play_store.md +4 -2
- data/fastlane/lib/fastlane/actions/ensure_bundle_exec.rb +3 -3
- data/fastlane/lib/fastlane/actions/get_version_number.rb +7 -2
- data/fastlane/lib/fastlane/actions/google_play_track_version_codes.rb +5 -1
- data/fastlane/lib/fastlane/actions/gradle.rb +11 -1
- data/fastlane/lib/fastlane/actions/increment_version_number.rb +6 -3
- data/fastlane/lib/fastlane/actions/latest_testflight_build_number.rb +2 -2
- data/fastlane/lib/fastlane/actions/register_devices.rb +5 -1
- data/fastlane/lib/fastlane/actions/ruby_version.rb +1 -1
- data/fastlane/lib/fastlane/actions/testfairy.rb +8 -1
- data/fastlane/lib/fastlane/actions/verify_build.rb +1 -1
- data/fastlane/lib/fastlane/actions/xcode_select.rb +6 -1
- data/fastlane/lib/fastlane/cli_tools_distributor.rb +2 -2
- data/fastlane/lib/fastlane/commands_generator.rb +1 -1
- data/fastlane/lib/fastlane/helper/adb_helper.rb +13 -4
- data/fastlane/lib/fastlane/plugins/template/.rubocop.yml +1 -0
- data/fastlane/lib/fastlane/swift_fastlane_function.rb +9 -0
- data/fastlane/lib/fastlane/version.rb +1 -1
- data/fastlane/swift/Deliverfile.swift +1 -1
- data/fastlane/swift/Fastlane.swift +47 -17
- data/fastlane/swift/Gymfile.swift +1 -1
- data/fastlane/swift/Matchfile.swift +1 -1
- data/fastlane/swift/MatchfileProtocol.swift +6 -2
- data/fastlane/swift/Precheckfile.swift +1 -1
- data/fastlane/swift/Scanfile.swift +1 -1
- data/fastlane/swift/Screengrabfile.swift +1 -1
- data/fastlane/swift/ScreengrabfileProtocol.swift +14 -2
- data/fastlane/swift/Snapshotfile.swift +1 -1
- data/fastlane_core/lib/fastlane_core/helper.rb +1 -1
- data/match/lib/match/options.rb +8 -0
- data/match/lib/match/runner.rb +1 -0
- data/match/lib/match/storage/git_storage.rb +7 -2
- data/screengrab/lib/screengrab/module.rb +2 -0
- data/screengrab/lib/screengrab/options.rb +24 -11
- data/screengrab/lib/screengrab/runner.rb +79 -42
- data/spaceship/lib/spaceship/client.rb +9 -4
- data/spaceship/lib/spaceship/connect_api.rb +2 -0
- data/spaceship/lib/spaceship/connect_api/models/app.rb +11 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_feedback.rb +71 -0
- data/spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb +18 -0
- data/spaceship/lib/spaceship/connect_api/testflight/testflight.rb +9 -0
- data/spaceship/lib/spaceship/tunes/tunes_client.rb +2 -5
- data/supply/lib/supply/client.rb +1 -0
- data/supply/lib/supply/options.rb +9 -2
- data/supply/lib/supply/uploader.rb +63 -39
- metadata +22 -24
- data/gym/lib/gym/.module.rb.swp +0 -0
- data/supply/lib/supply/.client.rb.swp +0 -0
- data/supply/lib/supply/.options.rb.swp +0 -0
- data/supply/lib/supply/.uploader.rb.swp +0 -0
@@ -563,10 +563,15 @@ module Spaceship
|
|
563
563
|
#####################################################
|
564
564
|
|
565
565
|
def load_session_from_file
|
566
|
-
|
567
|
-
|
568
|
-
|
569
|
-
|
566
|
+
begin
|
567
|
+
if File.exist?(persistent_cookie_path)
|
568
|
+
puts("Loading session from '#{persistent_cookie_path}'") if Spaceship::Globals.verbose?
|
569
|
+
@cookie.load(persistent_cookie_path)
|
570
|
+
return true
|
571
|
+
end
|
572
|
+
rescue => ex
|
573
|
+
puts(ex.to_s)
|
574
|
+
puts("Continuing with normal login.")
|
570
575
|
end
|
571
576
|
return false
|
572
577
|
end
|
@@ -20,7 +20,9 @@ require 'spaceship/connect_api/models/beta_build_localization'
|
|
20
20
|
require 'spaceship/connect_api/models/beta_build_metric'
|
21
21
|
require 'spaceship/connect_api/models/beta_app_review_detail'
|
22
22
|
require 'spaceship/connect_api/models/beta_app_review_submission'
|
23
|
+
require 'spaceship/connect_api/models/beta_feedback'
|
23
24
|
require 'spaceship/connect_api/models/beta_group'
|
25
|
+
require 'spaceship/connect_api/models/beta_screenshot'
|
24
26
|
require 'spaceship/connect_api/models/beta_tester'
|
25
27
|
require 'spaceship/connect_api/models/beta_tester_metric'
|
26
28
|
require 'spaceship/connect_api/models/build'
|
@@ -45,6 +45,17 @@ module Spaceship
|
|
45
45
|
return Spaceship::ConnectAPI.get_app(app_id: app_id, includes: includes).first
|
46
46
|
end
|
47
47
|
|
48
|
+
#
|
49
|
+
# Beta Feedback
|
50
|
+
|
51
|
+
def get_beta_feedback(filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil)
|
52
|
+
filter ||= {}
|
53
|
+
filter["build.app"] = id
|
54
|
+
|
55
|
+
resps = Spaceship::ConnectAPI.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort).all_pages
|
56
|
+
return resps.flat_map(&:to_models)
|
57
|
+
end
|
58
|
+
|
48
59
|
#
|
49
60
|
# Beta Testers
|
50
61
|
#
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require_relative '../model'
|
2
|
+
module Spaceship
|
3
|
+
class ConnectAPI
|
4
|
+
class BetaFeedback
|
5
|
+
include Spaceship::ConnectAPI::Model
|
6
|
+
|
7
|
+
attr_accessor :timestamp
|
8
|
+
attr_accessor :comment
|
9
|
+
attr_accessor :email_address
|
10
|
+
attr_accessor :device_model
|
11
|
+
attr_accessor :os_version
|
12
|
+
attr_accessor :bookmarked
|
13
|
+
attr_accessor :locale
|
14
|
+
attr_accessor :carrier
|
15
|
+
attr_accessor :timezone
|
16
|
+
attr_accessor :architecture
|
17
|
+
attr_accessor :connection_status
|
18
|
+
attr_accessor :paired_apple_watch
|
19
|
+
attr_accessor :app_up_time_millis
|
20
|
+
attr_accessor :available_disk_bytes
|
21
|
+
attr_accessor :total_disk_bytes
|
22
|
+
attr_accessor :network_type
|
23
|
+
attr_accessor :battery_percentage
|
24
|
+
attr_accessor :screen_width
|
25
|
+
attr_accessor :screen_height
|
26
|
+
|
27
|
+
attr_accessor :build
|
28
|
+
attr_accessor :tester
|
29
|
+
attr_accessor :screenshots
|
30
|
+
|
31
|
+
attr_mapping({
|
32
|
+
"timestamp" => "timestamp",
|
33
|
+
"comment" => "comment",
|
34
|
+
"emailAddress" => "email_address",
|
35
|
+
"contactEmail" => "contact_email",
|
36
|
+
"deviceModel" => "device_model",
|
37
|
+
"osVersion" => "os_version",
|
38
|
+
"bookmarked" => "bookmarked",
|
39
|
+
"locale" => "locale",
|
40
|
+
"carrier" => "carrier",
|
41
|
+
"timezone" => "timezone",
|
42
|
+
"architecture" => "architecture",
|
43
|
+
"connectionStatus" => "connection_status",
|
44
|
+
"pairedAppleWatch" => "paired_apple_watch",
|
45
|
+
"appUpTimeMillis" => "app_up_time_millis",
|
46
|
+
"availableDiskBytes" => "available_disk_bytes",
|
47
|
+
"totalDiskBytes" => "total_disk_bytes",
|
48
|
+
"networkType" => "network_type",
|
49
|
+
"batteryPercentage" => "battery_percentage",
|
50
|
+
"screenWidth" => "screen_width",
|
51
|
+
"screenHeight" => "screen_height",
|
52
|
+
|
53
|
+
"build" => "build",
|
54
|
+
"tester" => "tester",
|
55
|
+
"screenshots" => "screenshots"
|
56
|
+
})
|
57
|
+
|
58
|
+
def self.type
|
59
|
+
return "betaFeedbacks"
|
60
|
+
end
|
61
|
+
|
62
|
+
#
|
63
|
+
# API
|
64
|
+
#
|
65
|
+
|
66
|
+
def self.all(filter: {}, includes: "tester,build,screenshots", limit: nil, sort: nil)
|
67
|
+
return Spaceship::ConnectAPI.get_beta_feedback(filter: filter, includes: includes, limit: limit, sort: sort)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require_relative '../model'
|
2
|
+
module Spaceship
|
3
|
+
class ConnectAPI
|
4
|
+
class BetaScreenshot
|
5
|
+
include Spaceship::ConnectAPI::Model
|
6
|
+
|
7
|
+
attr_accessor :image_assets
|
8
|
+
|
9
|
+
attr_mapping({
|
10
|
+
"imageAssets" => "image_assets"
|
11
|
+
})
|
12
|
+
|
13
|
+
def self.type
|
14
|
+
return "betaScreenshots"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -317,6 +317,15 @@ module Spaceship
|
|
317
317
|
params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
|
318
318
|
Client.instance.get("preReleaseVersions", params)
|
319
319
|
end
|
320
|
+
|
321
|
+
#
|
322
|
+
# betaFeedbacks (private API as of end 2019)
|
323
|
+
#
|
324
|
+
|
325
|
+
def get_beta_feedback(filter: {}, includes: nil, limit: nil, sort: nil)
|
326
|
+
params = Client.instance.build_params(filter: filter, includes: includes, limit: limit, sort: sort)
|
327
|
+
Client.instance.get("betaFeedbacks", params)
|
328
|
+
end
|
320
329
|
end
|
321
330
|
end
|
322
331
|
end
|
@@ -784,11 +784,8 @@ module Spaceship
|
|
784
784
|
end
|
785
785
|
|
786
786
|
def available_languages
|
787
|
-
r = request(:get, "ra/
|
788
|
-
|
789
|
-
response.flat_map { |region| region["storeFronts"] }
|
790
|
-
.flat_map { |storefront| storefront["supportedLocaleCodes"] }
|
791
|
-
.uniq
|
787
|
+
r = request(:get, "ra/ref")
|
788
|
+
parse_response(r, 'data')['detailLocales']
|
792
789
|
end
|
793
790
|
|
794
791
|
#####################################################
|
data/supply/lib/supply/client.rb
CHANGED
@@ -345,6 +345,7 @@ module Supply
|
|
345
345
|
ensure_active_edit!
|
346
346
|
|
347
347
|
all_tracks = call_google_api { client.list_edit_tracks(current_package_name, current_edit.id) }.tracks
|
348
|
+
all_tracks = [] unless all_tracks
|
348
349
|
|
349
350
|
if tracknames.length > 0
|
350
351
|
all_tracks = all_tracks.select { |track| tracknames.include?(track.track) }
|
@@ -24,6 +24,7 @@ module Supply
|
|
24
24
|
env_name: "SUPPLY_VERSION_CODE",
|
25
25
|
short_option: "-C",
|
26
26
|
optional: true,
|
27
|
+
type: Integer,
|
27
28
|
description: "Version code (used when updating rollout or promoting specific versions)",
|
28
29
|
default_value: CredentialsManager::AppfileConfig.try_fetch_value(:version_code),
|
29
30
|
default_value_dynamic: true),
|
@@ -42,7 +43,10 @@ module Supply
|
|
42
43
|
env_name: "SUPPLY_TRACK",
|
43
44
|
description: "The track of the application to use. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
|
44
45
|
default_value: Supply::Tracks::DEFAULT,
|
45
|
-
type: String
|
46
|
+
type: String,
|
47
|
+
verify_block: proc do |value|
|
48
|
+
UI.user_error!("'rollout' is no longer a valid track name - please use 'production' instead") if value.casecmp('rollout').zero?
|
49
|
+
end),
|
46
50
|
FastlaneCore::ConfigItem.new(key: :rollout,
|
47
51
|
short_option: "-r",
|
48
52
|
description: "The percentage of the user fraction when uploading to the rollout track",
|
@@ -207,7 +211,10 @@ module Supply
|
|
207
211
|
FastlaneCore::ConfigItem.new(key: :track_promote_to,
|
208
212
|
env_name: "SUPPLY_TRACK_PROMOTE_TO",
|
209
213
|
optional: true,
|
210
|
-
description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}"
|
214
|
+
description: "The track to promote to. The default available tracks are: #{Supply::Tracks::DEFAULTS.join(', ')}",
|
215
|
+
verify_block: proc do |value|
|
216
|
+
UI.user_error!("'rollout' is no longer a valid track name - please use 'production' instead") if value.casecmp('rollout').zero?
|
217
|
+
end),
|
211
218
|
FastlaneCore::ConfigItem.new(key: :validate_only,
|
212
219
|
env_name: "SUPPLY_VALIDATE_ONLY",
|
213
220
|
optional: true,
|
@@ -1,4 +1,5 @@
|
|
1
1
|
module Supply
|
2
|
+
# rubocop:disable Metrics/ClassLength
|
2
3
|
class Uploader
|
3
4
|
def perform_upload
|
4
5
|
FastlaneCore::PrintTable.print_values(config: Supply.config, hide_keys: [:issuer], mask_keys: [:json_key_data], title: "Summary for supply #{Fastlane::VERSION}")
|
@@ -14,40 +15,47 @@ module Supply
|
|
14
15
|
|
15
16
|
apk_version_codes.concat(Supply.config[:version_codes_to_retain]) if Supply.config[:version_codes_to_retain]
|
16
17
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
18
|
+
if !apk_version_codes.empty?
|
19
|
+
# Only update tracks if we have version codes
|
20
|
+
# update_track handle setting rollout if needed
|
21
|
+
# Updating a track with empty version codes can completely clear out a track
|
22
|
+
update_track(apk_version_codes)
|
23
|
+
else
|
24
|
+
# Only promote or rollout if we don't have version codes
|
25
|
+
if Supply.config[:track_promote_to]
|
26
|
+
promote_track
|
27
|
+
elsif !Supply.config[:rollout].nil? && Supply.config[:track].to_s != ""
|
28
|
+
update_rollout
|
29
|
+
end
|
23
30
|
end
|
24
31
|
|
25
|
-
|
32
|
+
perform_upload_meta(apk_version_codes)
|
26
33
|
|
27
34
|
if Supply.config[:validate_only]
|
28
|
-
UI.message("Validating all
|
35
|
+
UI.message("Validating all changes with Google Play...")
|
29
36
|
client.validate_current_edit!
|
30
37
|
UI.success("Successfully validated the upload to Google Play")
|
31
38
|
else
|
32
|
-
UI.message("Uploading all
|
39
|
+
UI.message("Uploading all changes to Google Play...")
|
33
40
|
client.commit_current_edit!
|
34
41
|
UI.success("Successfully finished the upload to Google Play")
|
35
42
|
end
|
36
|
-
|
37
|
-
perform_upload_meta(apk_version_codes)
|
38
43
|
end
|
39
44
|
|
40
45
|
def perform_upload_meta(version_codes)
|
41
|
-
client.begin_edit(package_name: Supply.config[:package_name])
|
42
|
-
|
43
46
|
if (!Supply.config[:skip_upload_metadata] || !Supply.config[:skip_upload_images] || !Supply.config[:skip_upload_changelogs] || !Supply.config[:skip_upload_screenshots]) && metadata_path
|
47
|
+
# Use version code from config if version codes is empty and no nil or empty string
|
44
48
|
version_codes = [Supply.config[:version_code]] if version_codes.empty?
|
49
|
+
version_codes = version_codes.reject do |version_code|
|
50
|
+
version_codes.to_s == ""
|
51
|
+
end
|
52
|
+
|
45
53
|
version_codes.each do |version_code|
|
46
54
|
UI.user_error!("Could not find folder #{metadata_path}") unless File.directory?(metadata_path)
|
47
55
|
|
48
56
|
track, release = fetch_track_and_release!(Supply.config[:track], version_code)
|
49
57
|
UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
|
50
|
-
UI.user_error!("
|
58
|
+
UI.user_error!("Could not find release for version code '#{version_code}' to update changelog") unless release
|
51
59
|
|
52
60
|
release_notes = []
|
53
61
|
all_languages.each do |language|
|
@@ -59,22 +67,12 @@ module Supply
|
|
59
67
|
upload_metadata(language, listing) unless Supply.config[:skip_upload_metadata]
|
60
68
|
upload_images(language) unless Supply.config[:skip_upload_images]
|
61
69
|
upload_screenshots(language) unless Supply.config[:skip_upload_screenshots]
|
62
|
-
release_notes << upload_changelog(language,
|
70
|
+
release_notes << upload_changelog(language, version_code) unless Supply.config[:skip_upload_changelogs]
|
63
71
|
end
|
64
72
|
|
65
73
|
upload_changelogs(release_notes, release, track) unless release_notes.empty?
|
66
74
|
end
|
67
75
|
end
|
68
|
-
|
69
|
-
if Supply.config[:validate_only]
|
70
|
-
UI.message("Validating all meta changes with Google Play...")
|
71
|
-
client.validate_current_edit!
|
72
|
-
UI.success("Successfully validated the upload to Google Play")
|
73
|
-
else
|
74
|
-
UI.message("Uploading all meta changes to Google Play...")
|
75
|
-
client.commit_current_edit!
|
76
|
-
UI.success("Successfully finished the upload to Google Play")
|
77
|
-
end
|
78
76
|
end
|
79
77
|
|
80
78
|
def fetch_track_and_release!(track, version_code, status = nil)
|
@@ -83,23 +81,25 @@ module Supply
|
|
83
81
|
|
84
82
|
track = tracks.first
|
85
83
|
releases = track.releases
|
84
|
+
|
86
85
|
releases = releases.select { |r| r.status == status } if status
|
86
|
+
releases = releases.select { |r| r.version_codes.map(&:to_s).include?(version_code.to_s) } if version_code
|
87
87
|
|
88
88
|
if releases.size > 1
|
89
89
|
UI.user_error!("More than one release found in this track. Please specify with the :version_code option to select a release.")
|
90
90
|
end
|
91
91
|
|
92
|
-
|
93
|
-
|
94
|
-
return track, release
|
92
|
+
return track, releases.first
|
95
93
|
end
|
96
94
|
|
97
95
|
def update_rollout
|
98
96
|
track, release = fetch_track_and_release!(Supply.config[:track], Supply.config[:version_code], Supply::ReleaseStatus::IN_PROGRESS)
|
97
|
+
UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
|
98
|
+
UI.user_error!("Unable to find the requested release on track - '#{Supply.config[:track]}'") unless release
|
99
|
+
|
99
100
|
version_code = release.version_codes.first
|
100
101
|
|
101
102
|
UI.message("Updating #{version_code}'s rollout to '#{Supply.config[:rollout]}' on track '#{Supply.config[:track]}'...")
|
102
|
-
UI.user_error!("Unable to find the requested track - '#{Supply.config[:track]}'") unless track
|
103
103
|
|
104
104
|
if track && release
|
105
105
|
completed = Supply.config[:rollout].to_f == 1
|
@@ -107,7 +107,7 @@ module Supply
|
|
107
107
|
release.status = Supply::ReleaseStatus::COMPLETED if completed
|
108
108
|
|
109
109
|
# Deleted other version codes if completed because only allowed on completed version in a release
|
110
|
-
track.releases.delete_if { |r| !(r.version_codes || []).include?(version_code) } if completed
|
110
|
+
track.releases.delete_if { |r| !(r.version_codes || []).map(&:to_s).include?(version_code) } if completed
|
111
111
|
else
|
112
112
|
UI.user_error!("Unable to find version to rollout in track '#{Supply.config[:track]}'")
|
113
113
|
end
|
@@ -129,7 +129,7 @@ module Supply
|
|
129
129
|
UI.user_error!("Cannot provide both apk(s) and aab - use `skip_upload_apk`, `skip_upload_aab`, or make sure to remove any existing .apk or .aab files that are no longer needed")
|
130
130
|
end
|
131
131
|
|
132
|
-
if Supply.config[:release_status] ==
|
132
|
+
if Supply.config[:release_status] == Supply::ReleaseStatus::DRAFT && Supply.config[:rollout]
|
133
133
|
UI.user_error!(%(Cannot specify rollout percentage when the release status is set to 'draft'))
|
134
134
|
end
|
135
135
|
|
@@ -147,7 +147,11 @@ module Supply
|
|
147
147
|
releases = track_from.releases
|
148
148
|
if Supply.config[:version_code].to_s != ""
|
149
149
|
releases = releases.select do |release|
|
150
|
-
release.version_codes.include?(Supply.config[:version_code])
|
150
|
+
release.version_codes.include?(Supply.config[:version_code].to_s)
|
151
|
+
end
|
152
|
+
else
|
153
|
+
releases = releases.select do |release|
|
154
|
+
release.status == Supply::ReleaseStatus::COMPLETED
|
151
155
|
end
|
152
156
|
end
|
153
157
|
|
@@ -157,9 +161,17 @@ module Supply
|
|
157
161
|
UI.user_error!("Track '#{Supply.config[:track]}' has more than one release - use :version_code to filter the release to promote")
|
158
162
|
end
|
159
163
|
|
160
|
-
release =
|
164
|
+
release = releases.first
|
161
165
|
track_to = client.tracks(Supply.config[:track_promote_to]).first
|
162
166
|
|
167
|
+
if Supply.config[:rollout]
|
168
|
+
release.status = Supply::ReleaseStatus::IN_PROGRESS
|
169
|
+
release.user_fraction = Supply.config[:rollout]
|
170
|
+
else
|
171
|
+
release.status = Supply::ReleaseStatus::COMPLETED
|
172
|
+
release.user_fraction = nil
|
173
|
+
end
|
174
|
+
|
163
175
|
if track_to
|
164
176
|
# Its okay to set releases to an array containing the newest release
|
165
177
|
# Google Play will keep previous releases there this release is a partial rollout
|
@@ -174,14 +186,22 @@ module Supply
|
|
174
186
|
client.update_track(Supply.config[:track_promote_to], track_to)
|
175
187
|
end
|
176
188
|
|
177
|
-
def upload_changelog(language,
|
178
|
-
UI.user_error!("Cannot find changelog because no version
|
189
|
+
def upload_changelog(language, version_code)
|
190
|
+
UI.user_error!("Cannot find changelog because no version code given - please specify :version_code") unless version_code
|
179
191
|
|
180
|
-
path = File.join(Supply.config[:metadata_path], language, Supply::CHANGELOGS_FOLDER_NAME, "#{
|
192
|
+
path = File.join(Supply.config[:metadata_path], language, Supply::CHANGELOGS_FOLDER_NAME, "#{version_code}.txt")
|
181
193
|
changelog_text = ''
|
182
194
|
if File.exist?(path)
|
183
|
-
UI.message("Updating changelog for '#{
|
195
|
+
UI.message("Updating changelog for '#{version_code}' and language '#{language}'...")
|
184
196
|
changelog_text = File.read(path, encoding: 'UTF-8')
|
197
|
+
else
|
198
|
+
default_changelog_path = File.join(Supply.config[:metadata_path], language, Supply::CHANGELOGS_FOLDER_NAME, "default.txt")
|
199
|
+
if File.exist?(default_changelog_path)
|
200
|
+
UI.message("Updating changelog for '#{version_code}' and language '#{language}' to default changelog...")
|
201
|
+
changelog_text = File.read(default_changelog_path, encoding: 'UTF-8')
|
202
|
+
else
|
203
|
+
UI.message("Could not find changelog for '#{version_code}' and language '#{language}' at path #{path}...")
|
204
|
+
end
|
185
205
|
end
|
186
206
|
|
187
207
|
AndroidPublisher::LocalizedText.new({
|
@@ -336,8 +356,11 @@ module Supply
|
|
336
356
|
)
|
337
357
|
|
338
358
|
if Supply.config[:rollout]
|
339
|
-
|
340
|
-
|
359
|
+
rollout = Supply.config[:rollout].to_f
|
360
|
+
if rollout > 0 && rollout < 1
|
361
|
+
track_release.status = Supply::ReleaseStatus::IN_PROGRESS
|
362
|
+
track_release.user_fraction = rollout
|
363
|
+
end
|
341
364
|
end
|
342
365
|
|
343
366
|
tracks = client.tracks(Supply.config[:track])
|
@@ -421,4 +444,5 @@ module Supply
|
|
421
444
|
end
|
422
445
|
end
|
423
446
|
end
|
447
|
+
# rubocop:enable Metrics/ClassLength
|
424
448
|
end
|
metadata
CHANGED
@@ -1,33 +1,33 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.138.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Aaron Brager
|
8
|
-
- Matthew Ellis
|
9
|
-
- Josh Holtz
|
10
|
-
- Stefan Natchev
|
11
7
|
- Jorge Revuelta H
|
12
|
-
- Helmut Januschka
|
13
|
-
- Fumiya Nakamura
|
14
|
-
- Manu Wallner
|
15
|
-
- Iulian Onofrei
|
16
|
-
- Felix Krause
|
17
8
|
- Joshua Liebowitz
|
18
|
-
-
|
9
|
+
- Josh Holtz
|
19
10
|
- Danielle Tomlinson
|
20
|
-
- Maksym Grebenets
|
21
|
-
- Jérôme Lacoste
|
22
|
-
- Jimmy Dee
|
23
|
-
- Andrew McBurney
|
24
11
|
- Kohki Miki
|
25
12
|
- Luka Mirosevic
|
13
|
+
- Iulian Onofrei
|
14
|
+
- Stefan Natchev
|
15
|
+
- Maksym Grebenets
|
16
|
+
- Manu Wallner
|
17
|
+
- Aaron Brager
|
18
|
+
- Matthew Ellis
|
19
|
+
- Felix Krause
|
26
20
|
- Jan Piotrowski
|
21
|
+
- Jérôme Lacoste
|
22
|
+
- Helmut Januschka
|
23
|
+
- Fumiya Nakamura
|
24
|
+
- Andrew McBurney
|
25
|
+
- Olivier Halligon
|
26
|
+
- Jimmy Dee
|
27
27
|
autorequire:
|
28
28
|
bindir: bin
|
29
29
|
cert_chain: []
|
30
|
-
date: 2019-
|
30
|
+
date: 2019-12-19 00:00:00.000000000 Z
|
31
31
|
dependencies:
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
33
|
name: slack-notifier
|
@@ -55,7 +55,7 @@ dependencies:
|
|
55
55
|
requirements:
|
56
56
|
- - ">="
|
57
57
|
- !ruby/object:Gem::Version
|
58
|
-
version: 1.
|
58
|
+
version: 1.13.0
|
59
59
|
- - "<"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 2.0.0
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.13.0
|
69
69
|
- - "<"
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: 2.0.0
|
@@ -325,7 +325,7 @@ dependencies:
|
|
325
325
|
requirements:
|
326
326
|
- - ">="
|
327
327
|
- !ruby/object:Gem::Version
|
328
|
-
version: 0.
|
328
|
+
version: 0.71.0
|
329
329
|
- - "<"
|
330
330
|
- !ruby/object:Gem::Version
|
331
331
|
version: 1.0.0
|
@@ -335,7 +335,7 @@ dependencies:
|
|
335
335
|
requirements:
|
336
336
|
- - ">="
|
337
337
|
- !ruby/object:Gem::Version
|
338
|
-
version: 0.
|
338
|
+
version: 0.71.0
|
339
339
|
- - "<"
|
340
340
|
- !ruby/object:Gem::Version
|
341
341
|
version: 1.0.0
|
@@ -1420,7 +1420,6 @@ files:
|
|
1420
1420
|
- gym/lib/assets/GymfileTemplate.swift
|
1421
1421
|
- gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh
|
1422
1422
|
- gym/lib/gym.rb
|
1423
|
-
- gym/lib/gym/.module.rb.swp
|
1424
1423
|
- gym/lib/gym/code_signing_mapping.rb
|
1425
1424
|
- gym/lib/gym/commands_generator.rb
|
1426
1425
|
- gym/lib/gym/detect_values.rb
|
@@ -1608,7 +1607,9 @@ files:
|
|
1608
1607
|
- spaceship/lib/spaceship/connect_api/models/beta_app_review_submission.rb
|
1609
1608
|
- spaceship/lib/spaceship/connect_api/models/beta_build_localization.rb
|
1610
1609
|
- spaceship/lib/spaceship/connect_api/models/beta_build_metric.rb
|
1610
|
+
- spaceship/lib/spaceship/connect_api/models/beta_feedback.rb
|
1611
1611
|
- spaceship/lib/spaceship/connect_api/models/beta_group.rb
|
1612
|
+
- spaceship/lib/spaceship/connect_api/models/beta_screenshot.rb
|
1612
1613
|
- spaceship/lib/spaceship/connect_api/models/beta_tester.rb
|
1613
1614
|
- spaceship/lib/spaceship/connect_api/models/beta_tester_metric.rb
|
1614
1615
|
- spaceship/lib/spaceship/connect_api/models/build.rb
|
@@ -1732,9 +1733,6 @@ files:
|
|
1732
1733
|
- spaceship/lib/spaceship/ui.rb
|
1733
1734
|
- supply/README.md
|
1734
1735
|
- supply/lib/supply.rb
|
1735
|
-
- supply/lib/supply/.client.rb.swp
|
1736
|
-
- supply/lib/supply/.options.rb.swp
|
1737
|
-
- supply/lib/supply/.uploader.rb.swp
|
1738
1736
|
- supply/lib/supply/apk_listing.rb
|
1739
1737
|
- supply/lib/supply/client.rb
|
1740
1738
|
- supply/lib/supply/commands_generator.rb
|