diff --git a/eng/common/scripts/logging.ps1 b/eng/common/scripts/logging.ps1 index 84adec47fea9..91640cd7eb5d 100644 --- a/eng/common/scripts/logging.ps1 +++ b/eng/common/scripts/logging.ps1 @@ -1,40 +1,93 @@ -function Test-SupportsDevOpsLogging() -{ - return ($null -ne $env:SYSTEM_TEAMPROJECTID) +function Test-SupportsDevOpsLogging() { + return ($null -ne $env:SYSTEM_TEAMPROJECTID) } -function LogWarning -{ - if (Test-SupportsDevOpsLogging) - { - Write-Host "##vso[task.LogIssue type=warning;]$args" - } - else - { - Write-Warning "$args" - } +function Test-SupportsGitHubLogging() { + return ($null -ne $env:GITHUB_ACTIONS) } -function LogError -{ - if (Test-SupportsDevOpsLogging) - { - Write-Host "##vso[task.LogIssue type=error;]$args" - } - else - { - Write-Error "$args" - } +function LogInfo { + Write-Host "$args" +} + +function LogWarning { + if (Test-SupportsDevOpsLogging) { + Write-Host ("##vso[task.LogIssue type=warning;]$args" -replace "`n", "%0D%0A") + } + elseif (Test-SupportsGitHubLogging) { + Write-Warning ("::warning::$args" -replace "`n", "%0D%0A") + } + else { + Write-Warning "$args" + } } -function LogDebug +function LogSuccess { + $esc = [char]27 + $green = "${esc}[32m" + $reset = "${esc}[0m" + + Write-Host "${green}$args${reset}" +} + +function LogErrorForFile($file, $errorString) { - if (Test-SupportsDevOpsLogging) - { - Write-Host "[debug]$args" - } - else - { - Write-Debug "$args" - } + if (Test-SupportsDevOpsLogging) { + Write-Host ("##vso[task.logissue type=error;sourcepath=$file;linenumber=1;columnnumber=1;]$errorString" -replace "`n", "%0D%0A") + } + elseif (Test-SupportsGitHubLogging) { + Write-Error ("::error file=$file,line=1,col=1::$errorString" -replace "`n", "%0D%0A") + } + else { + Write-Error "[Error in file $file]$errorString" + } +} + +function LogError { + if (Test-SupportsDevOpsLogging) { + Write-Host ("##vso[task.LogIssue type=error;]$args" -replace "`n", "%0D%0A") + } + elseif (Test-SupportsGitHubLogging) { + Write-Error ("::error::$args" -replace "`n", "%0D%0A") + } + else { + Write-Error "$args" + } +} + +function LogDebug { + if (Test-SupportsDevOpsLogging) { + Write-Host "[debug]$args" + } + elseif (Test-SupportsGitHubLogging) { + Write-Debug "::debug::$args" + } + else { + Write-Debug "$args" + } +} + +function LogGroupStart() { + if (Test-SupportsDevOpsLogging) { + Write-Host "##[group]$args" + } + elseif (Test-SupportsGitHubLogging) { + Write-Host "::group::$args" + } +} + +function LogGroupEnd() { + if (Test-SupportsDevOpsLogging) { + Write-Host "##[endgroup]" + } + elseif (Test-SupportsGitHubLogging) { + Write-Host "::endgroup::" + } +} + +function LogJobFailure() { + if (Test-SupportsDevOpsLogging) { + Write-Host "##vso[task.complete result=Failed;]" + } + # No equivalent for GitHub Actions. Failure is only determined by nonzero exit code. }