task/Build/TestSyntax.ps1
BuildTask TestSyntax -Stage Build -Order 1 -Definition { # Attempt to find syntax errors in module files. $hasSyntaxErrors = $false $buildInfo | Get-BuildItem -Type ShouldMerge -ExcludeClass | ForEach-Object { $tokens = $null [System.Management.Automation.Language.ParseError[]]$parseErrors = @() $null = [System.Management.Automation.Language.Parser]::ParseInput( (Get-Content $_.FullName -Raw), $_.FullName, [Ref]$tokens, [Ref]$parseErrors ) if ($parseErrors.Count -gt 0) { $parseErrors | Write-Error $hasSyntaxErrors = $true } } if ($hasSyntaxErrors) { throw 'TestSyntax failed' } } |