修复 uv虚拟环境下,第一次启动报错,并且无法安装插件的问题。 #443
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
| name: Windows Quickstart | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: ['master'] | |
| tags: ['**'] | |
| pull_request: | |
| branches: ['master'] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| PYTHON_VERSION: "3.13.2.0" | |
| WINPYTHON_URL: "https://github.com/winpython/winpython/releases/download/13.1.202502222final/Winpython64-3.13.2.0dot.zip" | |
| DIST_DIR: "C:/dist" | |
| BUILD_DIR: "C:/build" | |
| PACKAGE_NAME: "quickstart-windows-kirara-ai-amd64" | |
| jobs: | |
| build: | |
| name: Windows Quickstart | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python for building | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| cache: 'pip' | |
| - name: Build wheel package | |
| run: | | |
| python -m pip install build | |
| python -m build | |
| # 获取生成的wheel文件名 | |
| $WheelFile = Get-ChildItem -Path "dist" -Filter "*.whl" | Select-Object -First 1 -ExpandProperty Name | |
| echo "WHEEL_FILE=$WheelFile" >> $env:GITHUB_ENV | |
| - name: Prepare distribution environment | |
| run: | | |
| # 创建必要的目录 | |
| mkdir ${{ env.DIST_DIR }} | |
| mkdir ${{ env.BUILD_DIR }} | |
| # 下载 WinPython | |
| Invoke-WebRequest -Uri "${{ env.WINPYTHON_URL }}" -OutFile "${{ env.BUILD_DIR }}/winpython.zip" | |
| Expand-Archive "${{ env.BUILD_DIR }}/winpython.zip" -DestinationPath "${{ env.DIST_DIR }}" | |
| - name: Install project and dependencies | |
| run: | | |
| cd ${{ env.DIST_DIR }} | |
| ./WPy64-31320/python/python.exe -m pip install "${{ github.workspace }}/dist/${{ env.WHEEL_FILE }}" | |
| ./WPy64-31320/python/python.exe -m pip install --upgrade pip | |
| - name: Download and setup FFmpeg | |
| run: | | |
| Invoke-WebRequest -Uri "https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-7.0.2-essentials_build.7z" -OutFile "${{ env.BUILD_DIR }}/ffmpeg.7z" | |
| 7z x "${{ env.BUILD_DIR }}/ffmpeg.7z" -o"${{ env.DIST_DIR }}/ffmpeg" | |
| mv "${{ env.DIST_DIR }}/ffmpeg/ffmpeg-7.0.2-essentials_build" "${{ env.DIST_DIR }}/ffmpeg/bin" | |
| - name: Download VC++ Runtime | |
| run: | | |
| Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "${{ env.DIST_DIR }}/【语音功能依赖】vc_redist.x64.exe" | |
| - name: Setup Web UI | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # 下载 Web UI 压缩包到临时目录 | |
| $release = Invoke-RestMethod -Uri "https://api.github.com/repos/DarkSkyTeam/chatgpt-for-bot-webui/releases" -Headers @{Authorization = "Bearer $env:GH_TOKEN"} | |
| $web_ui_url = $release[0].assets[0].browser_download_url | |
| $zip_file = "${{ env.BUILD_DIR }}/webui.zip" | |
| Invoke-WebRequest -Uri $web_ui_url -OutFile $zip_file | |
| # 解压到临时目录 | |
| $temp_dir = "${{ env.BUILD_DIR }}/webui_temp" | |
| mkdir $temp_dir | |
| Expand-Archive -Path $zip_file -DestinationPath $temp_dir | |
| New-Item -ItemType Directory -Force -Path "${{ env.DIST_DIR }}/web" | |
| # 移动 dist 文件夹到目标位置 | |
| Copy-Item -Path "$temp_dir/dist/*" -Destination "${{ env.DIST_DIR }}/web" -Force -Recurse | |
| - name: Copy startup scripts | |
| run: | | |
| Copy-Item ".github/quickstarts/windows/scripts/*" -Destination "${{ env.DIST_DIR }}/" -Recurse | |
| # 拷贝 data 文件夹 | |
| Copy-Item -Path "${{ github.workspace }}/data" -Destination "${{ env.DIST_DIR }}/" -Recurse | |
| - name: Upload workflow artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ env.PACKAGE_NAME }} | |
| path: ${{ env.DIST_DIR }} | |
| - name: Create release archive | |
| if: startsWith(github.ref, 'refs/tags/') | |
| run: | | |
| Compress-Archive -Path "${{ env.DIST_DIR }}/*" -DestinationPath "${{ env.BUILD_DIR }}/${{ env.PACKAGE_NAME }}.zip" | |
| - name: Upload release archive | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: svenstaro/upload-release-action@v2 | |
| with: | |
| repo_token: ${{ secrets.GITHUB_TOKEN }} | |
| file: ${{ env.BUILD_DIR }}/${{ env.PACKAGE_NAME }}.zip | |
| asset_name: Windows-quickstart-kirara-ai-${{ github.ref_name }}.zip | |
| tag: ${{ github.ref_name }} | |
| overwrite: false | |
| body: "Windows x64 用户的快速启动包" |