supply 0.5.3 → 0.6.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 +1 -3
- data/lib/supply/client.rb +4 -1
- data/lib/supply/options.rb +16 -1
- data/lib/supply/uploader.rb +34 -13
- data/lib/supply/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfce9589c181ae3e7fee0c3424ab0f3edcec5a79
|
4
|
+
data.tar.gz: 227bf608c6cf1d5971e2848de19718ee718496a0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8ea1590b53f11f6eceb347ffa3ebe45f0828d255b4dc94bece5e9392dd5b326160feffb4bdcc62f50302a265a67b221eabd98205b809c1b6553ddfa4889fd52f
|
7
|
+
data.tar.gz: 55f81de2d3654faf784bbe9ffa835753fb4576a0cdc0a058909596a4b916c84a33f2eabf595ab715e5b14884495928c570d9dc00693b71a05618f0c5f5436011
|
data/README.md
CHANGED
@@ -76,13 +76,11 @@ Setup consists of setting up your Google Developers Service Account
|
|
76
76
|
- Open the [Google Play Console](https://play.google.com/apps/publish/)
|
77
77
|
- Select **Settings** tab, followed by the **API access** tab
|
78
78
|
- Click the **Create Service Account** button and follow the **Google Developers Console** link in the dialog
|
79
|
-
- Click **
|
79
|
+
- Click **Create credentials** and select **Service account**
|
80
80
|
- Select **JSON** as the Key type and click **Create**
|
81
81
|
- Make a note of the file name of the JSON file downloaded to your computer, and close the dialog
|
82
|
-
- Make a note of the **Email address** under **Service accounts** - this is the user which you will need later
|
83
82
|
- Back on the Google Play developer console, click **Done** to close the dialog
|
84
83
|
- Click on **Grant Access** for the newly added service account
|
85
|
-
- In the **Invite a New User** dialog, paste the service account email address you noted earlier into the **Email address** field
|
86
84
|
- Choose **Release Manager** from the **Role** dropdown and click **Send Invitation** to close the dialog
|
87
85
|
|
88
86
|
### Migrating Google credential format (from .p12 key file to .json)
|
data/lib/supply/client.rb
CHANGED
@@ -193,13 +193,16 @@ module Supply
|
|
193
193
|
return result_upload.version_code
|
194
194
|
end
|
195
195
|
|
196
|
+
# Updates the track for the provided version code(s)
|
196
197
|
def update_track(track, rollout, apk_version_code)
|
197
198
|
ensure_active_edit!
|
198
199
|
|
200
|
+
track_version_codes = apk_version_code.kind_of?(Array) ? apk_version_code : [apk_version_code]
|
201
|
+
|
199
202
|
track_body = Androidpublisher::Track.new({
|
200
203
|
track: track,
|
201
204
|
user_fraction: rollout,
|
202
|
-
version_codes:
|
205
|
+
version_codes: track_version_codes
|
203
206
|
})
|
204
207
|
|
205
208
|
android_publisher.update_track(
|
data/lib/supply/options.rb
CHANGED
@@ -67,11 +67,26 @@ module Supply
|
|
67
67
|
env_name: "SUPPLY_APK",
|
68
68
|
description: "Path to the APK file to upload",
|
69
69
|
short_option: "-b",
|
70
|
+
conflicting_options: [:apk_paths],
|
70
71
|
default_value: Dir["*.apk"].last || Dir[File.join("app", "build", "outputs", "apk", "app-Release.apk")].last,
|
71
72
|
optional: true,
|
72
73
|
verify_block: proc do |value|
|
73
74
|
UI.user_error! "Could not find apk file at path '#{value}'" unless File.exist?(value)
|
74
|
-
UI.user_error! "apk file is not an apk" unless value.end_with?(
|
75
|
+
UI.user_error! "apk file is not an apk" unless value.end_with?('.apk')
|
76
|
+
end),
|
77
|
+
FastlaneCore::ConfigItem.new(key: :apk_paths,
|
78
|
+
env_name: "SUPPLY_APK_PATHS",
|
79
|
+
conflicting_options: [:apk],
|
80
|
+
optional: true,
|
81
|
+
type: Array,
|
82
|
+
description: "An array of paths to APK files to upload",
|
83
|
+
short_option: "-u",
|
84
|
+
verify_block: proc do |value|
|
85
|
+
UI.user_error!("Could not evaluate array from '#{value}'") unless value.kind_of?(Array)
|
86
|
+
value.each do |path|
|
87
|
+
UI.user_error! "Could not find apk file at path '#{path}'" unless File.exist?(path)
|
88
|
+
UI.user_error! "file at path '#{path}' is not an apk" unless path.end_with?('.apk')
|
89
|
+
end
|
75
90
|
end),
|
76
91
|
FastlaneCore::ConfigItem.new(key: :skip_upload_apk,
|
77
92
|
env_name: "SUPPLY_SKIP_UPLOAD_APK",
|
data/lib/supply/uploader.rb
CHANGED
@@ -5,7 +5,7 @@ module Supply
|
|
5
5
|
|
6
6
|
client.begin_edit(package_name: Supply.config[:package_name])
|
7
7
|
|
8
|
-
UI.user_error!("No local metadata found, make sure to run `supply init` to setup supply") unless metadata_path || Supply.config[:apk]
|
8
|
+
UI.user_error!("No local metadata found, make sure to run `supply init` to setup supply") unless metadata_path || Supply.config[:apk] || Supply.config[:apk_paths]
|
9
9
|
|
10
10
|
if metadata_path
|
11
11
|
UI.user_error!("Could not find folder #{metadata_path}") unless File.directory? metadata_path
|
@@ -23,7 +23,7 @@ module Supply
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
|
26
|
+
upload_binaries unless Supply.config[:skip_upload_apk]
|
27
27
|
|
28
28
|
UI.message("Uploading all changes to Google Play...")
|
29
29
|
client.commit_current_edit!
|
@@ -88,19 +88,33 @@ module Supply
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
-
def
|
92
|
-
|
91
|
+
def upload_binaries
|
92
|
+
apk_paths = [Supply.config[:apk]] unless (apk_paths = Supply.config[:apk_paths])
|
93
93
|
|
94
|
+
apk_version_codes = []
|
95
|
+
|
96
|
+
apk_paths.each do |apk_path|
|
97
|
+
apk_version_codes.push(upload_binary_data(apk_path))
|
98
|
+
end
|
99
|
+
|
100
|
+
update_track(apk_version_codes)
|
101
|
+
end
|
102
|
+
|
103
|
+
private
|
104
|
+
|
105
|
+
##
|
106
|
+
# Upload binary apk and obb and corresponding change logs with client
|
107
|
+
#
|
108
|
+
# @param [String] apk_path
|
109
|
+
# Path of the apk file to upload.
|
110
|
+
#
|
111
|
+
# @return [Integer] The apk version code returned after uploading, or nil if there was a problem
|
112
|
+
def upload_binary_data(apk_path)
|
113
|
+
apk_version_code = nil
|
94
114
|
if apk_path
|
95
115
|
UI.message("Preparing apk at path '#{apk_path}' for upload...")
|
96
116
|
apk_version_code = client.upload_apk(apk_path)
|
97
|
-
|
98
|
-
UI.message("Updating track '#{Supply.config[:track]}'...")
|
99
|
-
if Supply.config[:track].eql? "rollout"
|
100
|
-
client.update_track(Supply.config[:track], Supply.config[:rollout], apk_version_code)
|
101
|
-
else
|
102
|
-
client.update_track(Supply.config[:track], 1.0, apk_version_code)
|
103
|
-
end
|
117
|
+
UI.user_error!("Could not upload #{apk_path}") unless apk_version_code
|
104
118
|
|
105
119
|
upload_obbs(apk_path, apk_version_code)
|
106
120
|
|
@@ -110,13 +124,20 @@ module Supply
|
|
110
124
|
upload_changelog(language, apk_version_code)
|
111
125
|
end
|
112
126
|
end
|
113
|
-
|
114
127
|
else
|
115
128
|
UI.message("No apk file found, you can pass the path to your apk using the `apk` option")
|
116
129
|
end
|
130
|
+
apk_version_code
|
117
131
|
end
|
118
132
|
|
119
|
-
|
133
|
+
def update_track(apk_version_codes)
|
134
|
+
UI.message("Updating track '#{Supply.config[:track]}'...")
|
135
|
+
if Supply.config[:track].eql? "rollout"
|
136
|
+
client.update_track(Supply.config[:track], Supply.config[:rollout], apk_version_code)
|
137
|
+
else
|
138
|
+
client.update_track(Supply.config[:track], 1.0, apk_version_codes)
|
139
|
+
end
|
140
|
+
end
|
120
141
|
|
121
142
|
def all_languages
|
122
143
|
Dir.foreach(metadata_path).sort { |x, y| x <=> y }
|
data/lib/supply/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: supply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Felix Krause
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-04-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-api-client
|