Repository navigation
Update build_and_send.yml #26
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Workflow 名称 | |
| name: Build AndroLua Pro SO and Send to Telegram | |
| on: | |
| # 允许手动触发 Workflow | |
| workflow_dispatch: | |
| inputs: | |
| so_files_list: | |
| description: '输入要提取的SO文件名 (用 | 隔开)' | |
| required: true | |
| default: 'libluajava.so' | |
| # 当有代码推送到 master 分支时自动触发 | |
| 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 | |
| run: | | |
| APK_PATH=$(find app/build/outputs/apk/debug -name "*.apk" -type f) | |
| if [[ -z "$APK_PATH" ]]; then | |
| echo "::error::编译后找不到 APK 文件!" | |
| exit 1 | |
| fi | |
| echo "Found APK at: $APK_PATH" | |
| 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 "REQUESTED_FILES_FORMATTED=$FORMATTED_LIST" >> $GITHUB_ENV | |
| 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_ENV | |
| - name: 7. Compress Extracted SO Files | |
| run: | | |
| cd extracted_so | |
| zip -r ../${{ env.ZIP_NAME }} . | |
| cd .. | |
| - name: 8. Send File with Caption to Telegram | |
| uses: appleboy/telegram-action@master | |
| with: | |
| to: ${{ secrets.TELEGRAM_CHAT_ID }} | |
| token: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
| # 【最终修正】: 指定格式为 html 并使用 html 标签 | |
| format: html | |
| caption: | | |
| <b>AndroLua Pro SO 编译完成!</b> | |
| <b>项目:</b> <code>${{ github.repository }}</code> | |
| <b>提取文件:</b> <code>${{ env.REQUESTED_FILES_FORMATTED }}</code> | |
| ${{ env.FAILED_FILES != '' && format('<b>提取失败:</b> <code>{0}</code>', env.FAILED_FILES) || '' }} | |
| document: ${{ env.ZIP_NAME }} |