Merge pull request #941 from vector-im/feature/bma/versionCode
Version code
This commit is contained in:
commit
81cf727580
4 changed files with 40 additions and 12 deletions
4
.github/workflows/maestro.yml
vendored
4
.github/workflows/maestro.yml
vendored
|
|
@ -49,7 +49,9 @@ jobs:
|
||||||
- uses: mobile-dev-inc/action-maestro-cloud@v1.4.1
|
- uses: mobile-dev-inc/action-maestro-cloud@v1.4.1
|
||||||
with:
|
with:
|
||||||
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
|
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
|
||||||
app-file: app/build/outputs/apk/debug/app-universal-debug.apk
|
# Doc says (https://github.com/mobile-dev-inc/action-maestro-cloud#android):
|
||||||
|
# app-file should point to an x86 compatible APK file, so upload the x86_64 one (much smaller than the universal APK).
|
||||||
|
app-file: app/build/outputs/apk/debug/app-x86_64-debug.apk
|
||||||
env: |
|
env: |
|
||||||
USERNAME=maestroelement
|
USERNAME=maestroelement
|
||||||
PASSWORD=${{ secrets.MATRIX_MAESTRO_ACCOUNT_PASSWORD }}
|
PASSWORD=${{ secrets.MATRIX_MAESTRO_ACCOUNT_PASSWORD }}
|
||||||
|
|
|
||||||
12
.github/workflows/nightly.yml
vendored
12
.github/workflows/nightly.yml
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
name: Build and release nightly APK
|
name: Build and release nightly application
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
@ -12,7 +12,7 @@ env:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
nightly:
|
nightly:
|
||||||
name: Build and publish nightly APK to Firebase
|
name: Build and publish nightly bundle to Firebase
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: ${{ github.repository == 'vector-im/element-x-android' }}
|
if: ${{ github.repository == 'vector-im/element-x-android' }}
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -31,9 +31,9 @@ jobs:
|
||||||
sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml
|
sed 's/CHANGES\.md/CHANGES_NIGHTLY\.md/' towncrier.toml.bak > towncrier.toml
|
||||||
rm towncrier.toml.bak
|
rm towncrier.toml.bak
|
||||||
yes n | towncrier build --version nightly
|
yes n | towncrier build --version nightly
|
||||||
- name: Build and upload Nightly APK
|
- name: Build and upload Nightly bundle
|
||||||
run: |
|
run: |
|
||||||
./gradlew assembleNightly appDistributionUploadNightly $CI_GRADLE_ARG_PROPERTIES
|
./gradlew bundleNightly appDistributionUploadNightly $CI_GRADLE_ARG_PROPERTIES
|
||||||
env:
|
env:
|
||||||
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
||||||
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
||||||
|
|
@ -44,7 +44,9 @@ jobs:
|
||||||
FIREBASE_TOKEN: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_FIREBASE_TOKEN }}
|
FIREBASE_TOKEN: ${{ secrets.ELEMENT_ANDROID_NIGHTLY_FIREBASE_TOKEN }}
|
||||||
- name: Additionally upload Nightly APK to browserstack for testing
|
- name: Additionally upload Nightly APK to browserstack for testing
|
||||||
continue-on-error: true # don't block anything by this upload failing (for now)
|
continue-on-error: true # don't block anything by this upload failing (for now)
|
||||||
run: curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/nightly/app-universal-nightly.apk" -F "custom_id=element-x-android-nightly"
|
run: |
|
||||||
|
./gradlew assembleNightly $CI_GRADLE_ARG_PROPERTIES
|
||||||
|
curl -u "$BROWSERSTACK_USERNAME:$BROWSERSTACK_PASSWORD" -X POST "https://api-cloud.browserstack.com/app-automate/upload" -F "file=@app/build/outputs/apk/nightly/app-universal-nightly.apk" -F "custom_id=element-x-android-nightly"
|
||||||
env:
|
env:
|
||||||
BROWSERSTACK_USERNAME: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_USERNAME }}
|
BROWSERSTACK_USERNAME: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_USERNAME }}
|
||||||
BROWSERSTACK_PASSWORD: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_ACCESS_KEY }}
|
BROWSERSTACK_PASSWORD: ${{ secrets.ELEMENT_ANDROID_BROWSERSTACK_ACCESS_KEY }}
|
||||||
|
|
|
||||||
|
|
@ -124,11 +124,8 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
firebaseAppDistribution {
|
firebaseAppDistribution {
|
||||||
artifactType = "APK"
|
artifactType = "AAB"
|
||||||
// We upload the universal APK to fix this error:
|
artifactPath = "$rootDir/app/build/outputs/bundle/nightly/app-nightly.aab"
|
||||||
// "App Distribution found more than 1 output file for this variant.
|
|
||||||
// Please contact firebase-support@google.com for help using APK splits with App Distribution."
|
|
||||||
artifactPath = "$rootDir/app/build/outputs/apk/nightly/app-universal-nightly.apk"
|
|
||||||
// This file will be generated by the GitHub action
|
// This file will be generated by the GitHub action
|
||||||
releaseNotesFile = "CHANGES_NIGHTLY.md"
|
releaseNotesFile = "CHANGES_NIGHTLY.md"
|
||||||
groups = "external-testers"
|
groups = "external-testers"
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,33 @@
|
||||||
import org.gradle.api.JavaVersion
|
import org.gradle.api.JavaVersion
|
||||||
import org.gradle.jvm.toolchain.JavaLanguageVersion
|
import org.gradle.jvm.toolchain.JavaLanguageVersion
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Version codes are quite sensitive, because there is a mix between bundle and APKs, and we have to take into
|
||||||
|
* account the future upgrade of Element Android.
|
||||||
|
* Max versionCode allowed by the PlayStore (for information):
|
||||||
|
* 2_100_000_000
|
||||||
|
* Current version code of EAx on the PlayStore, for the first uploaded beta (we cannot go below):
|
||||||
|
* ----1_001_000
|
||||||
|
* Current version code of EAx on the nightly:
|
||||||
|
* ----1_001_000
|
||||||
|
* Current version of Element Android (at some point EAx will replace this app) (v1.6.3)
|
||||||
|
* ----40_106_03a where a stands for the architecture: 1, 2, 3, 4 and 0 for the universal APK
|
||||||
|
* Current version of EAx distributed with Firebase app distribution:
|
||||||
|
* ----1_002_000
|
||||||
|
* Latest version of EAx distributed with Firebase app distribution (downgrading, so that's a problem)
|
||||||
|
* -------10_200
|
||||||
|
* Version when running the current debug build
|
||||||
|
* -------10_200
|
||||||
|
*
|
||||||
|
* So adding 4_000_000 to the current version Code computed here should be fine, we will have:
|
||||||
|
* Release version:
|
||||||
|
* ---40_001_020
|
||||||
|
* Nightly version:
|
||||||
|
* ---40_001_020
|
||||||
|
* Debug version:
|
||||||
|
* ---40_010_200
|
||||||
|
*/
|
||||||
|
|
||||||
// Note: 2 digits max for each value
|
// Note: 2 digits max for each value
|
||||||
private const val versionMajor = 0
|
private const val versionMajor = 0
|
||||||
private const val versionMinor = 1
|
private const val versionMinor = 1
|
||||||
|
|
@ -27,7 +54,7 @@ private const val versionMinor = 1
|
||||||
private const val versionPatch = 2
|
private const val versionPatch = 2
|
||||||
|
|
||||||
object Versions {
|
object Versions {
|
||||||
val versionCode = (versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch) * 10
|
val versionCode = 4_000_000 + versionMajor * 1_00_00 + versionMinor * 1_00 + versionPatch
|
||||||
val versionName = "$versionMajor.$versionMinor.$versionPatch"
|
val versionName = "$versionMajor.$versionMinor.$versionPatch"
|
||||||
const val compileSdk = 33
|
const val compileSdk = 33
|
||||||
const val targetSdk = 33
|
const val targetSdk = 33
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue