Skip to content

Android Release to Google Play

Source: workflows/android-cloud-release-googlePlay.yml

Runner: ubuntu-latest

Usage

jobs:
  android-release-to-google-play:
    uses: futuredapp/.github/.github/workflows/android-cloud-release-googlePlay.yml@2.7.0
    with:
      VERSION_NAME: '...'
      BUNDLE_GRADLE_TASK: '...'
      GOOGLE_PLAY_APPLICATION_ID: '...'
    secrets:
      SIGNING_KEYSTORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
      SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
      SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
      GOOGLE_PLAY_PUBLISH_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_PLAY_PUBLISH_SERVICE_ACCOUNT }}

Inputs

Name Type Required Default Description
VERSION_NAME string Yes — Build version name
BUNDLE_GRADLE_TASK string Yes — A Gradle task for assembling app bundle, for example bundleRelease
GOOGLE_PLAY_APPLICATION_ID string Yes — Google Play applicationId
USE_GIT_LFS boolean No False Whether to download Git-LFS files
BUILD_NUMBER_OFFSET number No 0 Build number offset. This number will be added to GITHUB_RUN_NUMBER and can be used to make corrections to build numbers.
KMP_FLAVOR string No prod KMP Build flavor. This is optional and only required by KMP projects and can be ignored on pure Android projects
SECRET_PROPERTIES_FILE string No secrets.properties A path to file that fill be populated with contents of 'SECRET_PROPERTIES' secret. This file can be picked up by Secrets Gradle plugin to embed secrets into BuildConfig.
CHANGES_NOT_SENT_FOR_REVIEW boolean No False A changesNotSentForReview Google Play flag. Enable when last google review failed, disable when last review was successful.
GOOGLE_PLAY_STATUS string No draft Google Play release status (completed, draft, halted, inProgress)
GOOGLE_PLAY_WHATSNEW_DIRECTORY string No — Path to directory with changelog files according to documentation in https://github.com/r0adkll/upload-google-play
RELEASE_NAME string No — Google Play release name. Defaults to VERSION_NAME if not set.
TIMEOUT_MINUTES number No 30 Job timeout in minutes
JAVA_VERSION string No 17 Java version to use
JAVA_DISTRIBUTION string No zulu Java distribution to use
GRADLE_OPTS string No — Gradle options
BUILD_RUNS_ON string No ubuntu-latest Runner label for the build job, for example ubuntu-latest (default) or self-hosted to build on the mac runners. Other jobs in this workflow stay on ubuntu-latest
SETUP_RUBY boolean No True Whether to install Ruby with ruby/setup-ruby (default). Set to false on runners whose image already ships Ruby, for example the self-hosted mac runners, where setup-ruby cannot create its tool cache
ANDROID_SDK_PACKAGES string No — When set, installs the Android SDK in the build job (android-actions/setup-android) with these sdkmanager packages, for runners whose image has no SDK, for example platforms;android-36 build-tools;36.0.0 platform-tools
KOTLIN_NATIVE_CACHE boolean No False Caches ~/.konan/dependencies (LLVM, libffi) between runs; for KMP projects built on macOS, where the Kotlin/Native toolchain downloads them on every fresh runner

Secrets

Name Required Description
SIGNING_KEYSTORE_PASSWORD Yes Password to provided keystore
SIGNING_KEY_ALIAS Yes Alias of the signing key in the provided keystore
SIGNING_KEY_PASSWORD Yes Password to the key in the provided keystore
GOOGLE_PLAY_PUBLISH_SERVICE_ACCOUNT Yes JSON key of service account with permissions to upload build to Google Play
SECRET_PROPERTIES No Custom string that contains key-value properties as secrets. Contents of this secret will be placed into file specified by 'SECRET_PROPERTIES_FILE' input.

Internal Actions Used