Skip to content

Android Release to Firebase App Distribution

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

Runner: ubuntu-latest

Usage

jobs:
  android-release-to-firebase-app-distribution:
    uses: futuredapp/.github/.github/workflows/android-cloud-release-firebaseAppDistribution.yml@2.7.0
    with:
      TEST_GRADLE_TASKS: '...'
      PACKAGE_GRADLE_TASK: '...'
      UPLOAD_GRADLE_TASK: '...'
      APP_DISTRIBUTION_GROUPS: '...'
    secrets:
      APP_DISTRIBUTION_SERVICE_ACCOUNT: ${{ secrets.APP_DISTRIBUTION_SERVICE_ACCOUNT }}

Inputs

Name Type Required Default Description
TEST_GRADLE_TASKS string Yes — A Gradle task(s) for executing unit tests, for example testReleaseUnitTest or testDevEnterpriseUnitTest
PACKAGE_GRADLE_TASK string Yes — A Gradle task for packaging universal APK, eg. 'packageEnterpriseUniversalApk'
UPLOAD_GRADLE_TASK string Yes — A Gradle task for uploading APK, for example appDistributionUploadEnterprise
APP_DISTRIBUTION_GROUPS string Yes — Comma-separated list of app distribution group IDs
USE_GIT_LFS boolean No False Whether to download Git-LFS files
VERSION_NAME string No — Version name. Example: '1.X.X-snapshot'
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.
RELEASE_NOTES string No ${{ github.event.head_commit.message }} Release notes for this build
KMP_FLAVOR string No test 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 will be populated with contents of 'SECRET_PROPERTIES' secret. This file can be picked up by Secrets Gradle plugin to embed secrets into BuildConfig.
JAVA_VERSION string No 17 Java version to use
JAVA_DISTRIBUTION string No zulu Java distribution to use
GRADLE_OPTS string No — Gradle options
TIMEOUT_MINUTES number No 30 Job timeout in minutes
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
APP_DISTRIBUTION_SERVICE_ACCOUNT Yes JSON key of service account with permissions to upload build to Firebase App Distribution
GRADLE_CACHE_ENCRYPTION_KEY No Configuration cache encryption key
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