From 2f949adc6eacea1eb2e374e4da18d0e9620dfe1c Mon Sep 17 00:00:00 2001 From: Drew Heavner Date: Thu, 10 Dec 2020 11:36:45 -0500 Subject: [PATCH] Removed call to developer api to pull the releaseName for the edit and instead used result from actual update to the track. Added more debug logging. --- lib/edits.js | 31 ++++++++++++++++--------------- lib/main.js | 4 ++-- package.json | 2 +- src/edits.ts | 30 ++++++++++++++++-------------- src/main.ts | 4 ++-- 5 files changed, 37 insertions(+), 34 deletions(-) diff --git a/lib/edits.js b/lib/edits.js index 4bc1e2a0..46103fd3 100644 --- a/lib/edits.js +++ b/lib/edits.js @@ -60,7 +60,7 @@ function uploadToPlayStore(options, releaseFiles) { return Promise.reject(reason); }); // Upload artifacts to Google Play, and store their version codes - var versionCodes = new Array(); + const versionCodes = new Array(); for (const releaseFile of releaseFiles) { core.debug(`Uploading ${releaseFile}`); const versionCode = yield uploadRelease(appEdit.data, options, releaseFile).catch(reason => { @@ -71,6 +71,14 @@ function uploadToPlayStore(options, releaseFiles) { } // Add the uploaded artifacts to the Edit track const track = yield addReleasesToTrack(appEdit.data, options, versionCodes); + core.debug(`Track: ${track}`); + // Extract the release name for the response + let trackReleaseName; + if (track.releases && track.releases.length > 0) { + const trackRelease = track.releases[0]; + trackReleaseName = trackRelease.name; + core.debug(`Pulled track release name from update: ${trackReleaseName}`); + } // Commit the pending Edit const res = yield androidPublisher.edits.commit({ auth: options.auth, @@ -80,8 +88,13 @@ function uploadToPlayStore(options, releaseFiles) { // Simple check to see whether commit was successful if (res.data.id != null) { core.debug(`Successfully committed ${res.data.id}`); - const name = options.name || (yield getPublishedReleaseName(res.data, options)); - core.setOutput("releaseName", name); + const name = options.name || trackReleaseName; + if (name) { + core.setOutput("releaseName", name); + } + else { + core.debug("Unable to set 'releaseName' output."); + } return Promise.resolve(res.data.id); } else { @@ -251,15 +264,3 @@ function uploadBundle(appEdit, options, bundleReleaseFile) { return res.data; }); } -function getPublishedReleaseName(appEdit, options) { - return __awaiter(this, void 0, void 0, function* () { - const track = yield androidPublisher.edits.tracks.get({ - auth: options.auth, - packageName: options.applicationId, - editId: appEdit.id, - track: options.track - }); - const release = track.data.releases[0]; // We only ever create one release, so grab the first one - return release.name; - }); -} diff --git a/lib/main.js b/lib/main.js index 449be056..6e6051bf 100644 --- a/lib/main.js +++ b/lib/main.js @@ -128,7 +128,7 @@ function run() { return; } const authClient = yield auth.getClient(); - yield edits_1.uploadToPlayStore({ + const result = yield edits_1.uploadToPlayStore({ auth: authClient, applicationId: packageName, track: track, @@ -138,7 +138,7 @@ function run() { mappingFile: mappingFile, name: releaseName }, validatedReleaseFiles); - console.log(`Finished uploading to the Play Store`); + console.log(`Finished uploading to the Play Store: ${result}`); } catch (error) { core.setFailed(error.message); diff --git a/package.json b/package.json index 228d0bb2..fce9e177 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "upload-google-play", - "version": "1.0.9", + "version": "1.0.10", "private": true, "description": "Upload an Android release (.apk or .aab) to Google Play Console", "main": "lib/main.js", diff --git a/src/edits.ts b/src/edits.ts index cb336fe1..1b50184a 100644 --- a/src/edits.ts +++ b/src/edits.ts @@ -54,7 +54,7 @@ export async function uploadToPlayStore(options: EditOptions, releaseFiles: stri }); // Upload artifacts to Google Play, and store their version codes - var versionCodes = new Array(); + const versionCodes = new Array(); for (const releaseFile of releaseFiles) { core.debug(`Uploading ${releaseFile}`); const versionCode = await uploadRelease(appEdit.data, options, releaseFile).catch(reason => { @@ -66,6 +66,15 @@ export async function uploadToPlayStore(options: EditOptions, releaseFiles: stri // Add the uploaded artifacts to the Edit track const track = await addReleasesToTrack(appEdit.data, options, versionCodes); + core.debug(`Track: ${track}`); + + // Extract the release name for the response + let trackReleaseName: string | undefined | null; + if (track.releases && track.releases.length > 0) { + const trackRelease = track.releases[0]; + trackReleaseName = trackRelease.name; + core.debug(`Pulled track release name from update: ${trackReleaseName}`) + } // Commit the pending Edit const res = await androidPublisher.edits.commit({ @@ -77,8 +86,12 @@ export async function uploadToPlayStore(options: EditOptions, releaseFiles: stri // Simple check to see whether commit was successful if (res.data.id != null) { core.debug(`Successfully committed ${res.data.id}`); - const name = options.name || (await getPublishedReleaseName(res.data, options)); - core.setOutput("releaseName", name) + const name = options.name || trackReleaseName; + if (name) { + core.setOutput("releaseName", name); + } else { + core.debug("Unable to set 'releaseName' output."); + } return Promise.resolve(res.data.id!); } else { core.setFailed(`Error ${res.status}: ${res.statusText}`); @@ -239,15 +252,4 @@ async function uploadBundle(appEdit: AppEdit, options: EditOptions, bundleReleas }); return res.data -} - -async function getPublishedReleaseName(appEdit: AppEdit, options: EditOptions): Promise { - const track = await androidPublisher.edits.tracks.get({ - auth: options.auth, - packageName: options.applicationId, - editId: appEdit.id!, - track: options.track - }) - const release = track.data.releases![0] // We only ever create one release, so grab the first one - return release.name } \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 8c5937c8..1dc6b18d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -106,7 +106,7 @@ async function run() { const authClient = await auth.getClient(); - await uploadToPlayStore({ + const result = await uploadToPlayStore({ auth: authClient, applicationId: packageName, track: track, @@ -117,7 +117,7 @@ async function run() { name: releaseName }, validatedReleaseFiles); - console.log(`Finished uploading to the Play Store`) + console.log(`Finished uploading to the Play Store: ${result}`) } catch (error) { core.setFailed(error.message) }