5 changed files with 231 additions and 1 deletions
@ -0,0 +1,18 @@ |
|||||||
|
$rootFolder = (Get-Item -Path "./" -Verbose).FullName |
||||||
|
|
||||||
|
$solutionPaths = @( |
||||||
|
"../" |
||||||
|
) |
||||||
|
|
||||||
|
foreach ($solutionPath in $solutionPaths) { |
||||||
|
$solutionAbsPath = (Join-Path $rootFolder $solutionPath) |
||||||
|
Set-Location $solutionAbsPath |
||||||
|
dotnet build --configuration Release |
||||||
|
if (-Not $?) { |
||||||
|
Write-Host ("Build failed for the solution: " + $solutionPath) |
||||||
|
Set-Location $rootFolder |
||||||
|
exit $LASTEXITCODE |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Set-Location $rootFolder |
@ -0,0 +1,126 @@ |
|||||||
|
# Nuget包文件夹 |
||||||
|
$packFolder = (Get-Item -Path "./" -Verbose).FullName |
||||||
|
# 根文件夹 |
||||||
|
$rootFolder = Join-Path $packFolder "../" |
||||||
|
|
||||||
|
function Write-Info |
||||||
|
{ |
||||||
|
param( |
||||||
|
[Parameter(Mandatory = $true)] |
||||||
|
[string] |
||||||
|
$text |
||||||
|
) |
||||||
|
|
||||||
|
Write-Host $text -ForegroundColor Black -BackgroundColor Green |
||||||
|
|
||||||
|
try |
||||||
|
{ |
||||||
|
$host.UI.RawUI.WindowTitle = $text |
||||||
|
} |
||||||
|
catch |
||||||
|
{ |
||||||
|
#Changing window title is not suppoerted! |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function Write-Error |
||||||
|
{ |
||||||
|
param( |
||||||
|
[Parameter(Mandatory = $true)] |
||||||
|
[string] |
||||||
|
$text |
||||||
|
) |
||||||
|
|
||||||
|
Write-Host $text -ForegroundColor Red -BackgroundColor Black |
||||||
|
} |
||||||
|
|
||||||
|
function Seperator |
||||||
|
{ |
||||||
|
Write-Host ("_" * 100) -ForegroundColor gray |
||||||
|
} |
||||||
|
|
||||||
|
function Get-Current-Version { |
||||||
|
$commonPropsFilePath = resolve-path "../common.props" |
||||||
|
$commonPropsXmlCurrent = [xml](Get-Content $commonPropsFilePath ) |
||||||
|
$currentVersion = $commonPropsXmlCurrent.Project.PropertyGroup.Version.Trim() |
||||||
|
return $currentVersion |
||||||
|
} |
||||||
|
|
||||||
|
function Get-Current-Branch { |
||||||
|
return git branch --show-current |
||||||
|
} |
||||||
|
|
||||||
|
function Read-File { |
||||||
|
param( |
||||||
|
[Parameter(Mandatory = $true)] |
||||||
|
[string] |
||||||
|
$filePath |
||||||
|
) |
||||||
|
|
||||||
|
$pathExists = Test-Path -Path $filePath -PathType Leaf |
||||||
|
if ($pathExists) |
||||||
|
{ |
||||||
|
return Get-Content $filePath |
||||||
|
} |
||||||
|
else{ |
||||||
|
Write-Error "$filePath path does not exist!" |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
# 解决方案列表 |
||||||
|
$solutions = ( |
||||||
|
# Sanhe.Abp.Framework |
||||||
|
"./" |
||||||
|
) |
||||||
|
|
||||||
|
# 项目列表 |
||||||
|
$projects = ( |
||||||
|
# modules/common |
||||||
|
"modules/common/Sanhe.Abp.EntityFrameworkCore", |
||||||
|
"modules/common/Sanhe.Abp.ExceptionHandling", |
||||||
|
"modules/common/Sanhe.Abp.ExceptionHandling.Emailing", |
||||||
|
"modules/common/Sanhe.Abp.Features.LimitValidation", |
||||||
|
"modules/common/Sanhe.Abp.Features.LimitValidation.Redis", |
||||||
|
"modules/common/Sanhe.Abp.Features.LimitValidation.Redis.Client", |
||||||
|
"modules/common/Sanhe.Abp.Hangfire.Dashboard", |
||||||
|
"modules/common/Sanhe.Abp.Hangfire.Storage.PostgreSql", |
||||||
|
"modules/common/Sanhe.Abp.IdGenerator", |
||||||
|
"modules/common/Sanhe.Abp.Localization.Dynamic", |
||||||
|
"modules/common/Sanhe.Abp.Notifications", |
||||||
|
"modules/common/Sanhe.Abp.PinyinConverter", |
||||||
|
"modules/common/Sanhe.Abp.PinyinConverter.ToolGoodWords", |
||||||
|
"modules/common/Sanhe.Abp.RealTime", |
||||||
|
"modules/common/Sanhe.Abp.Wrapper", |
||||||
|
|
||||||
|
# modules/elasticsearch |
||||||
|
"modules/elasticsearch/Sanhe.Abp.Elasticsearch", |
||||||
|
|
||||||
|
# modules/identity |
||||||
|
"modules/identity/Sanhe.Abp.Identity.Application", |
||||||
|
"modules/identity/Sanhe.Abp.Identity.Application.Contracts", |
||||||
|
"modules/identity/Sanhe.Abp.Identity.Domain", |
||||||
|
"modules/identity/Sanhe.Abp.Identity.Domain.Shared", |
||||||
|
"modules/identity/Sanhe.Abp.Identity.EntityFrameworkCore", |
||||||
|
"modules/identity/Sanhe.Abp.Identity.HttpApi", |
||||||
|
"modules/identity/Sanhe.Abp.Identity.HttpApi.Client", |
||||||
|
|
||||||
|
# modules/localization-management |
||||||
|
"modules/localization-management/Sanhe.Abp.LocalizationManagement.Application", |
||||||
|
"modules/localization-management/Sanhe.Abp.LocalizationManagement.Application.Contracts", |
||||||
|
"modules/localization-management/Sanhe.Abp.LocalizationManagement.Domain", |
||||||
|
"modules/localization-management/Sanhe.Abp.LocalizationManagement.Domain.Shared", |
||||||
|
"modules/localization-management/Sanhe.Abp.LocalizationManagement.EntityFrameworkCore", |
||||||
|
"modules/localization-management/Sanhe.Abp.LocalizationManagement.HttpApi", |
||||||
|
|
||||||
|
# modules/menu-management |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.Application", |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.Application.Contracts", |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.Domain", |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.Domain.Identity", |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.Domain.Shared", |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.EntityFrameworkCore", |
||||||
|
"modules/menu-management/Sanhe.Abp.MenuManagement.HttpApi", |
||||||
|
|
||||||
|
# modules/mvc |
||||||
|
"modules/mvc/Sanhe.Abp.AspNetCore.Mvc.Wrapper" |
||||||
|
) |
@ -0,0 +1,43 @@ |
|||||||
|
. ".\common.ps1" |
||||||
|
|
||||||
|
# 重新构建所有解决方案 |
||||||
|
foreach($solution in $solutions) { |
||||||
|
$solutionFolder = Join-Path $rootFolder $solution |
||||||
|
Set-Location $solutionFolder |
||||||
|
& dotnet restore |
||||||
|
} |
||||||
|
|
||||||
|
# 删除旧的Nuget包 |
||||||
|
del *.nupkg |
||||||
|
|
||||||
|
# 创建新的Nuget包 |
||||||
|
$i = 0 |
||||||
|
$projectsCount = $projects.length |
||||||
|
Write-Info "Running dotnet pack on $projectsCount projects..." |
||||||
|
|
||||||
|
foreach($project in $projects) { |
||||||
|
$i += 1 |
||||||
|
$projectFolder = Join-Path $rootFolder $project |
||||||
|
$projectName = ($project -split '/')[-1] |
||||||
|
|
||||||
|
# 创建Nuget包 |
||||||
|
Write-Info "[$i / $projectsCount] - Packing project: $projectName" |
||||||
|
Set-Location $projectFolder |
||||||
|
dotnet clean |
||||||
|
dotnet pack -c Release |
||||||
|
|
||||||
|
if (-Not $?) { |
||||||
|
Write-Error "Packaging failed for the project: $projectName" |
||||||
|
exit $LASTEXITCODE |
||||||
|
} |
||||||
|
|
||||||
|
# 移动Nuget包 |
||||||
|
$projectName = $project.Substring($project.LastIndexOf("/") + 1) |
||||||
|
$projectPackPath = Join-Path $projectFolder ("/bin/Release/" + $projectName + ".*.nupkg") |
||||||
|
Move-Item -Force $projectPackPath $packFolder |
||||||
|
|
||||||
|
Seperator |
||||||
|
} |
||||||
|
|
||||||
|
# 退回Nuget包文件夹 |
||||||
|
Set-Location $packFolder |
@ -0,0 +1,44 @@ |
|||||||
|
. ".\common.ps1" |
||||||
|
|
||||||
|
$apiKey = $args[0] |
||||||
|
|
||||||
|
# »ñÈ¡°æ±¾ |
||||||
|
[xml]$commonPropsXml = Get-Content (Join-Path $rootFolder "common.props") |
||||||
|
$version = $commonPropsXml.Project.PropertyGroup.Version |
||||||
|
|
||||||
|
# ·¢²¼ËùÓÐNuget°ü |
||||||
|
$i = 0 |
||||||
|
$errorCount = 0 |
||||||
|
$totalProjectsCount = $projects.length |
||||||
|
$nugetUrl = "http://nuget.sanhexinxi.com:80/v3/index.json" |
||||||
|
Set-Location $packFolder |
||||||
|
|
||||||
|
foreach($project in $projects) { |
||||||
|
$i += 1 |
||||||
|
$projectFolder = Join-Path $rootFolder $project |
||||||
|
$projectName = ($project -split '/')[-1] |
||||||
|
$nugetPackageName = $projectName + "." + $version + ".nupkg" |
||||||
|
$nugetPackageExists = Test-Path $nugetPackageName -PathType leaf |
||||||
|
|
||||||
|
Write-Info "[$i / $totalProjectsCount] - Pushing: $nugetPackageName" |
||||||
|
|
||||||
|
if ($nugetPackageExists) |
||||||
|
{ |
||||||
|
dotnet nuget push $nugetPackageName --skip-duplicate -s $nugetUrl --api-key "$apiKey" |
||||||
|
#Write-Host ("Deleting package from local: " + $nugetPackageName) |
||||||
|
#Remove-Item $nugetPackageName -Force |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
Write-Host ("********** ERROR PACKAGE NOT FOUND: " + $nugetPackageName) -ForegroundColor red |
||||||
|
$errorCount += 1 |
||||||
|
#Exit |
||||||
|
} |
||||||
|
|
||||||
|
Write-Host "--------------------------------------------------------------`r`n" |
||||||
|
} |
||||||
|
|
||||||
|
if ($errorCount > 0) |
||||||
|
{ |
||||||
|
Write-Host ("******* $errorCount error(s) occured *******") -ForegroundColor red |
||||||
|
} |
Loading…
Reference in new issue