mirror of
https://github.com/Dictionarry-Hub/database.git
synced 2025-12-11 08:17:02 +00:00
ci(validation): improve output for readability, use lighter image
This commit is contained in:
6
.github/workflows/regex.yml
vendored
6
.github/workflows/regex.yml
vendored
@@ -18,14 +18,10 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
validate:
|
validate:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
container: mcr.microsoft.com/powershell:lts-alpine-3.18
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup PowerShell
|
|
||||||
run: |
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y powershell
|
|
||||||
|
|
||||||
- name: validate
|
- name: validate
|
||||||
run: pwsh scripts/validateAllPatterns.ps1
|
run: pwsh scripts/validateAllPatterns.ps1
|
||||||
|
|
||||||
|
|||||||
@@ -29,13 +29,8 @@ if ($patternFiles.Count -eq 0) {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Log -Level "INFO" -Message "Found $($patternFiles.Count) pattern files to validate"
|
|
||||||
|
|
||||||
# Validate patterns sequentially
|
# Validate patterns sequentially
|
||||||
$failedPatterns = @()
|
$failedPatterns = @()
|
||||||
$completed = 0
|
|
||||||
$totalFiles = $patternFiles.Count
|
|
||||||
$lastPercentLogged = 0
|
|
||||||
|
|
||||||
foreach ($file in $patternFiles) {
|
foreach ($file in $patternFiles) {
|
||||||
try {
|
try {
|
||||||
@@ -53,36 +48,28 @@ foreach ($file in $patternFiles) {
|
|||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
$failedPatterns += @{
|
$failedPatterns += @{
|
||||||
File = $file.FullName
|
File = $file.BaseName
|
||||||
Error = $_.ToString()
|
Error = $_.Exception.Message
|
||||||
Pattern = $pattern
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$completed++
|
|
||||||
|
|
||||||
# Log progress every 10%
|
|
||||||
$percentComplete = [math]::Floor(($completed / $totalFiles) * 10) * 10
|
|
||||||
if ($percentComplete -gt $lastPercentLogged) {
|
|
||||||
Write-Log -Level "INFO" -Message "$percentComplete% complete ($completed/$totalFiles files)"
|
|
||||||
$lastPercentLogged = $percentComplete
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Log errors
|
# Log errors
|
||||||
foreach ($failure in $failedPatterns) {
|
|
||||||
Write-Log -Level "ERROR" -Message "$($failure.File): $($failure.Error)"
|
|
||||||
if ($Verbose) {
|
|
||||||
Write-Log -Level "ERROR" -Message "Pattern was: $($failure.Pattern)"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Summary
|
|
||||||
if ($failedPatterns.Count -gt 0) {
|
if ($failedPatterns.Count -gt 0) {
|
||||||
Write-Log -Level "ERROR" -Message "$($failedPatterns.Count) pattern(s) failed validation"
|
Write-Host "ERRORS:"
|
||||||
|
|
||||||
|
# Find max name length for padding
|
||||||
|
$maxNameLength = ($failedPatterns | ForEach-Object { $_.File.Length } | Measure-Object -Maximum).Maximum
|
||||||
|
|
||||||
|
foreach ($failure in $failedPatterns) {
|
||||||
|
# Extract just the core error
|
||||||
|
$errorMsg = $failure.Error
|
||||||
|
if ($errorMsg -match "at offset (\d+)\. (.+?)\.?`"") {
|
||||||
|
$errorMsg = "offset $($matches[1]): $($matches[2])"
|
||||||
|
}
|
||||||
|
|
||||||
|
$paddedName = $failure.File.PadRight($maxNameLength)
|
||||||
|
Write-Host " $paddedName | $errorMsg"
|
||||||
|
}
|
||||||
exit 1
|
exit 1
|
||||||
}
|
|
||||||
else {
|
|
||||||
Write-Log -Level "SUCCESS" -Message "All $($patternFiles.Count) patterns validated successfully"
|
|
||||||
exit 0
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user