build-apk-for-user.yml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. name: Build APK for User
  2. on:
  3. workflow_dispatch:
  4. inputs:
  5. branch:
  6. description: '要构建的分支'
  7. required: true
  8. default: 'trae/solo-agent-vhkVM3'
  9. release_tag:
  10. description: 'Release 标签 (留空则不上传到 Release)'
  11. required: false
  12. default: ''
  13. permissions:
  14. contents: write
  15. jobs:
  16. build:
  17. runs-on: ubuntu-latest
  18. steps:
  19. - name: Checkout code
  20. uses: actions/checkout@v5
  21. with:
  22. ref: ${{ github.event.inputs.branch }}
  23. fetch-depth: 0
  24. - name: Set up JDK 21
  25. uses: actions/setup-java@v5
  26. with:
  27. distribution: 'temurin'
  28. java-version: 21
  29. - name: Set up Gradle
  30. uses: gradle/actions/setup-gradle@v4
  31. - name: Clear 18PlusList.txt
  32. run: |
  33. echo "清空18PlusList.txt"
  34. echo "" > $GITHUB_WORKSPACE/app/src/main/assets/18PlusList.txt
  35. - name: Remove Aliyun mirrors (unreliable in CI)
  36. run: |
  37. sed -i '/maven.aliyun.com/d' settings.gradle
  38. - name: Build Debug APK
  39. run: |
  40. chmod +x gradlew
  41. ./gradlew assembleAppDebug --no-daemon --no-configuration-cache
  42. env:
  43. COMMIT_NUMBER: ${{ github.run_number }}
  44. APP_VERSION_NAME: debug-${{ github.run_number }}
  45. - name: Check Build Output
  46. run: |
  47. APK_PATH="$GITHUB_WORKSPACE/app/build/outputs/apk/app/debug"
  48. echo "检查 APK 输出目录: $APK_PATH"
  49. ls -la "$APK_PATH" || true
  50. if [ -z "$(find "$APK_PATH" -name "*.apk" -print -quit)" ]; then
  51. echo "未找到 APK 文件!"
  52. exit 1
  53. fi
  54. - name: Rename APK Files
  55. run: |
  56. APK_PATH="$GITHUB_WORKSPACE/app/build/outputs/apk/app/debug"
  57. cd "$APK_PATH"
  58. for f in *.apk; do
  59. mv "$f" "legado-debug-${GITHUB_RUN_NUMBER}-${f}"
  60. done
  61. ls -la
  62. - name: Create ZIP Archive
  63. run: |
  64. APK_PATH="$GITHUB_WORKSPACE/app/build/outputs/apk/app/debug"
  65. ZIP_NAME="legado-debug-apks-${GITHUB_RUN_NUMBER}.zip"
  66. cd "$APK_PATH"
  67. zip "$GITHUB_WORKSPACE/$ZIP_NAME" *.apk
  68. echo "ZIP 文件已创建: $ZIP_NAME"
  69. ls -la "$GITHUB_WORKSPACE/$ZIP_NAME"
  70. - name: Upload APK Artifacts
  71. uses: actions/upload-artifact@v4
  72. with:
  73. name: legado-apks-${{ github.run_number }}
  74. path: app/build/outputs/apk/app/debug/*.apk
  75. - name: Upload ZIP Artifact
  76. uses: actions/upload-artifact@v4
  77. with:
  78. name: legado-apks-zip-${{ github.run_number }}
  79. path: legado-debug-apks-*.zip
  80. - name: Create Release and Upload
  81. if: ${{ github.event.inputs.release_tag != '' }}
  82. uses: softprops/action-gh-release@v2
  83. with:
  84. tag_name: ${{ github.event.inputs.release_tag }}
  85. name: Legado Debug Build ${{ github.event.inputs.release_tag }}
  86. body: |
  87. 自动构建的 Debug 版本
  88. - 分支: ${{ github.event.inputs.branch }}
  89. - 构建号: ${{ github.run_number }}
  90. prerelease: true
  91. files: |
  92. app/build/outputs/apk/app/debug/*.apk
  93. legado-debug-apks-*.zip
  94. env:
  95. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}