1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-3595 App | Tech | Update scripts for building release apks (#2342)

This commit is contained in:
Evgenii Kozlov 2025-04-18 16:39:23 +02:00 committed by GitHub
parent 6a4b694835
commit 4591928c9b
Signed by: github
GPG key ID: B5690EEEBB952194
4 changed files with 175 additions and 2 deletions

View file

@ -0,0 +1,81 @@
name: Create Github release with the attached APKS
on:
workflow_dispatch:
inputs:
tag_name:
description: 'Git tag for the release (e.g. v1.0.0)'
required: true
type: string
release_name:
description: 'Release title (optional)'
required: false
default: ''
jobs:
build-and-release:
runs-on: ubuntu-latest
name: Build and Upload to GitHub Release
steps:
- name: Checkout code
uses: actions/checkout@v3
- uses: nttld/setup-ndk@v1
with:
ndk-version: r23c
link-to-sdk: true
- uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
- name: Grant Gradle permission
run: chmod +x ./gradlew
- name: Setup middleware
env:
token_secret: ${{ secrets.ANYTYPE_SECRET }}
user_secret: ${{ secrets.ANYTYPE_USER_SECRET }}
amplitude_secret: ${{ secrets.ANYTYPE_AMPLITUDE_SECRET }}
amplitude_secret_debug: ${{ secrets.ANYTYPE_AMPLITUDE_DEBUG_SECRET }}
sentry_dsn_secret: ${{ secrets.ANYTYPE_SENTRY_DSN_SECRET }}
run: ./middleware2.sh $token_secret $user_secret $amplitude_secret $amplitude_secret_debug $sentry_dsn_secret
- name: Decrypt secrets
run: ./scripts/release/decrypt-secrets.sh
env:
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }}
- name: Setup keystore
env:
RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }}
RELEASE_KEY_PWD: ${{ secrets.RELEASE_KEY_PWD }}
RELEASE_STORE_PWD: ${{ secrets.RELEASE_STORE_PWD }}
run: ./scripts/release/setup-store.sh $token_secret $RELEASE_KEY_ALIAS $RELEASE_KEY_PWD $RELEASE_STORE_PWD
- name: Prepare Android Manifest for APKs
run: ./scripts/release/apk.sh
- name: Build release APKs
run: ./gradlew :app:assembleRelease -PenableAbiSplits=true
- name: Prepare artefacts
run: ./scripts/release/prepare-release-artefacts.sh
- name: List prepared files
run: ls -lh app/build/outputs/apk/release/release-artefacts/
- name: Create and Upload GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.event.inputs.tag_name }}
name: ${{ github.event.inputs.release_name }}
files: app/build/outputs/apk/release/release-artefacts/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Clean secrets
if: always()
run: ./scripts/release/clean-secrets.sh

View file

@ -0,0 +1,92 @@
name: Build release APKs build from tag
on:
workflow_dispatch:
inputs:
tag:
description: 'Git tag to build from'
required: true
type: string
jobs:
build-release:
name: Build APK from tag
runs-on: ubuntu-latest
steps:
- name: Checkout repo at tag
uses: actions/checkout@v3
with:
fetch-depth: 0 # needed to fetch all tags
ref: ${{ github.event.inputs.tag }}
- name: Set up Android NDK
uses: nttld/setup-ndk@v1
with:
ndk-version: r23c
link-to-sdk: true
- name: Set up Java
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: 17
- name: Setup middleware dependency
env:
token_secret: ${{ secrets.ANYTYPE_SECRET }}
user_secret: ${{ secrets.ANYTYPE_USER_SECRET }}
amplitude_secret: ${{ secrets.ANYTYPE_AMPLITUDE_SECRET }}
amplitude_secret_debug: ${{ secrets.ANYTYPE_AMPLITUDE_DEBUG_SECRET }}
sentry_dsn_secret: ${{ secrets.ANYTYPE_SENTRY_DSN_SECRET }}
run: ./middleware2.sh $token_secret $user_secret $amplitude_secret $amplitude_secret_debug $sentry_dsn_secret
- name: Decrypt secrets
run: ./scripts/release/decrypt-secrets.sh
env:
ENCRYPT_KEY: ${{ secrets.ENCRYPT_KEY }}
- name: Setup keystore
env:
RELEASE_KEY_ALIAS: ${{ secrets.RELEASE_KEY_ALIAS }}
RELEASE_KEY_PWD: ${{ secrets.RELEASE_KEY_PWD }}
RELEASE_STORE_PWD: ${{ secrets.RELEASE_STORE_PWD }}
run: ./scripts/release/setup-store.sh $token_secret $RELEASE_KEY_ALIAS $RELEASE_KEY_PWD $RELEASE_STORE_PWD
- name: Checkout license repository
uses: actions/checkout@v3
with:
repository: anyproto/open
ref: refs/heads/main
path: ./open
- name: Check licenses
run: |
cd open
python3 tools/generate.py --platform android
cd ..
sudo gem install license_finder
license_finder ignored_dependencies add skiko --why "Excluded due to native binary license concerns"
license_finder inherited_decisions add open/decisions.yml
license_finder --gradle-command="./gradlew \
-Pcom.anytype.ci=true \
-Dorg.gradle.unsafe.configuration-cache=false"
- name: Prepare Android Manifest
run: ./scripts/release/apk.sh
- name: Build release APKs
run: ./gradlew :app:assembleRelease -PenableAbiSplits=true
- name: Clean secrets
if: always()
run: ./scripts/release/clean-secrets.sh
- name: Prepare artefacts
run: ./scripts/release/prepare-release-artefacts.sh
- name: Upload artefacts as GitHub Actions output
uses: actions/upload-artifact@v3
with:
name: release-apks-${{ github.event.inputs.tag }}
path: app/build/outputs/apk/release/release-artefacts/

View file

@ -60,7 +60,7 @@ jobs:
run: ./scripts/release/apk.sh
- name: Build release APKS
run: ./gradlew :app:assembleRelease
run: ./gradlew :app:assembleRelease -PenableAbiSplits=true
- name: Clean secrets
if: always()

View file

@ -142,7 +142,7 @@ android {
// Configures multiple APKs based on ABI.
abi {
// Enables building multiple APKs per ABI.
enable true
enable project.hasProperty("enableAbiSplits") && project.getProperty("enableAbiSplits").toBoolean()
reset()
include "armeabi-v7a", "arm64-v8a"
universalApk true