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:
parent
6a4b694835
commit
4591928c9b
4 changed files with 175 additions and 2 deletions
81
.github/workflows/build-github-release.yml
vendored
Normal file
81
.github/workflows/build-github-release.yml
vendored
Normal 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
|
92
.github/workflows/build-release-apks.yml
vendored
Normal file
92
.github/workflows/build-release-apks.yml
vendored
Normal 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/
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue