Skip to content

Update build-and-sign-release.yml #117

Update build-and-sign-release.yml

Update build-and-sign-release.yml #117

name: Android CI
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
env:
RELEASE_KEYSTORE_PASSWORD: ${{ secrets.RELEASE_KEYSTORE_PASSWORD }}
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }}
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: gradle
- name: Install Android SDK
run: |
sudo mkdir -p /usr/local/lib/android/sdk
sudo chown $USER:$USER /usr/local/lib/android/sdk
curl -Lo cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-8512546_latest.zip
unzip cmdline-tools.zip -d cmdline-tools
mkdir -p /usr/local/lib/android/sdk/cmdline-tools/latest
rsync -a --ignore-existing cmdline-tools/cmdline-tools/* /usr/local/lib/android/sdk/cmdline-tools/latest/
yes | /usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root=/usr/local/lib/android/sdk --licenses
/usr/local/lib/android/sdk/cmdline-tools/latest/bin/sdkmanager --sdk_root=/usr/local/lib/android/sdk "platforms;android-31" "ndk;21.4.7075529"
- name: Set up environment variables
run: |
echo "ANDROID_HOME=/usr/local/lib/android/sdk" >> $GITHUB_ENV
echo "ANDROID_SDK_ROOT=/usr/local/lib/android/sdk" >> $GITHUB_ENV
echo "PATH=$PATH:/usr/local/lib/android/sdk/cmdline-tools/latest/bin:/usr/local/lib/android/sdk/platform-tools" >> $GITHUB_ENV
- name: Build APK
run: |
chmod +x ./gradlew
./gradlew assembleRelease
- name: Sign APK with Keystore
run: |
echo "${{ secrets.RELEASE_KEYSTORE_FILE }}" | base64 -d > keystore.jks
./gradlew signingConfigWriterRelease
$ANDROID_HOME/build-tools/31.0.0/apksigner sign --ks keystore.jks --ks-key-alias ${{ secrets.RELEASE_KEY_ALIAS }} --ks-pass env:RELEASE_KEYSTORE_PASSWORD --key-pass env:RELEASE_KEY_PASSWORD --in app/build/outputs/apk/release/DeviceOptimizeHelper_v*.apk
- name: Get versionName from Android app
id: get_version
run: |
VERSION_NAME=$(grep -oP 'versionName "\K[^"]+' app/build.gradle)
echo "VERSION_NAME=$VERSION_NAME" >> $GITHUB_ENV
echo "Version Name: $VERSION_NAME"
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
with:
files: |
app/build/outputs/apk/release/DeviceOptimizeHelper_v*.apk
tag_name: "v${{ env.VERSION_NAME }}"
token: ${{ secrets.RELEASE_GITHUB_TOKEN }}