Skip to content

Create README.md

Create README.md #32

name: Build AndroLua Pro SO and Send to Telegram (Pyrogram)
on:
workflow_dispatch:
inputs:
so_files_list:
description: '输入要提取的SO文件名 (用 | 隔开)'
required: true
default: 'libluajava.so'
push:
branches:
- master
env:
ZIP_NAME: "compiled-so-files.zip"
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: 1. Checkout Your Project
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: 2. Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17.0.14+7'
- name: 3. Setup Android SDK
uses: android-actions/setup-android@v3
with:
packages: "ndk;28.0.12433566"
- name: 4. Grant execute permission to gradlew
run: chmod +x ./gradlew
- name: 5. Build Project with Gradle
run: ./gradlew assembleDebug
- name: 6. Extract SO Files and Record Results
id: extract
run: |
APK_PATH=$(find app/build/outputs/apk/debug -name "*.apk" -type f)
if [[ -z "$APK_PATH" ]]; then exit 1; fi
mkdir -p extracted_so/lib/arm64-v8a extracted_so/lib/armeabi-v7a
SO_FILES_INPUT="${{ github.event.inputs.so_files_list || 'libluajava.so' }}"
FORMATTED_LIST=$(echo "$SO_FILES_INPUT" | tr '|' ' ')
echo "formatted_list=$FORMATTED_LIST" >> $GITHUB_OUTPUT
FAILED_FILES_LIST=""
for so_file in $FORMATTED_LIST; do
if unzip -l "$APK_PATH" | grep -qE "lib/(arm64-v8a|armeabi-v7a)/$so_file"; then
unzip -j "$APK_PATH" "lib/arm64-v8a/$so_file" -d extracted_so/lib/arm64-v8a 2>/dev/null || true
unzip -j "$APK_PATH" "lib/armeabi-v7a/$so_file" -d extracted_so/lib/armeabi-v7a 2>/dev/null || true
else
FAILED_FILES_LIST="$FAILED_FILES_LIST $so_file"
fi
done
FAILED_FILES_TRIMMED=$(echo "$FAILED_FILES_LIST" | sed 's/^ *//g' | sed 's/ *$//g')
echo "failed_files=$FAILED_FILES_TRIMMED" >> $GITHUB_OUTPUT
- name: 7. Compress Extracted SO Files
id: compress
run: |
cd extracted_so
if [ -z "$(ls -A .)" ]; then
echo "没有提取到任何文件,跳过发送。"
echo "should_send=false" >> $GITHUB_OUTPUT
else
zip -r ../${{ env.ZIP_NAME }} .
cd ..
echo "should_send=true" >> $GITHUB_OUTPUT
fi
- name: 8. Set up Python environment
if: steps.compress.outputs.should_send == 'true'
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: 9. Install Pyrogram
if: steps.compress.outputs.should_send == 'true'
run: pip install pyrogram tgcrypto
- name: 10. Send File via Pyrogram
if: steps.compress.outputs.should_send == 'true'
env:
# 从 GitHub Secrets 中获取安全凭证
PYROGRAM_API_ID: ${{ secrets.PYROGRAM_API_ID }}
PYROGRAM_API_HASH: ${{ secrets.PYROGRAM_API_HASH }}
PYROGRAM_BOT_TOKEN: ${{ secrets.TELEGRAM_BOT_TOKEN }}
TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}
# 从前面的步骤中获取动态信息
FILE_PATH: ${{ env.ZIP_NAME }}
REPO_NAME: ${{ github.repository }}
REQUESTED_FILES: ${{ steps.extract.outputs.formatted_list }}
FAILED_FILES: ${{ steps.extract.outputs.failed_files }}
run: python send_telegram_message.py