From dd6904f3917a3e89a489f69ce111fec614697e91 Mon Sep 17 00:00:00 2001 From: Sam Chau Date: Wed, 27 Aug 2025 05:31:55 +0930 Subject: [PATCH] ci(validation): improve output for readability, use lighter image --- .github/workflows/regex.yml | 6 +---- scripts/validateAllPatterns.ps1 | 47 ++++++++++++--------------------- 2 files changed, 18 insertions(+), 35 deletions(-) diff --git a/.github/workflows/regex.yml b/.github/workflows/regex.yml index 93fd6a7..ede388e 100644 --- a/.github/workflows/regex.yml +++ b/.github/workflows/regex.yml @@ -18,14 +18,10 @@ on: jobs: validate: runs-on: ubuntu-latest + container: mcr.microsoft.com/powershell:lts-alpine-3.18 steps: - uses: actions/checkout@v4 - - name: Setup PowerShell - run: | - sudo apt-get update - sudo apt-get install -y powershell - - name: validate run: pwsh scripts/validateAllPatterns.ps1 diff --git a/scripts/validateAllPatterns.ps1 b/scripts/validateAllPatterns.ps1 index 8417189..8acc333 100644 --- a/scripts/validateAllPatterns.ps1 +++ b/scripts/validateAllPatterns.ps1 @@ -29,13 +29,8 @@ if ($patternFiles.Count -eq 0) { exit 1 } -Write-Log -Level "INFO" -Message "Found $($patternFiles.Count) pattern files to validate" - # Validate patterns sequentially $failedPatterns = @() -$completed = 0 -$totalFiles = $patternFiles.Count -$lastPercentLogged = 0 foreach ($file in $patternFiles) { try { @@ -53,36 +48,28 @@ foreach ($file in $patternFiles) { } catch { $failedPatterns += @{ - File = $file.FullName - Error = $_.ToString() - Pattern = $pattern + File = $file.BaseName + Error = $_.Exception.Message } } - - $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 -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) { - 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 -} -else { - Write-Log -Level "SUCCESS" -Message "All $($patternFiles.Count) patterns validated successfully" - exit 0 } \ No newline at end of file