Skip to content

Build & Publish Rust Keylock Release APK #16

Build & Publish Rust Keylock Release APK

Build & Publish Rust Keylock Release APK #16

Workflow file for this run

name: Build & Publish Rust Keylock Release APK
on:
push:
tags:
- '*'
env:
CARGO_TERM_COLOR: always
permissions:
contents: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout code
uses: actions/checkout@v4
- name: setup JDK 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: 'adopt'
- name: Build native
run: bash ./buildall.sh
- name: Build android
run: bash ./gradlew build
- name: Create keystore
env:
FS_KEYSTORE_FILE: ${{ secrets.RKL_KEYSTORE_FILE }}
run: |
echo "$FS_KEYSTORE_FILE" >> rkl.jks.base64
base64 --decode rkl.jks.base64 > ./rkl.jks
- name: Add zipalign to PATH
run: |
# Locate the build-tools directory and add it to GITHUB_PATH
BUILD_TOOLS_VERSION=$(ls $ANDROID_HOME/build-tools | tail -n 1)
echo "$ANDROID_HOME/build-tools/$BUILD_TOOLS_VERSION" >> $GITHUB_PATH
- name: Sign apk
env:
KEYSTORE_PASSWORD: ${{ secrets.RKL_KEYSTORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.RKL_KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.RKL_KEY_PASSWORD }}
TAG_NAME: ${{ github.ref_name }}
run: |
bash ./gradlew assembleRelease
zipalign -p -f -v 4 ./App/build/outputs/apk/release/App-release-unsigned.apk ./App/build/outputs/apk/release/App-release-aligned.apk
apksigner sign --ks ./rkl.jks --ks-key-alias $KEY_ALIAS --ks-pass pass:$KEYSTORE_PASSWORD --key-pass pass:$KEY_PASSWORD --out ./App/build/outputs/apk/release/rust-keylock-android-$TAG_NAME.apk ./App/build/outputs/apk/release/App-release-aligned.apk
ls -la ./App/build/outputs/apk/release/
echo `ls -la ./App/build/outputs/apk/release/`
- name: Publish APK to Release
run: gh release create ${{ github.ref_name }} ./App/build/outputs/apk/release/rust-keylock-android-${{ github.ref_name }}.apk
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}