├── .github └── workflows │ └── main.yml ├── index.html └── version.json /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Update APK and Create Release 2 | 3 | on: 4 | push: 5 | paths: 6 | - '*.APK' # 监控根目录下的APK文件 7 | workflow_dispatch: # 允许手动触发 8 | 9 | jobs: 10 | create-release-and-update: 11 | runs-on: ubuntu-latest 12 | permissions: 13 | contents: write # 需要创建发布 14 | 15 | steps: 16 | - name: Checkout repository 17 | uses: actions/checkout@v3 18 | with: 19 | fetch-depth: 0 # 获取完整历史记录以查找文件更改 20 | 21 | - name: Find latest APK file 22 | id: find-apk 23 | run: | 24 | # 查找最新的APK文件 25 | LATEST_APK=$(find . -maxdepth 1 -name "*.APK" -type f -o -name "*.apk" -type f | sort -r | head -n 1) 26 | 27 | # 如果没有找到APK,使用默认路径 28 | if [ -z "$LATEST_APK" ]; then 29 | LATEST_APK="GestureEVO-release.APK" 30 | fi 31 | 32 | echo "Found APK file: $LATEST_APK" 33 | echo "apk_path=$LATEST_APK" >> $GITHUB_OUTPUT 34 | 35 | # 从文件名提取版本号 36 | if [[ "$LATEST_APK" =~ GestureEVO-([0-9]+\.[0-9]+-[0-9]+)\.APK ]]; then 37 | VERSION="${BASH_REMATCH[1]}" 38 | elif [[ "$LATEST_APK" =~ -([0-9]+\.[0-9]+[.-][0-9]+)\.APK ]]; then 39 | VERSION="${BASH_REMATCH[1]}" 40 | else 41 | MODIFIED_DATE=$(git log -1 --format=%cd --date=format:"%Y.%m.%d" -- "$LATEST_APK") 42 | VERSION="$MODIFIED_DATE" 43 | fi 44 | 45 | echo "Extracted version: $VERSION" 46 | echo "version=$VERSION" >> $GITHUB_OUTPUT 47 | echo "apk_filename=$(basename "$LATEST_APK")" >> $GITHUB_OUTPUT 48 | 49 | - name: Get commit message for APK 50 | id: get-commit-message 51 | run: | 52 | # 获取添加APK文件的提交信息 53 | COMMIT_MESSAGE=$(git log -1 --pretty=format:%s -- "${{ steps.find-apk.outputs.apk_path }}") 54 | echo "commit_message=$COMMIT_MESSAGE" >> $GITHUB_OUTPUT 55 | 56 | - name: Create GitHub Release 57 | id: create-release 58 | uses: softprops/action-gh-release@v1 59 | with: 60 | files: ${{ steps.find-apk.outputs.apk_path }} 61 | tag_name: v${{ steps.find-apk.outputs.version }} 62 | name: GestureEVO v${{ steps.find-apk.outputs.version }} 63 | body: ${{ steps.get-commit-message.outputs.commit_message }} 64 | draft: false 65 | prerelease: false 66 | env: 67 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 68 | 69 | - name: Get Release Info 70 | id: get-release-info 71 | run: | 72 | # 获取发布说明 73 | RELEASE_NOTES=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ 74 | "https://api.github.com/repos/$GITHUB_REPOSITORY/releases/tags/v${{ steps.find-apk.outputs.version }}" | \ 75 | jq -r '.body') 76 | 77 | # 转义JSON特殊字符 78 | RELEASE_NOTES_JSON=$(echo "$RELEASE_NOTES" | jq -Rs .) 79 | 80 | echo "release_url=https://github.com/$GITHUB_REPOSITORY/releases/tag/v${{ steps.find-apk.outputs.version }}" >> $GITHUB_OUTPUT 81 | echo "release_notes=$RELEASE_NOTES_JSON" >> $GITHUB_OUTPUT 82 | 83 | - name: Update version.json 84 | run: | 85 | CURRENT_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") 86 | 87 | cat > version.json << EOF 88 | { 89 | "version": "${{ steps.find-apk.outputs.version }}", 90 | "releaseUrl": "https://github.com/$GITHUB_REPOSITORY/releases/tag/v${{ steps.find-apk.outputs.version }}", 91 | "downloadUrl": "https://github.com/$GITHUB_REPOSITORY/releases/download/v${{ steps.find-apk.outputs.version }}/${{ steps.find-apk.outputs.apk_filename }}", 92 | "lastUpdated": "$CURRENT_DATE", 93 | "fileName": "${{ steps.find-apk.outputs.apk_filename }}", 94 | "releaseNotes": ${{ steps.get-release-info.outputs.release_notes }} 95 | } 96 | EOF 97 | echo "Updated version.json" 98 | 99 | - name: Remove APK file 100 | run: | 101 | echo "Removing APK file from repository..." 102 | rm -f "${{ steps.find-apk.outputs.apk_path }}" 103 | echo "APK file removed." 104 | 105 | - name: Commit and push changes 106 | run: | 107 | git config --local user.email "action@github.com" 108 | git config --local user.name "GitHub Action" 109 | 110 | git add index.html version.json 111 | git add --all 112 | 113 | if git diff --staged --quiet; then 114 | echo "No changes to commit" 115 | else 116 | git commit -m "Update release info for v${{ steps.find-apk.outputs.version }}" 117 | git pull origin main --rebase 118 | git push origin main 119 | fi -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | GestureEVO APK 下载 7 | 71 | 72 | 73 |
74 |

GestureEVO

75 |
76 | 当前版本: 加载中... 77 |
78 |
79 | 最后更新: 加载中... 80 |
81 | 82 | 83 | 84 | 85 | 86 | 前往 GitHub 下载 87 | 88 | 89 |
90 |

更新内容

91 |
加载中...
92 |
93 |
94 | 95 | 117 | 118 | -------------------------------------------------------------------------------- /version.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.4-062402", 3 | "releaseUrl": "https://github.com/LumiaGG/GestureEVO-release/releases/tag/v1.4-062402", 4 | "downloadUrl": "https://github.com/LumiaGG/GestureEVO-release/releases/download/v1.4-062402/GestureEVO-1.4-062402.APK", 5 | "lastUpdated": "2025-06-24T03:18:55Z", 6 | "fileName": "GestureEVO-1.4-062402.APK", 7 | "releaseNotes": "- 修复触摸透明图标时无法刷新触摸信息的错误 - 优化选中提示图标的性能\n" 8 | } 9 | --------------------------------------------------------------------------------