完成 0.2.0 预发布收口与中文安装器

This commit is contained in:
2026-09-09 01:20:45 +08:00
parent 90262aaf6d
commit 1f5e26c361
30 changed files with 1826 additions and 121 deletions
+29 -1
View File
@@ -258,8 +258,36 @@ Add-Result -Name "Production build and packaging do not depend on internal QA" `
-Passed ($releaseIsolationMatches.Count -eq 0) `
-Details ($(if ($releaseIsolationMatches.Count -eq 0) { "No internal QA dependency" } else { $releaseIsolationMatches -join "; " }))
$releaseValidationProblems = New-Object System.Collections.Generic.List[string]
$packageValidation = $config.releaseValidation.packageScript
$packageScriptPath = Resolve-AbsolutePath -Path ([string]$packageValidation.path) -BasePath $resolvedRoot
$packageScriptText = Get-Content -LiteralPath $packageScriptPath -Raw -Encoding UTF8
foreach ($rule in $packageValidation.requiredPatterns) {
if ($packageScriptText -notmatch ([string]$rule.pattern)) {
$releaseValidationProblems.Add("package missing $($rule.name)")
}
}
foreach ($rule in $packageValidation.forbiddenPatterns) {
if ($packageScriptText -match ([string]$rule.pattern)) {
$releaseValidationProblems.Add("package contains $($rule.name)")
}
}
$installerValidation = $config.releaseValidation.installerScript
$installerScriptPath = Resolve-AbsolutePath -Path ([string]$installerValidation.path) -BasePath $resolvedRoot
$installerScriptText = Get-Content -LiteralPath $installerScriptPath -Raw -Encoding UTF8
foreach ($rule in $installerValidation.requiredPatterns) {
if ($installerScriptText -notmatch ([string]$rule.pattern)) {
$releaseValidationProblems.Add("installer missing $($rule.name)")
}
}
Add-Result -Name "Release packaging and installer contain required safeguards" `
-Passed ($releaseValidationProblems.Count -eq 0) `
-Details ($(if ($releaseValidationProblems.Count -eq 0) { "Package inputs, QA isolation, startup option, and uninstall cleanup are declared" } else { $releaseValidationProblems -join "; " }))
$infrastructureProblems = New-Object System.Collections.Generic.List[string]
foreach ($scriptFile in Get-ChildItem -LiteralPath (Join-Path $resolvedRoot "internal/qa/scripts") -Filter "*.ps1" -File) {
foreach ($relativeScriptPath in $config.releaseValidation.powershellParseFiles) {
$scriptFile = Get-Item -LiteralPath (Resolve-AbsolutePath -Path ([string]$relativeScriptPath) -BasePath $resolvedRoot)
$tokens = $null
$parseErrors = $null
[System.Management.Automation.Language.Parser]::ParseFile(