Skip to content

启用release构建优化 #125

启用release构建优化

启用release构建优化 #125

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
cp -r 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: Display APK information
run: |
echo "::set-output name=apk_path::$(find app/build/outputs/apk/release -name 'DeviceOptimizeHelper_v*.apk')"
ls -lh $(find app/build/outputs/apk/release -name 'DeviceOptimizeHelper_v*.apk')
# Store the APK path as a job output
id: apk_info
continue-on-error: true
- name: Upload APK artifact
uses: actions/upload-artifact@v2
with:
name: DeviceOptimizeHelper-APK
path: ${{ steps.apk_info.outputs.apk_path }}