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. |