Skip to content

KMP nightly build

Source: workflows/kmp-combined-nightly-build.yml

Runner: Self-hosted + ubuntu-latest

Usage

jobs:
  kmp-nightly-build:
    uses: futuredapp/.github/.github/workflows/kmp-combined-nightly-build.yml@2.2.0
    with:
      ANDROID_TEST_GRADLE_TASK: '...'
      ANDROID_PACKAGE_GRADLE_TASK: '...'
      ANDROID_UPLOAD_GRADLE_TASK: '...'
      KMP_FLAVOR: '...'
      FIREBASE_APP_DISTRIBUTION_GROUPS: '...'
    secrets:
      FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT: ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT }}
      IOS_MATCH_PASSWORD: ${{ secrets.IOS_MATCH_PASSWORD }}
      IOS_APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_KEY }}
      IOS_APP_STORE_CONNECT_API_KEY_KEY_ID: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_KEY_ID }}
      IOS_APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.IOS_APP_STORE_CONNECT_API_KEY_ISSUER_ID }}

Inputs

Name Type Required Default Description
ANDROID_TEST_GRADLE_TASK string Yes A Gradle task(s) for executing unit tests, for example testReleaseUnitTest or testDevEnterpriseUnitTest
ANDROID_PACKAGE_GRADLE_TASK string Yes A Gradle task for packaging universal APK, eg. 'packageEnterpriseUniversalApk'
ANDROID_UPLOAD_GRADLE_TASK string Yes A Gradle task for uploading APK, for example appDistributionUploadEnterprise
KMP_FLAVOR string Yes KMP Build flavor. This is optional and only required by KMP projects and can be ignored on pure Android projects
FIREBASE_APP_DISTRIBUTION_GROUPS string Yes Comma-separated list of app distribution group IDs
TIMEOUT_MINUTES number No 30 Job timeout in minutes
USE_GIT_LFS boolean No False Whether to download Git-LFS files
GRADLE_OPTS string No Gradle options
JAVA_VERSION string No 17 Java version to use
JAVA_DISTRIBUTION string No zulu Java distribution to use
ANDROID_VERSION_NAME string No Version name. Example: '1.X.X-snapshot'
ANDROID_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_SWIFT_PACKAGE_INTEGRATION boolean No False Whether KMP is integrated in Xcode project as a Swift Package
KMP_SWIFT_PACKAGE_PATH string No If KMP_SWIFT_PACKAGE_INTEGRATION is 'true', then specifies a location of local Swift Package with Makefile. Example: 'iosApp/shared/KMP`
ANDROID_SECRET_PROPERTIES_FILE string No secrets.properties A path to file that will be populated with contents of 'android_secret_properties' secret. This file can be picked up by Secrets Gradle plugin to embed secrets into BuildConfig.
IOS_SECRET_XCCONFIG_PATH string No Path to the .xcconfig file. Selected secret properties will be appended to the end of this file.
IOS_SECRET_REQUIRED_KEYS string No Comma-separated list of required secret keys.
IOS_CUSTOM_BUILD_PATH string No Path to a folder where the iOS code is located and where bundle exec fastlane is executed. This should be relative to iosApp folder
IOS_CUSTOM_VALUES string No Custom string that can contains values specified in your workflow file. Those values will be placed into environment variable. Example: "CUSTOM-1: 1; CUSTOM-2: 2"
CHANGELOG_DEBUG boolean No False Enable debug mode for changelog generation. Default is false.
CHANGELOG_CHECKOUT_DEPTH number No 100 The depth of the git history to fetch for changelog generation. Default is 100.
CHANGELOG_FALLBACK_LOOKBACK string No 24 hours The amount of time to look back for merge commits when no previous build commit is found. Default is 24 hours.
JIRA_TRANSITION string No Testing The name of the JIRA transition to apply to tickets found in merged branches.

Secrets

Name Required Description
FIREBASE_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
ANDROID_SECRET_PROPERTIES No Custom string that contains key-value properties as secrets. Contents of this secret will be placed into file specified by 'ANDROID_SECRET_PROPERTIES_FILE' input.
IOS_SECRET_PROPERTIES No Secrets in the format KEY = VALUE (one per line).
IOS_MATCH_PASSWORD Yes Password for decrypting of certificates and provisioning profiles.
IOS_APP_STORE_CONNECT_API_KEY_KEY Yes Private App Store Connect API key for submitting build to App Store.
IOS_APP_STORE_CONNECT_API_KEY_KEY_ID Yes Private App Store Connect API key for submitting build to App Store.
IOS_APP_STORE_CONNECT_API_KEY_ISSUER_ID Yes Private App Store Connect API issuer key for submitting build to App Store.
JIRA_CONTEXT No JIRA context for transitioning tickets.

Internal Actions Used