This commit is contained in:
XXXXRT666 2025-05-21 15:16:25 +03:00
parent 44a8a5c36e
commit 1489d9c580
2 changed files with 136 additions and 0 deletions

98
.github/test.ps1 vendored Normal file
View File

@ -0,0 +1,98 @@
$ErrorActionPreference = "Stop"
Write-Host "Current location: $(Get-Location)"
$cuda = $env:TORCH_CUDA
if (-not $cuda) {
Write-Error "Missing TORCH_CUDA env (cu124 or cu128)"
exit 1
}
$date = $env:DATE_SUFFIX
if ([string]::IsNullOrWhiteSpace($date)) {
$date = Get-Date -Format "MMdd"
}
$pkgName = "GPT-SoVITS-$date"
$tmpDir = "tmp"
$srcDir = $PWD
$suffix = $env:PKG_SUFFIX
if (-not [string]::IsNullOrWhiteSpace($suffix)) {
$pkgName = "$pkgName$suffix"
}
$pkgName = "$pkgName-$cuda"
Write-Host "[INFO] Cleaning .git..."
Remove-Item "$srcDir\.git" -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "[INFO] Creating tmp dir..."
New-Item -ItemType Directory -Force -Path $tmpDir
Write-Host "[INFO] System Python version:"
python --version
python -m site
Write-Host "[INFO] Preparing final directory $pkgName ..."
$items = @(Get-ChildItem -Filter "*.sh") +
@(Get-ChildItem -Filter "*.ipynb") +
@("$tmpDir", ".github", "Docker", "docs", ".gitignore", ".dockerignore", "README.md")
Remove-Item $items -Force -Recurse -ErrorAction SilentlyContinue
$curr = Get-Location
Set-Location ../
Get-ChildItem .
Copy-Item -Path $curr -Destination $pkgName -Recurse
$7zPath = "$pkgName.7z"
$start = Get-Date
Write-Host "Compress Starting at $start"
& "C:\Program Files\7-Zip\7z.exe" a -t7z "$7zPath" "$pkgName" -m0=lzma2 -mx=5 -md=256m -ms=on -mmt=on -bsp1
$end = Get-Date
Write-Host "Elapsed time: $($end - $start)"
$config = @"
;!@Install@!UTF-8!
Title="GPT-SoVITS Installation"
BeginPrompt="本软件以MIT协议开源, 作者不对软件具备任何控制力, 使用软件者、传播软件导出的声音者自负全责 / This software is open-sourced under the MIT license. The author has no control over it. Users and distributors of the generated voices are solely responsible."
ExtractPath="."
;!@InstallEnd@!
"@
Set-Content -Path "config.txt" -Value $config -Encoding UTF8
# $SfxModule = "C:\Program Files\7-Zip\7z.sfx"
$SfxModule = "C:\Program Files\7-Zip\7zSD.sfx"
$SfxExePath = "$pkgName.exe"
Write-Host "[INFO] Creating self-extracting archive: $SfxExePath"
# $cmd = 'copy /b "{0}"+"config.txt"+"{1}" "{2}"' -f $SfxModule, $7zPath, $SfxExePath
# Write-Host "[INFO] Running CMD: $cmd"
# cmd /c $cmd
$cmd = 'copy /b "{0}" + "{1}" "{2}"' -f $SfxModule, $7zPath, $SfxExePath
Write-Host "[INFO] Running CMD: $cmd"
cmd /c $cmd
python -m pip install --upgrade pip
python -m pip install "modelscope" "huggingface_hub[hf_transfer]" --no-warn-script-location
Write-Host "[INFO] Uploading to ModelScope..."
$msUser = $env:MODELSCOPE_USERNAME
$msToken = $env:MODELSCOPE_TOKEN
if (-not $msUser -or -not $msToken) {
Write-Error "Missing MODELSCOPE_USERNAME or MODELSCOPE_TOKEN"
exit 1
}
modelscope upload "$msUser/GPT-SoVITS-Packages" "$SfxExePath" "$SfxExePath" --repo-type model --token $msToken
Write-Host "[SUCCESS] Uploaded: $SfxExePath to ModelScope"
Write-Host "[INFO] Uploading to HuggingFace..."
$hfUser = $env:HUGGINGFACE_USERNAME
$hfToken = $env:HUGGINGFACE_TOKEN
if (-not $hfUser -or -not $hfToken) {
Write-Error "Missing HUGGINGFACE_USERNAME or HUGGINGFACE_TOKEN"
exit 1
}
$env:HF_HUB_ENABLE_HF_TRANSFER = "1"
huggingface-cli upload "$hfUser/GPT-SoVITS-Packages" "$SfxExePath" "$SfxExePath" --repo-type model --token $hfToken
Write-Host "[SUCCESS] Uploaded: $SfxExePath to HuggingFace"

38
.github/workflows/test.yaml vendored Normal file
View File

@ -0,0 +1,38 @@
name: Build and Upload Windows Package
on:
workflow_dispatch:
inputs:
date:
description: "Date suffix (optional)"
required: false
default: ""
suffix:
description: "Package name suffix (optional)"
required: false
default: ""
jobs:
build:
runs-on: windows-latest
strategy:
matrix:
torch_cuda: [cu124, cu128]
env:
TORCH_CUDA: ${{ matrix.torch_cuda }}
MODELSCOPE_USERNAME: ${{ secrets.MODELSCOPE_USERNAME }}
MODELSCOPE_TOKEN: ${{ secrets.MODELSCOPE_TOKEN }}
HUGGINGFACE_USERNAME: ${{ secrets.HUGGINGFACE_USERNAME }}
HUGGINGFACE_TOKEN: ${{ secrets.HUGGINGFACE_TOKEN }}
DATE_SUFFIX: ${{ github.event.inputs.date }}
PKG_SUFFIX: ${{ github.event.inputs.suffix }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run Build and Upload Script
shell: pwsh
run: |
Move-Item .github/build_windows_packages.ps1 ../build_windows_packages.ps1
../test.ps1