|
| 1 | +name: Update QQPCSoftMgr |
| 2 | +on: |
| 3 | + workflow_dispatch: |
| 4 | + schedule: |
| 5 | + - cron: "0 10 * * 5" |
| 6 | + push: |
| 7 | + branches: |
| 8 | + - main |
| 9 | + paths-ignore: |
| 10 | + - "**/README.md" |
| 11 | + |
| 12 | +jobs: |
| 13 | + extract: |
| 14 | + runs-on: windows-latest |
| 15 | + steps: |
| 16 | + - name: Checkout codebase |
| 17 | + uses: actions/checkout@main |
| 18 | + |
| 19 | + - name: Set locale and language in China |
| 20 | + run: | |
| 21 | + Set-WinSystemLocale zh-CN |
| 22 | + Set-Culture zh-CN |
| 23 | + Set-WinUILanguageOverride zh-CN |
| 24 | + $env:LANG = 'zh-CN' |
| 25 | +
|
| 26 | + - name: Install `QQPCMgr` and running 60s |
| 27 | + run: | |
| 28 | + .\PCMgr_Setup_15_6_23123_201.exe /S |
| 29 | + Start-Sleep -Seconds 60 |
| 30 | +
|
| 31 | + - name: Open `QQPCSoftMgr` and running 120s |
| 32 | + run: | |
| 33 | + "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QQPCSoftMgr.exe" |
| 34 | + Start-Sleep -Seconds 120 |
| 35 | +
|
| 36 | + - name: Copy files |
| 37 | + run: | |
| 38 | + md 15.6.23123.201 libraries upload_files |
| 39 | + taskkill /f /t /im QQPC* |
| 40 | + taskkill /f /t /im QMDL* |
| 41 | + robocopy /e "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\Image" "15.6.23123.201\Image" /im /is /it /mt:32 |
| 42 | + robocopy /e "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\Images" "15.6.23123.201\Images" /im /is /it /mt:32 |
| 43 | + robocopy /e "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\plugins\SoftUninstall" "15.6.23123.201\plugins\SoftUninstall" /im /is /it /mt:32 |
| 44 | + robocopy /e "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\qbclient" "15.6.23123.201\qbclient" /im /is /it /mt:32 |
| 45 | + robocopy /e "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\qmsoftmgrupdate" "15.6.23123.201\qmsoftmgrupdate" /im /is /it /mt:32 |
| 46 | + del /f /s /q "15.6.23123.201\qmsoftmgrupdate\updatedate.txt" |
| 47 | + robocopy /e "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\SoftMgr" "15.6.23123.201\SoftMgr" /im /is /it /mt:32 |
| 48 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\Soft*" "15.6.23123.201" |
| 49 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QQPCSoft*" "15.6.23123.201" |
| 50 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\beacon_sdk.dll" "15.6.23123.201" |
| 51 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\Common.dll" "15.6.23123.201" |
| 52 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\dr.dll" "15.6.23123.201" |
| 53 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\FastUninstScpt.etf" "15.6.23123.201" |
| 54 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\GF.dll" "15.6.23123.201" |
| 55 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\GlobalConfig.etf" "15.6.23123.201" |
| 56 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\LoadError.html" "15.6.23123.201" |
| 57 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\msvcp*.dll" "15.6.23123.201" |
| 58 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\p2papp.dll" "15.6.23123.201" |
| 59 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\PackageMgr.dll" "15.6.23123.201" |
| 60 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\ptrate.dll" "15.6.23123.201" |
| 61 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMCommon.dll" "15.6.23123.201" |
| 62 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMDL.exe" "15.6.23123.201" |
| 63 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMDlder.dll" "15.6.23123.201" |
| 64 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMDns.dll" "15.6.23123.201" |
| 65 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMExt.dll" "15.6.23123.201" |
| 66 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMGuid*.dll" "15.6.23123.201" |
| 67 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMIpc*.dll" "15.6.23123.201" |
| 68 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMNetworkMgr*" "15.6.23123.201" |
| 69 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMPrivilege*" "15.6.23123.201" |
| 70 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMScriptHost.dll" "15.6.23123.201" |
| 71 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMStuck*.dll" "15.6.23123.201" |
| 72 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QMSysRepProv*" "15.6.23123.201" |
| 73 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QQFileFlt.dll" "15.6.23123.201" |
| 74 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QQPCExternal.exe" "15.6.23123.201" |
| 75 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QQPCMgr.exe" "15.6.23123.201" |
| 76 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\SmartInstall.dll" "15.6.23123.201" |
| 77 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\TAVEng.dll" "15.6.23123.201" |
| 78 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\TenioDL*.dll" "15.6.23123.201" |
| 79 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\TSSysKitProxy.dll" "15.6.23123.201" |
| 80 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\vccorlib*.dll" "15.6.23123.201" |
| 81 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\vcomp*.dll" "15.6.23123.201" |
| 82 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\vccorlib*.dll" "15.6.23123.201" |
| 83 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\vcruntime*.dll" "15.6.23123.201" |
| 84 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\xGraphic*.dll" "15.6.23123.201" |
| 85 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\zlib.dll" "15.6.23123.201" |
| 86 | +
|
| 87 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\GlobalConfig.etf" "libraries" |
| 88 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\SoftPolicy.etf" "libraries" |
| 89 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\SoftVerInfo.etf" "libraries" |
| 90 | + shell: cmd |
| 91 | + |
| 92 | + - name: Install `WinRAR` |
| 93 | + run: choco install winrar -y |
| 94 | + |
| 95 | + - name: Zip `QQPCSoftMgr` files |
| 96 | + run: | |
| 97 | + "%PROGRAMFILES%\WinRAR\WinRAR.exe" a -afzip QQPCSoftMgr.zip 15.6.23123.201\* -r |
| 98 | + shell: cmd |
| 99 | + |
| 100 | + - name: Zip `libraries` files |
| 101 | + run: | |
| 102 | + "%PROGRAMFILES%\WinRAR\WinRAR.exe" a -afzip libraries.zip libraries\* -r |
| 103 | + shell: cmd |
| 104 | + |
| 105 | + - name: Create `WinRAR` sfx config |
| 106 | + run: | |
| 107 | + $content = @" |
| 108 | + Path="%PROGRAMFILES(X86)%\Tencent\QQPCMgr" |
| 109 | + Setup=15.6.23123.201\QQPCSoftMgr.exe |
| 110 | + Title=软件管理 |
| 111 | + Text |
| 112 | + { |
| 113 | + 提取自腾讯电脑管家 15.6.23123.201 版本 |
| 114 | + } |
| 115 | + Silent=0 |
| 116 | + Overwrite=1 |
| 117 | + Shortcut=D, "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\QQPCSoftMgr.exe", , 安装、升级和卸载应用程序, 软件管理, "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\Images\softmgr.ico" |
| 118 | + "@ |
| 119 | +
|
| 120 | + $bytes = [System.Text.Encoding]::GetEncoding("GB2312").GetBytes($content) |
| 121 | + [System.IO.File]::WriteAllBytes("config.txt", $bytes) |
| 122 | +
|
| 123 | + - name: Create self-extracting exe and copy files |
| 124 | + run: | |
| 125 | + "%PROGRAMFILES%\WinRAR\WinRAR.exe" a -sfx -z"config.txt" -r QQPCSoftMgr.exe 15.6.23123.201\* |
| 126 | + copy /y QQPCSoftMgr.zip upload_files |
| 127 | + copy /y QQPCSoftMgr.exe upload_files |
| 128 | + copy /y libraries.zip upload_files |
| 129 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\GlobalConfig.etf" "upload_files" |
| 130 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\SoftPolicy.etf" "upload_files" |
| 131 | + copy /y "%PROGRAMFILES(X86)%\Tencent\QQPCMgr\15.6.23123.201\SoftVerInfo.etf" "upload_files" |
| 132 | + shell: cmd |
| 133 | + |
| 134 | + - name: Upload files to workspace |
| 135 | + uses: actions/upload-artifact@v4 |
| 136 | + with: |
| 137 | + name: QQPCSoftMgr |
| 138 | + path: upload_files/* |
| 139 | + compression-level: 9 |
| 140 | + |
| 141 | + push: |
| 142 | + runs-on: ubuntu-latest |
| 143 | + needs: extract |
| 144 | + steps: |
| 145 | + - name: Checkout codebase |
| 146 | + uses: actions/checkout@main |
| 147 | + |
| 148 | + - name: Set variables |
| 149 | + run: | |
| 150 | + echo "update_version=$(date -d '+8 hours' +%Y-%m-%d)" >> ${GITHUB_ENV} |
| 151 | + shell: bash |
| 152 | + |
| 153 | + - name: Download files from workspace |
| 154 | + uses: actions/download-artifact@v4 |
| 155 | + with: |
| 156 | + path: . |
| 157 | + |
| 158 | + - name: Release and upload `QQPCSoftMgr` assets |
| 159 | + uses: svenstaro/upload-release-action@v2 |
| 160 | + with: |
| 161 | + repo_token: ${{ secrets.GITHUB_TOKEN }} |
| 162 | + release_name: QQPCSoftMgr |
| 163 | + tag: QQPCSoftMgr |
| 164 | + overwrite: true |
| 165 | + body: | |
| 166 | + [腾讯软件管理](https://pc.qq.com)免安装绿色版提取自[腾讯电脑管家](https://guanjia.qq.com) v15.6.23123.201 版本 |
| 167 | + 软件库文件更新于 ${{ env.update_version }} |
| 168 | + file_glob: true |
| 169 | + file: ./QQPCSoftMgr/* |
| 170 | + |
| 171 | + - name: Purge jsDelivr CDN |
| 172 | + run: | |
| 173 | + cd ./QQPCSoftMgr/ || exit 1 |
| 174 | + for file in $(ls); do |
| 175 | + curl -i "https://purge.jsdelivr.net/gh/${{ github.repository }}@QQPCSoftMgr/${file}" |
| 176 | + done |
| 177 | +
|
| 178 | + - name: Delete old workflow runs |
| 179 | + uses: Mattraks/delete-workflow-runs@v2 |
| 180 | + with: |
| 181 | + token: ${{ github.token }} |
| 182 | + repository: ${{ github.repository }} |
| 183 | + retain_days: 3 |
| 184 | + keep_minimum_runs: 1 |
0 commit comments