Files
arcanechat-android/.github/workflows/release.yml
T

80 lines
2.5 KiB
YAML

name: Upload Release APK
on:
push:
tags:
- 'v*.*.*'
jobs:
check:
runs-on: ubuntu-latest
outputs:
match: ${{ steps.check-tag.outputs.match }}
beta: ${{ steps.check-tag.outputs.beta }}
steps:
- id: check-tag
run: |
if [[ "${{ github.event.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+.*$ ]]; then
echo ::set-output name=match::true
fi
if [[ "${{ github.event.ref }}" =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+.*-beta$ ]]; then
echo ::set-output name=beta::true
fi
build:
needs: check
if: needs.check.outputs.match == 'true'
name: Upload Release APK
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: recursive
- run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- run: cp jni/deltachat-core-rust/rust-toolchain .
- uses: actions-rs/toolchain@v1
- uses: Swatinem/rust-cache@v1
with:
working-directory: jni/deltachat-core-rust
- uses: actions/setup-java@v1.4.3
with:
java-version: 11
- uses: android-actions/setup-android@v2
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r21d
- name: Compile core
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
run: |
export PATH="${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/:${ANDROID_NDK_ROOT}"
./scripts/install-toolchains.sh && ./ndk-make.sh
- name: Build APK
run: ./gradlew --no-daemon assembleGplayRelease
- name: Sign APK
uses: r0adkll/sign-android-release@v1
# ID used to access action output
id: sign_app
with:
releaseDirectory: build/outputs/apk/gplay/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Create Release
- uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: needs.check.outputs.beta == 'true'
files: |
${{ steps.sign_app.signedReleaseFile0 }}
${{ steps.sign_app.signedReleaseFile1 }}
${{ steps.sign_app.signedReleaseFile2 }}
${{ steps.sign_app.signedReleaseFile3 }}
${{ steps.sign_app.signedReleaseFile4 }}