diff --git a/README.md b/README.md index c903bd7c..d6e8e3ec 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ This extension supports Visual Studio Team Services (VSTS) and Team Foundation S In order to automate the release of app updates to the Google Play store, you need to have manually released at least one version through the [Google Play Developer Console](https://play.google.com/apps/publish/). Additionally, you need to create a service account that is authorized to manage your app(s) releases on your behalf and can be used to authenticate "headlessly" from your VSTS build/release definitions. If you haven't already done so, then perform the following steps to create a service account: > For a more in depth guide [click this link](https://docs.microsoft.com/en-us/appcenter/distribution/stores/googleplay). -1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Settings** in the left-hand navigation menu (the gear icon) +1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Setup** in the left-hand navigation menu (the gear icon) 2. Select the **API access** setting and click the **Create Service Account** button underneath the **Service Accounts** section @@ -31,15 +31,11 @@ In order to automate the release of app updates to the Google Play store, you ne 6. Save the provided JSON file somewhere safe and memorable. You'll be using it later. -7. Go to the **IAM** page and click on the **Add** button. +7. Back in the **Google Play Developer Console**, click the **Done** button to close the modal -8. Select the newly created service account in the **New members** box and assign it the **Service Account User Role**, then click **Save**. +8. Click the **Grant access** button in the row associated with the service account you just created. -9. Back in the **Google Play Developer Console**, click the **Done** button to close the modal - -10. Click the **Grant access** button in the row associated with the service account you just created. - -11. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button +9. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button To take advantage of the metadata updating capabilities, files need to be organized using fastlane’s [supply tool](https://github.com/fastlane/fastlane/tree/master/supply#readme) format: @@ -215,7 +211,7 @@ $(Specified Directory) 8. **Deobfuscation path** *(File path, Required if visible)* - The path to the native debug symbols zip archive to upload. Glob patterns are supported. Only visible if `Upload native debug symbols` is enabled. -9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. +9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. ![Send Changes To Review](images/send-changes-to-review.png) @@ -333,6 +329,8 @@ Allows you to promote a previously released APK from one track to another (e.g. 5. **Rollout Fraction** *(String, Required if visible)* - The percentage of users to roll the app out to, specified as a number between 0 and 1 (e.g. `0.5` == `50%` of users). If you use rollout, and want to be able to automate the process of increasing the rollout over time, refer to the `Google Play - Increase Rollout` task. +6. **Clean Source Track** *(Boolean, Optional)* - Clean the source track. Default value is _true_. + ### Google Play - Increase Rollout Allows you to increase the rollout percentage of an app that was previously released to the **Rollout** track, and includes the following options: @@ -448,3 +446,4 @@ $(Specified Directory) Google Play and the Google Play logo are trademarks of Google Inc. This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +Google Play and the Google Play logo are trademarks of Google Inc. diff --git a/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson b/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson index 67a99cf6..5f29a360 100644 --- a/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/GooglePlayPromoteV3/Strings/resources.resjson/en-US/resources.resjson @@ -20,8 +20,8 @@ "loc.input.help.rolloutToUserFraction": "Promote the release to a percentage of users. Use the 'Google Play - Increase Rollout' task to increase the rollout within a track.", "loc.input.label.userFraction": "Rollout fraction", "loc.input.help.userFraction": "The percentage of users the specified APK will be released to for the specified 'Destination track'. It can be increased later with the 'Google Play - Increase Rollout' task.", - "loc.input.label.сleanTheSourceTrack": "Сlean the source track", - "loc.input.help.сleanTheSourceTrack": "Source track will be cleared", + "loc.input.label.cleanSourceTrack": "Clean the source track", + "loc.input.help.cleanSourceTrack": "Source track will be cleared", "loc.messages.InvalidAuthFile": "Specified auth file was invalid", "loc.messages.InvalidAuthFilewithName": "%s was not a valid auth file", "loc.messages.JsonKeyFileNotFound": "The service account JSON key file could not be found.", diff --git a/Tasks/GooglePlayPromoteV3/google-play-promote.ts b/Tasks/GooglePlayPromoteV3/google-play-promote.ts index 83b5b9de..7bb0f2ab 100644 --- a/Tasks/GooglePlayPromoteV3/google-play-promote.ts +++ b/Tasks/GooglePlayPromoteV3/google-play-promote.ts @@ -33,7 +33,7 @@ async function run() { const destinationTrack: string = tl.getInput('destinationTrack', true); const userFractionSupplied: boolean = tl.getBoolInput('rolloutToUserFraction'); const userFraction: number = Number(userFractionSupplied ? tl.getInput('userFraction', false) : 1.0); - const сleanSourceTrack: boolean = tl.getBoolInput('сleanTheSourceTrack'); + const cleanSourceTrack: boolean = tl.getBoolInput('cleanSourceTrack'); const versionCode: string = tl.getInput('versionCode', false); // Constants @@ -73,7 +73,7 @@ async function run() { track = await googleutil.updateTrack(edits, packageName, destinationTrack, versionNumber, userFraction, releaseNotes); tl.debug(`Update track: ${JSON.stringify(track)}`); - if (сleanSourceTrack) { + if (cleanSourceTrack) { console.log(tl.loc('CleanTrack', sourceTrack)); track = await googleutil.updateTrack(edits, packageName, sourceTrack, [], userFraction); tl.debug(`Update clean track: ${JSON.stringify(track)}`); diff --git a/Tasks/GooglePlayPromoteV3/task.json b/Tasks/GooglePlayPromoteV3/task.json index 91ebabb4..b91cf725 100644 --- a/Tasks/GooglePlayPromoteV3/task.json +++ b/Tasks/GooglePlayPromoteV3/task.json @@ -14,7 +14,7 @@ "version": { "Major": "3", "Minor": "211", - "Patch": "0" + "Patch": "1" }, "minimumAgentVersion": "2.182.1", "instanceNameFormat": "Promote $(packageName) from $(sourceTrack) to $(destinationTrack)", @@ -118,9 +118,12 @@ "visibleRule": "rolloutToUserFraction = true" }, { - "name": "сleanTheSourceTrack", + "name": "cleanSourceTrack", + "aliases": [ + "сleanTheSourceTrack" + ], "type": "boolean", - "label": "Сlean the source track", + "label": "Clean the source track", "defaultValue": true, "required": false, "helpMarkDown": "Source track will be cleared" diff --git a/Tasks/GooglePlayPromoteV3/task.loc.json b/Tasks/GooglePlayPromoteV3/task.loc.json index e2a05e42..6215d17d 100644 --- a/Tasks/GooglePlayPromoteV3/task.loc.json +++ b/Tasks/GooglePlayPromoteV3/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": "3", "Minor": "211", - "Patch": "0" + "Patch": "1" }, "minimumAgentVersion": "2.182.1", "instanceNameFormat": "ms-resource:loc.instanceNameFormat", @@ -118,12 +118,15 @@ "visibleRule": "rolloutToUserFraction = true" }, { - "name": "сleanTheSourceTrack", + "name": "cleanSourceTrack", + "aliases": [ + "сleanTheSourceTrack" + ], "type": "boolean", - "label": "ms-resource:loc.input.label.сleanTheSourceTrack", + "label": "ms-resource:loc.input.label.cleanSourceTrack", "defaultValue": true, "required": false, - "helpMarkDown": "ms-resource:loc.input.help.сleanTheSourceTrack" + "helpMarkDown": "ms-resource:loc.input.help.cleanSourceTrack" } ], "execution": { diff --git a/baseREADME.md b/baseREADME.md index 419697e4..d4f8860e 100644 --- a/baseREADME.md +++ b/baseREADME.md @@ -1,5 +1,7 @@ # Visual Studio Team Services Extension for Google Play +[![Build status](https://dev.azure.com/mseng/AzureDevOps/_apis/build/status/CrossPlatform.google-play-vsts-extension.GitHub.CI)](https://dev.azure.com/mseng/AzureDevOps/_build/latest?definitionId=5350) + This extension contains a set of deployment tasks which allow you to automate the release, promotion and rollout of app updates to the Google Play store from your CI environment. This can reduce the effort needed to keep your internal test, alpha, beta, rollout and production deployments up-to-date, since you can simply push changes to the configured source control branches, and let your automated build take care of the rest. ## Prerequisites @@ -9,7 +11,7 @@ This extension supports Visual Studio Team Services (VSTS) and Team Foundation S In order to automate the release of app updates to the Google Play store, you need to have manually released at least one version through the [Google Play Developer Console](https://play.google.com/apps/publish/). Additionally, you need to create a service account that is authorized to manage your app(s) releases on your behalf and can be used to authenticate "headlessly" from your VSTS build/release definitions. If you haven't already done so, then perform the following steps to create a service account: > For a more in depth guide [click this link](https://docs.microsoft.com/en-us/appcenter/distribution/stores/googleplay). -1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Settings** in the left-hand navigation menu (the gear icon) +1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Setup** in the left-hand navigation menu (the gear icon) 2. Select the **API access** setting and click the **Create Service Account** button underneath the **Service Accounts** section @@ -319,6 +321,8 @@ Allows you to promote a previously released APK from one track to another (e.g. 5. **Rollout Fraction** *(String, Required if visible)* - The percentage of users to roll the app out to, specified as a number between 0 and 1 (e.g. `0.5` == `50%` of users). If you use rollout, and want to be able to automate the process of increasing the rollout over time, refer to the `Google Play - Increase Rollout` task. +6. **Clean Source Track** *(Boolean, Optional)* - Clean the source track. Default value is _true_. + ### Google Play - Increase Rollout Allows you to increase the rollout percentage of an app that was previously released to the **Rollout** track, and includes the following options: diff --git a/docs/vsts-README.md b/docs/vsts-README.md index 98bbd3e1..1368f46e 100644 --- a/docs/vsts-README.md +++ b/docs/vsts-README.md @@ -1,5 +1,7 @@ # Visual Studio Team Services Extension for Google Play +[![Build status](https://dev.azure.com/mseng/AzureDevOps/_apis/build/status/CrossPlatform.google-play-vsts-extension.GitHub.CI)](https://dev.azure.com/mseng/AzureDevOps/_build/latest?definitionId=5350) + This extension contains a set of deployment tasks which allow you to automate the release, promotion and rollout of app updates to the Google Play store from your CI environment. This can reduce the effort needed to keep your internal test, alpha, beta, rollout and production deployments up-to-date, since you can simply push changes to the configured source control branches, and let your automated build take care of the rest. ## Prerequisites @@ -9,7 +11,7 @@ This extension supports Visual Studio Team Services (VSTS) and Team Foundation S In order to automate the release of app updates to the Google Play store, you need to have manually released at least one version through the [Google Play Developer Console](https://play.google.com/apps/publish/). Additionally, you need to create a service account that is authorized to manage your app(s) releases on your behalf and can be used to authenticate "headlessly" from your VSTS build/release definitions. If you haven't already done so, then perform the following steps to create a service account: > For a more in depth guide [click this link](https://docs.microsoft.com/en-us/appcenter/distribution/stores/googleplay). -1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Settings** in the left-hand navigation menu (the gear icon) +1. Login to the [Google Play Developer Console](https://play.google.com/apps/publish/) and select **Setup** in the left-hand navigation menu (the gear icon) 2. Select the **API access** setting and click the **Create Service Account** button underneath the **Service Accounts** section @@ -21,15 +23,11 @@ In order to automate the release of app updates to the Google Play store, you ne 6. Save the provided JSON file somewhere safe and memorable. You'll be using it later. -7. Go to the **IAM** page and click on the **Add** button. - -8. Select the newly created service account in the **New members** box and assign it the **Service Account User Role**, then click **Save**. - -9. Back in the **Google Play Developer Console**, click the **Done** button to close the modal +7. Back in the **Google Play Developer Console**, click the **Done** button to close the modal -10. Click the **Grant access** button in the row associated with the service account you just created. +8. Click the **Grant access** button in the row associated with the service account you just created. -11. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button +9. Ensure that the **Role** is set to **Release Manager** and then click the **Add user** button To take advantage of the metadata updating capabilities, files need to be organized using fastlane’s [supply tool](https://github.com/fastlane/fastlane/tree/master/supply#readme) format: @@ -205,7 +203,7 @@ $(Specified Directory) 8. **Deobfuscation path** *(File path, Required if visible)* - The path to the native debug symbols zip archive to upload. Glob patterns are supported. Only visible if `Upload native debug symbols` is enabled. -9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. +9. **Send changes to review** *(Boolean, Optional)* - Select this option to send changes for review in GooglePlay Console. If changes are already sent for review automatically, you shouldn't select this option. ![Send Changes To Review](images/send-changes-to-review.png) @@ -213,7 +211,7 @@ $(Specified Directory) ![Send Changes To Review](images/send-changes-to-review.png) -11. **Replace version codes** *(String, Required)* - You may specify which APK version codes should be replaced in the track with this deployment. Available options are: *All*, *List* - comma separated list of version codes, *Regular expression* - a regular expression pattern to select a list of APK version codes to be removed from the track with this deployment, e.g. _.\\*12?(3|4)?5_ +11. **Replace version codes** *(String, Required)* - You may specify which APK version codes should be replaced in the track with this deployment. Available options are: *All*, *List* - comma separated list of version codes, *Regular expression* - a regular expression pattern to select a list of APK version codes to be removed from the track with this deployment, e.g. _.\\*12?(3|4)?5_ 12. **Replace Version Codes** *(String, Optional)* - Specify version codes to replace in the selected track with the new APKs/AABs: all, the comma separated list, or a regular expression pattern. Not visible if `action` is *Only update store listing*. @@ -224,8 +222,6 @@ $(Specified Directory) 14. **Version Code Pattern** *(String, Required if visible)* - The regular expression pattern to select a list of version codes to be removed from the track with this deployment, e.g. .\*12?(3|4)?5. Only available if `Replace Version Codes` value is *Regular expression*. -15. **Release as Draft** *(Boolean, Optional)* - Allows to create a draft release which can later be deployed via the Google Play Console. - ### Google Play - Release V3 (deprecated in favor of Google Play - Release V4) Allows you to release an update to your app on Google Play, and includes the following options: @@ -325,6 +321,8 @@ Allows you to promote a previously released APK from one track to another (e.g. 5. **Rollout Fraction** *(String, Required if visible)* - The percentage of users to roll the app out to, specified as a number between 0 and 1 (e.g. `0.5` == `50%` of users). If you use rollout, and want to be able to automate the process of increasing the rollout over time, refer to the `Google Play - Increase Rollout` task. +6. **Clean Source Track** *(Boolean, Optional)* - Clean the source track. Default value is _true_. + ### Google Play - Increase Rollout Allows you to increase the rollout percentage of an app that was previously released to the **Rollout** track, and includes the following options: @@ -440,3 +438,4 @@ $(Specified Directory) Google Play and the Google Play logo are trademarks of Google Inc. This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. +Google Play and the Google Play logo are trademarks of Google Inc. diff --git a/images/promote-task.png b/images/promote-task.png index 257a267c..8d207c79 100644 Binary files a/images/promote-task.png and b/images/promote-task.png differ