The following plugin provides functionality available through Pipeline-compatible steps. Read more about how to integrate steps into your Pipeline in the Steps section of the Pipeline Syntax page.
For a list of other such plugins, see the Pipeline Steps Reference page.
androidApkUpload
: Upload Android AAB/APKs to Google PlayadditionalVersionCodes : String
(optional)
For example, if you have a Wear OS app file already released, but in this build step you only need to upload new mobile app files, you can enter the version code of the Wear OS app file to retain it for this new release, rather than having to upload it again here.
Similarly, if you're using Multiple APK Support, you may have a situation where you only need to release an update to a single APK, and so you can use this functionality to retain the other APKs for this new release by entering their version codes.
If you don't need this functionality, you can leave this field blank. Note that multiple entries must be comma-separated.
This field supports substituting environment variables in the form ${SOME_VARIABLE} or $SOME_VARIABLE at build time.apkFilesPattern : String
(optional)
deobfuscationFilesPattern : String
(optional)
Note that if you build an Android App Bundle (AAB file) with ProGuard enabled, the mapping file should already be embedded in the app bundle (typically as BUNDLE-METADATA/com.android.tools.build.obfuscation/proguard.map.
In such cases, you shouldn't use this option since Google Play will reject any attempt to upload a mapping file when the app bundle has one embedded.
You can use wildcards like "**/build/**/mapping.txt".
See the 'includes' attribute of Ant's FileSet for the exact format.
Note that multiple entries must be comma-separated.
The base directory is the build's workspace. You can only upload mapping files that are located in your workspace.
If there are multiple AAB/APK files being uploaded, and only one mapping file is found in the workspace, then that mapping file will be associated with each of the app files being uploaded. If there are multiple mapping files found, a basic attempt will be made to automatically associate each mapping file with its corresponding app file.
Otherwise, if the number of mapping files found is not equal to the number of app files being uploaded, the build will fail, as this situation is not supported.
For more information on deobfuscating crash stacktraces, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/6295281
expansionFilesPattern : String
(optional)
Specifies filenames or patterns matching zero or more expansion files that should be associated with the APK files being uploaded to Google Play.
You can list as many or as few expansion files as you like — you have the option of associating previously-uploaded expansion files with the new APKs being uploading here.
For example:
The base directory is the build's workspace. You can only upload OBB files that are located in your workspace.
With this option enabled, if not enough expansion files are provided for all of the APK(s) being uploaded, this plugin will search for the newest, APKs on Google Play with main or patch expansion files — whether previously uploaded, or uploaded via the current build — and will associate those files with the new APK(s) being uploaded here.
For example: If you want to upload a new APK, but the expansion files have not changed at all, you should leave the "Expansion files" field blank, but enable the checkbox.
At build time, the latest existing main (and patch, if available) expansion files will be associated with the newly-uploaded APK.
Similarly, if you have a new build, but only want to change the patch file, then just provide the patch expansion file and make sure this option is checked. The uploaded APK will have the existing main expansion file associated with it, along with the newly-uploaded patch file.
Or, if you have a new main or patch expansion file, and want to apply that same file to multiple APKs being uploaded, name the expansion file according to the lowest versionCode that you're uploading. That expansion file will then be uploaded, and applied to the APKs with higher versionCodes that were uploaded in the same build.
This field supports substituting environment variables in the form ${SOME_VARIABLE} or $SOME_VARIABLE at build time.filesPattern : String
(optional)
You can use wildcards like "**/build/outputs/*/*-release.apk".
See the 'includes' attribute of Ant's FileSet for the exact format.
Note that multiple entries must be comma-separated.
The base directory is the build's workspace. You can only upload AAB or APK files that are located in your workspace.
Applications which have several files per release, taking advantage of Multiple APK Support, must have all of their APKs uploaded together, and all APKs must have the same application identifier (APK package name).
If no value is provided, the default is **/build/outputs/**/*.aab, **/build/outputs/**/*.apk.
This field supports substituting environment variables in the form ${SOME_VARIABLE} or $SOME_VARIABLE at build time.googleCredentialsId : String
(optional)
The selected credential must be a "Google Service Account from private key" — if you have not added one already, refer to the documentation on this plugin's page.
By choosing the "Parameter expression" option, you can also provide a credential at build time, either from an environment variable, or from a build parameter, e.g. the Credentials Parameter type.
But you can use any type of expression, so long as it expands to the name of a "Google Service Account from private key" credential at build time.
inAppUpdatePriority : String
(optional)
If you don't use this feature, or don't need to set a priority, you can leave this field blank; it will default to 0. Otherwise the value must be a whole number between 0 (lowest priority) and 5 (highest priority).
For more information on using in-app updates, see the documentation:
https://developer.android.com/guide/playcore/in-app-updates
nativeDebugSymbolFilesPattern : String
(optional)
Note that if you build an Android App Bundle (AAB file) with native libraries, using Android Gradle Plugin version 4.1 or newer, you can choose to automatically embed the native symbols into the app bundle file.
Therefore you don't need to use this option to upload the symbols separately. But if you do, the contents of this symbols file will supersede those embedded in the bundle.
You can use wildcards like "**/build/**/native-debug-symbols.zip".
See the 'includes' attribute of Ant's FileSet for the exact format.
Note that multiple entries must be comma-separated.
The base directory is the build's workspace. You can only upload symbols files that are located in your workspace.
If there are multiple AAB/APK files being uploaded, and only one symbols file is found in the workspace, then that symbols file will be associated with each of the app files being uploaded. If there are multiple symbols files found, a basic attempt will be made to automatically associate each symbols file with its corresponding app file.
Otherwise, if the number of symbols files found is not equal to the number of app files being uploaded, the build will fail, as this situation is not supported.
For more information on deobfuscating crash stacktraces, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/6295281
recentChangeList
(optional)
You add entries for as many or as few of your supported language as you wish, but each language must already have been added to your app, under the "Store Listing" section in the Google Play Developer Console.
The language must match the language code shown in the Developer Console, e.g. "en-GB" for British English, or "ar" for Arabic.
The text may be between zero and 500 characters.
For more information on describing what's new in your app, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/189724
language : String
text : String
releaseName : String
(optional)
Any instances of {versionCode} or {versionName} in the value will be replaced by the respective value from the app file being uploaded. If multiple files are uploaded, the one with the lowest versionCode will be used.
For example, entering Version {versionName}-${GIT_COMMIT} as release name could yield a release name on Google Play something like Version 1.2.3-b2c3d3e4.
This field supports substituting environment variables in the form ${SOME_VARIABLE} or $SOME_VARIABLE at build time.rolloutPercent : double
(optional)
rolloutPercentage : String
(optional)
If you enter 100%, the app will be rolled out to all users, and the release will be considered complete, i.e. you will be unable to reduce the rollout percentage for this release.
If you enter 0%, a draft release will be created, meaning that users will not yet see it; the existing file(s) released in the given track, if any, will remain in place.
For more information on staged rollouts, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/6346149
trackName : String
(optional)
For more information on using the internal, alpha, beta or custom testing tracks, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/3131213
Upon successful upload, the download URL for the uploaded file will be output to the build log.
This field supports substituting environment variables in the form ${SOME_VARIABLE} or $SOME_VARIABLE at build time.usePreviousExpansionFilesIfMissing : boolean
(optional)
androidApkMove
: Move Android apps to a different release trackFor example, you can use this to promote an app currently in alpha testing to the beta release track, once you've decided it's ready for a wider audience.
Similarly, once you're ready for release, you can move from beta to a staged rollout, or directly to production.
Note that "downgrading" release tracks, e.g. from production to alpha is not possible.
apkFilesPattern : String
(optional)
applicationId : String
(optional)
filesPattern : String
(optional)
Note that these files should have already been uploaded — this build step will not do any uploading; it will only move existing app versions from one release track to another. To upload app files, use the "Upload Android AAB/APK to Google Play" post-build action.
You can use wildcards like "**/build/outputs/*/*-release.apk".
See the 'includes' attribute of Ant's FileSet for the exact format.
Note that multiple entries must be comma-separated.
The base directory is the build's workspace. You can only reference AAB or APK files that are located in your workspace.
If no value is provided, the default is **/build/outputs/**/*.aab, **/build/outputs/**/*.apk.
This field supports substituting environment variables in the form ${SOME_VARIABLE} or $SOME_VARIABLE at build time.fromVersionCode : boolean
(optional)
googleCredentialsId : String
(optional)
The selected credential must be a "Google Service Account from private key" — if you have not added one already, refer to the documentation on this plugin's page.
By choosing the "Parameter expression" option, you can also provide a credential at build time, either from an environment variable, or from a build parameter, e.g. the Credentials Parameter type.
But you can use any type of expression, so long as it expands to the name of a "Google Service Account from private key" credential at build time.
inAppUpdatePriority : String
(optional)
If you don't use this feature, or don't need to set a priority, you can leave this field blank; it will default to 0. Otherwise the value must be a whole number between 0 (lowest priority) and 5 (highest priority).
For more information on using in-app updates, see the documentation:
https://developer.android.com/guide/playcore/in-app-updates
releaseName : String
(optional)
rolloutPercent : double
(optional)
rolloutPercentage : String
(optional)
If you enter 100%, the app will be rolled out to all users, and the release will be considered complete, i.e. you will be unable to reduce the rollout percentage for this release.
If you enter 0%, a draft release will be created, meaning that users will not yet see it; the existing file(s) released in the given track, if any, will remain in place.
For more information on staged rollouts, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/6346149
trackName : String
(optional)
You can enter the name of a custom track, or one of the built-in tracks:
For more information on using the internal, alpha, beta or custom testing tracks, see the Google Play documentation:
https://support.google.com/googleplay/android-developer/answer/3131213
versionCodes : String
(optional)
Please submit your feedback about this page through this quick form.
Alternatively, if you don't wish to complete the quick form, you can simply indicate if you found this page helpful?
See existing feedback here.