Add test results upload (#630)

This commit is contained in:
Paul Higinbotham 2022-11-02 15:02:43 -07:00 committed by GitHub
parent d9738a3f13
commit 13a249a7ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 17 deletions

View File

@ -123,5 +123,13 @@ stages:
- pwsh: |
Import-Module -Name "$(Build.SourcesDirectory)/contrib/win32/openssh/AzDOBuildTools" -Force
Invoke-OpenSSHTests -OpenSSHBinPath "$env:SystemDrive/OpenSSH"
Publish-OpenSSHTestResults # TODO: #
# Copy test results to results directory
$ResultsDirectory = "$(Build.SourcesDirectory)/Win32OpenSSHTestResults"
Copy-OpenSSHTestResults -ResultsPath $ResultsDirectory
# Upload test results artifact
if (Test-Path -Path $ResultsDirectory)
{
$artifactName = 'Win32-OpenSSH-TestResults'
Write-Host "##vso[artifact.upload containerfolder=$artifactName;artifactname=$artifactName;]$ResultsDirectory"
}
displayName: Run tests and publish results

View File

@ -32,6 +32,6 @@ FunctionsToExport = @(
'Invoke-AzDOBuild',
'Install-OpenSSH',
'Invoke-OpenSSHTests',
'Publish-OpenSSHTestResults')
'Copy-OpenSSHTestResults')
}

View File

@ -404,33 +404,50 @@ function Invoke-OpenSSHTests
<#
.Synopsis
upload OpenSSH pester test results.
Collect OpenSSH pester test results into one directory
#>
function Publish-OpenSSHTestResults
function Copy-OpenSSHTestResults
{
if ($env:APPVEYOR_JOB_ID)
param (
[Parameter(Mandatory=$true)]
[string] $ResultsPath
)
if (Test-Path -Path $ResultsPath)
{
Remove-Item -Path $ResultsPath -Force -Recurse -ErrorAction Ignore
}
Write-Verbose -Verbose "Creating test results directory for artifacts upload: $ResultsPath"
$null = New-Item -Path $ResultsPath -ItemType Directory -Force
if (Test-Path -Path $ResultsPath)
{
$setupresultFile = Resolve-Path $Global:OpenSSHTestInfo["SetupTestResultsFile"] -ErrorAction Ignore
if( (Test-Path $Global:OpenSSHTestInfo["SetupTestResultsFile"]) -and $setupresultFile)
if ($setupresultFile)
{
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", $setupresultFile)
Write-BuildMessage -Message "Setup test results uploaded!" -Category Information
Write-Verbose -Verbose "Copying set-up test results file, $setupresultFile, to results directory"
Copy-Item -Path $setupresultFile -Destination $ResultsPath
}
$E2EresultFile = Resolve-Path $Global:OpenSSHTestInfo["E2ETestResultsFile"] -ErrorAction Ignore
if( (Test-Path $Global:OpenSSHTestInfo["E2ETestResultsFile"]) -and $E2EresultFile)
if ($E2EresultFile)
{
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", $E2EresultFile)
Write-BuildMessage -Message "E2E test results uploaded!" -Category Information
Write-Verbose -Verbose "Copying end-to-end test results file, $E2EresultFile, to results directory"
Copy-Item -Path $E2EresultFile -Destination $ResultsPath
}
$uninstallResultFile = Resolve-Path $Global:OpenSSHTestInfo["UninstallTestResultsFile"] -ErrorAction Ignore
if( (Test-Path $Global:OpenSSHTestInfo["UninstallTestResultsFile"]) -and $uninstallResultFile)
if ($uninstallResultFile)
{
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", $uninstallResultFile)
Write-BuildMessage -Message "Uninstall test results uploaded!" -Category Information
Write-Verbose -Verbose "Copying uninstall test results file, $uninstallResultFile, to results directory"
Copy-Item -Path $uninstallResultFile -Destination $ResultsPath
}
}
else
{
Write-Verbose -Verbose "Unable to write test results path for test artifacts upload: $ResultsPath"
}
if ($env:DebugMode)
{
@ -439,11 +456,11 @@ function Publish-OpenSSHTestResults
if($env:TestPassed -ieq 'True')
{
Write-BuildMessage -Message "The checkin validation success!" -Category Information
Write-BuildMessage -Message "The checkin validation tests succeeded!" -Category Information
}
else
{
Write-BuildMessage -Message "The checkin validation failed!" -Category Error
throw "The checkin validation failed!"
Write-BuildMessage -Message "The checkin validation tests failed!" -Category Error
throw "The checkin validation tests failed!"
}
}