* Use secret Sentry DSN value. We realised our DSN entry has been shipped along with the code and it was being used in several forks as is, resulting in wrong bug reports coming into our Sentry dashboard and making it very hard to debug actual issues in the app.
106 lines
4.2 KiB
YAML
106 lines
4.2 KiB
YAML
name: Create release App Bundle and APKs
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: [ main ]
|
|
|
|
# Enrich gradle.properties for CI/CD
|
|
env:
|
|
GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx9g -XX:MaxMetaspaceSize=512m -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -Dkotlin.daemon.jvm.options=-Xmx4g
|
|
CI_GRADLE_ARG_PROPERTIES: --stacktrace --no-daemon -Dsonar.gradle.skipCompile=true --no-configuration-cache
|
|
|
|
jobs:
|
|
gplay:
|
|
name: Create App Bundle (Gplay)
|
|
runs-on: ubuntu-latest
|
|
concurrency:
|
|
group: ${{ format('build-release-main-gplay-{0}', github.sha) }}
|
|
cancel-in-progress: true
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Use JDK 21
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
java-version: '21'
|
|
- name: Configure gradle
|
|
uses: gradle/actions/setup-gradle@v4
|
|
- name: Create app bundle
|
|
env:
|
|
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
|
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
|
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
|
ELEMENT_ANDROID_SENTRY_DSN: ${{ secrets.ELEMENT_ANDROID_SENTRY_DSN }}
|
|
run: ./gradlew bundleGplayRelease $CI_GRADLE_ARG_PROPERTIES
|
|
- name: Upload bundle as artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: elementx-app-gplay-bundle-unsigned
|
|
path: |
|
|
app/build/outputs/bundle/gplayRelease/app-gplay-release.aab
|
|
|
|
enterprise:
|
|
name: Create App Bundle Enterprise
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'element-hq/element-x-android' }}
|
|
concurrency:
|
|
group: ${{ format('build-release-main-enterprise-{0}', github.sha) }}
|
|
cancel-in-progress: true
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Add SSH private keys for submodule repositories
|
|
uses: webfactory/ssh-agent@v0.9.0
|
|
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'element-hq/element-x-android' }}
|
|
with:
|
|
ssh-private-key: ${{ secrets.ELEMENT_ENTERPRISE_DEPLOY_KEY }}
|
|
- name: Clone submodules
|
|
run: git submodule update --init --recursive
|
|
- name: Use JDK 21
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
java-version: '21'
|
|
- name: Configure gradle
|
|
uses: gradle/actions/setup-gradle@v4
|
|
- name: Create Enterprise app bundle
|
|
env:
|
|
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
|
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
|
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
|
run: ./gradlew bundleGplayRelease $CI_GRADLE_ARG_PROPERTIES
|
|
- name: Upload bundle as artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: elementx-enterprise-app-gplay-bundle-unsigned
|
|
path: |
|
|
app/build/outputs/bundle/gplayRelease/app-gplay-release.aab
|
|
|
|
fdroid:
|
|
name: Create APKs (FDroid)
|
|
runs-on: ubuntu-latest
|
|
concurrency:
|
|
group: ${{ format('build-release-main-fdroid-{0}', github.sha) }}
|
|
cancel-in-progress: true
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Use JDK 21
|
|
uses: actions/setup-java@v4
|
|
with:
|
|
distribution: 'temurin' # See 'Supported distributions' for available options
|
|
java-version: '21'
|
|
- name: Configure gradle
|
|
uses: gradle/actions/setup-gradle@v4
|
|
- name: Create APKs
|
|
env:
|
|
ELEMENT_ANDROID_MAPTILER_API_KEY: ${{ secrets.MAPTILER_KEY }}
|
|
ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID: ${{ secrets.MAPTILER_LIGHT_MAP_ID }}
|
|
ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID: ${{ secrets.MAPTILER_DARK_MAP_ID }}
|
|
run: ./gradlew assembleFdroidRelease $CI_GRADLE_ARG_PROPERTIES
|
|
- name: Upload apks as artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: elementx-app-fdroid-apks-unsigned
|
|
path: |
|
|
app/build/outputs/apk/fdroid/release/*.apk
|