Files
AtomUI/scripts/PublishToLocalSources.ps1
T

97 lines
3.5 KiB
PowerShell

param (
[string]$localSourcesDir = "D:/nuget.local",
[string]$buildType = "Release"
)
$ErrorActionPreference = "Stop"
$PSNativeCommandUseErrorActionPreference = $true
$packageOutputDir = "../output/Nuget/$buildType"
function Push-NuGetPackages {
[CmdletBinding(SupportsShouldProcess = $true)]
param(
[string]$PackagePath = "../output/Nuget",
[Parameter(Mandatory = $true)]
[string]$Source
)
# 获取所有NuGet包
$packages = Get-ChildItem -Path $PackagePath -Filter *.nupkg -Recurse -File
if (-not $packages) {
Write-Warning "未找到任何.nupkg文件"
return
}
# 处理每个包
foreach ($pkg in $packages) {
if ($PSCmdlet.ShouldProcess($pkg.Name, "推送并删除")) {
try {
# 推送包
dotnet nuget push $pkg.FullName --source $Source
if ($LASTEXITCODE -eq 0) {
# 删除成功推送的包
Remove-Item $pkg.FullName -Force
Write-Host "✓ 成功: $($pkg.Name)" -ForegroundColor Green
} else {
Write-Warning "推送失败: $($pkg.Name) (退出码: $LASTEXITCODE)"
}
}
catch {
Write-Error "处理 $($pkg.Name) 时出错: $_"
}
}
}
}
$baseProjects = @(
"../src/AtomUI.Native/AtomUI.Native.csproj",
"../src/AtomUI.Localization/AtomUI.Localization.csproj",
"../src/AtomUI.Core/AtomUI.Core.csproj",
"../src/AtomUI.Fonts.AlibabaSans/AtomUI.Fonts.AlibabaSans.csproj",
"../src/AtomUI.Controls.Shared/AtomUI.Controls.Shared.csproj",
"../src/AtomUI.Controls/AtomUI.Controls.csproj",
"../src/AtomUI.Desktop.Controls/AtomUI.Desktop.Controls.csproj",
"../src/AtomUI.Toolkits.GalleryBase/AtomUI.Toolkits.GalleryBase.csproj",
"../src/AtomUI.Generator/AtomUI.Generator.csproj",
"../src/AtomUI.Icons.Shared/AtomUI.Icons.Shared.csproj",
"../src/AtomUI.Icons.AntDesign/AtomUI.Icons.AntDesign.csproj"
)
foreach ($project in $baseProjects) {
dotnet build -v minimal --configuration $buildType $project
}
foreach ($project in $baseProjects) {
dotnet pack --no-build --configuration $buildType $project
}
Push-NuGetPackages -PackagePath $packageOutputDir -Source $localSourcesDir
$extensionProjects = @(
"../src/AtomUI.Desktop.Controls.DataGrid/AtomUI.Desktop.Controls.DataGrid.csproj",
"../src/AtomUI.Desktop.Controls.ColorPicker/AtomUI.Desktop.Controls.ColorPicker.csproj"
)
foreach ($project in $extensionProjects) {
dotnet build -v minimal --configuration $buildType $project
dotnet pack --no-build --configuration $buildType $project
}
$languageProjects = @(
"../src/AtomUI.LanguagePack.Template/AtomUI.LanguagePack.Template.csproj",
"../src/LanguagePacks/pt-BR/AtomUI.Controls.I18n.PtBR/AtomUI.Controls.I18n.PtBR.csproj",
"../src/LanguagePacks/pt-BR/AtomUI.Desktop.Controls.I18n.PtBR/AtomUI.Desktop.Controls.I18n.PtBR.csproj",
"../src/LanguagePacks/pt-BR/AtomUI.Desktop.Controls.DataGrid.I18n.PtBR/AtomUI.Desktop.Controls.DataGrid.I18n.PtBR.csproj",
"../src/LanguagePacks/pt-BR/AtomUI.Desktop.Controls.ColorPicker.I18n.PtBR/AtomUI.Desktop.Controls.ColorPicker.I18n.PtBR.csproj",
"../src/LanguagePacks/pt-BR/AtomUI.I18n.PtBR/AtomUI.I18n.PtBR.csproj"
)
foreach ($project in $languageProjects) {
dotnet build -v minimal --configuration $buildType $project
dotnet pack --no-build --configuration $buildType $project
}
Push-NuGetPackages -PackagePath $packageOutputDir -Source $localSourcesDir