feat: integrate performance upgrade and agent inspection tooling
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
param([string]$Feed = 'Artifacts/AgentSupport/packages')
|
||||
$ErrorActionPreference = 'Stop'
|
||||
$root = [IO.Path]::GetFullPath((Join-Path $PSScriptRoot '../..'))
|
||||
$feedPath = [IO.Path]::GetFullPath((Join-Path $root $Feed))
|
||||
New-Item -ItemType Directory -Force -Path $feedPath | Out-Null
|
||||
$catalog = Get-Content (Join-Path $root 'Tools/Release/package-versions.json') -Raw | ConvertFrom-Json
|
||||
$projects = @{}
|
||||
foreach ($project in Get-ChildItem (Join-Path $root 'Assets/Modules') -Filter '*.csproj' -Recurse) {
|
||||
if ($project.FullName -match '[\\/](obj|bin|Development~|Tools~|packages)[\\/]') { continue }
|
||||
[xml]$xml = Get-Content $project.FullName -Raw
|
||||
$id = @($xml.Project.PropertyGroup.PackageId | Where-Object { $_ })[0]
|
||||
if ($id) { $projects[[string]$id] = $project.FullName }
|
||||
}
|
||||
foreach ($project in Get-ChildItem (Join-Path $root 'Godot/Packages') -Filter '*.csproj' -Recurse) {
|
||||
[xml]$xml = Get-Content $project.FullName -Raw
|
||||
$id = @($xml.Project.PropertyGroup.PackageId | Where-Object { $_ })[0]
|
||||
if ($id) { $projects[[string]$id] = $project.FullName }
|
||||
}
|
||||
$projects['ShrinkSDK.Inspection'] = Join-Path $root 'Assets/ShrinkInspection/DotNet~/ShrinkSDK.Inspection.csproj'
|
||||
$done = [Collections.Generic.HashSet[string]]::new()
|
||||
$visiting = [Collections.Generic.HashSet[string]]::new()
|
||||
function Build-Package([string]$id) {
|
||||
if ($done.Contains($id)) { return }
|
||||
if (-not $visiting.Add($id)) { throw "NuGet dependency cycle: $id" }
|
||||
$project = $projects[$id]
|
||||
[xml]$xml = Get-Content $project -Raw
|
||||
foreach ($dependency in $xml.Project.ItemGroup.PackageReference) {
|
||||
if ($dependency -and $projects.ContainsKey([string]$dependency.Include)) { Build-Package ([string]$dependency.Include) }
|
||||
}
|
||||
$log = Join-Path $feedPath "$id.pack.log"
|
||||
& dotnet pack $project -c Release -o $feedPath "-p:RestoreSources=$feedPath" -p:NuGetAudit=false --nologo --verbosity quiet *> $log
|
||||
if ($LASTEXITCODE -ne 0) { Get-Content $log -Tail 20; throw "Pack failed: $id" }
|
||||
[void]$visiting.Remove($id); [void]$done.Add($id)
|
||||
Write-Output "Packed $id"
|
||||
}
|
||||
foreach ($id in @($projects.Keys | Sort-Object)) { Build-Package $id }
|
||||
Reference in New Issue
Block a user