mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-27 15:54:22 +02:00
Reduce the console output of build (#54)
1. Reduce the console output of build 2. move to use powershell core 6.0.0.14 3. one minor fix in pester tests. * Update the path of unittest results and build log. suppress the warning message. * limitoutput of choco installation. * fix of quotes * remove redundant log * Set x64 Release build as default
This commit is contained in:
parent
50e4499fe0
commit
2017ffdff0
12
appveyor.yml
12
appveyor.yml
@ -11,12 +11,12 @@ init:
|
|||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- ps: |
|
- ps: |
|
||||||
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1
|
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1 -WarningAction SilentlyContinue
|
||||||
Invoke-AppVeyorBuild
|
Invoke-AppVeyorBuild
|
||||||
|
|
||||||
after_build:
|
after_build:
|
||||||
- ps: |
|
- ps: |
|
||||||
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1
|
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1 -WarningAction SilentlyContinue
|
||||||
Install-OpenSSH
|
Install-OpenSSH
|
||||||
- ps: Write-Verbose "Restart computer ..."
|
- ps: Write-Verbose "Restart computer ..."
|
||||||
- ps: Restart-Computer -ComputerName localhost -Force
|
- ps: Restart-Computer -ComputerName localhost -Force
|
||||||
@ -25,19 +25,19 @@ after_build:
|
|||||||
|
|
||||||
before_test:
|
before_test:
|
||||||
- ps: |
|
- ps: |
|
||||||
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1
|
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1 -WarningAction SilentlyContinue
|
||||||
Install-TestDependencies
|
Install-TestDependencies
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
- cmd: |
|
- cmd: |
|
||||||
"%ProgramFiles%\PowerShell\6.0.0.12\powershell.exe" -Command "Import-Module \"%APPVEYOR_BUILD_FOLDER%\contrib\win32\openssh\AppVeyor.psm1\";Run-OpenSSHTests"
|
"%ProgramFiles%\PowerShell\6.0.0.14\powershell.exe" -Command "Import-Module \"%APPVEYOR_BUILD_FOLDER%\contrib\win32\openssh\AppVeyor.psm1\" -WarningAction SilentlyContinue;Run-OpenSSHTests"
|
||||||
|
|
||||||
after_test:
|
after_test:
|
||||||
- ps: |
|
- ps: |
|
||||||
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1
|
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1 -WarningAction SilentlyContinue
|
||||||
Upload-OpenSSHTestResults
|
Upload-OpenSSHTestResults
|
||||||
|
|
||||||
on_finish:
|
on_finish:
|
||||||
- ps: |
|
- ps: |
|
||||||
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1
|
Import-Module $env:APPVEYOR_BUILD_FOLDER\contrib\win32\openssh\AppVeyor.psm1 -WarningAction SilentlyContinue
|
||||||
Publish-Artifact
|
Publish-Artifact
|
||||||
|
@ -1,6 +1,26 @@
|
|||||||
$ErrorActionPreference = 'Stop'
|
$ErrorActionPreference = 'Stop'
|
||||||
Import-Module $PSScriptRoot\build.psm1
|
Import-Module $PSScriptRoot\build.psm1
|
||||||
$repoRoot = Get-RepositoryRoot
|
$repoRoot = Get-RepositoryRoot
|
||||||
|
$script:logFile = join-path $repoRoot.FullName "appveyorlog.log"
|
||||||
|
|
||||||
|
|
||||||
|
<#
|
||||||
|
Called by Write-BuildMsg to write to the build log, if it exists.
|
||||||
|
#>
|
||||||
|
function Write-Log
|
||||||
|
{
|
||||||
|
param
|
||||||
|
(
|
||||||
|
[Parameter(Mandatory=$true)]
|
||||||
|
[ValidateNotNullOrEmpty()]
|
||||||
|
[string] $Message
|
||||||
|
)
|
||||||
|
# write it to the log file, if present.
|
||||||
|
if (-not ([string]::IsNullOrEmpty($script:logFile)))
|
||||||
|
{
|
||||||
|
Add-Content -Path $script:logFile -Value $Message
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Sets a build variable
|
# Sets a build variable
|
||||||
Function Set-BuildVariable
|
Function Set-BuildVariable
|
||||||
@ -66,10 +86,8 @@ function Invoke-AppVeyorFull
|
|||||||
# Implements the AppVeyor 'build_script' step
|
# Implements the AppVeyor 'build_script' step
|
||||||
function Invoke-AppVeyorBuild
|
function Invoke-AppVeyorBuild
|
||||||
{
|
{
|
||||||
Start-SSHBuild -Configuration Release -NativeHostArch x64 -Verbose
|
Start-SSHBuild -Configuration Release -NativeHostArch x64
|
||||||
Start-SSHBuild -Configuration Debug -NativeHostArch x64 -Verbose
|
Start-SSHBuild -Configuration Debug -NativeHostArch x86
|
||||||
Start-SSHBuild -Configuration Release -NativeHostArch x86 -Verbose
|
|
||||||
Start-SSHBuild -Configuration Debug -NativeHostArch x86 -Verbose
|
|
||||||
}
|
}
|
||||||
|
|
||||||
<#
|
<#
|
||||||
@ -84,7 +102,7 @@ function Invoke-MSIEXEC
|
|||||||
[string] $InstallFile
|
[string] $InstallFile
|
||||||
)
|
)
|
||||||
|
|
||||||
Write-Verbose "Installing $InstallFile..."
|
Write-Log -Message "Installing $InstallFile..."
|
||||||
$arguments = @(
|
$arguments = @(
|
||||||
"/i"
|
"/i"
|
||||||
"`"$InstallFile`""
|
"`"$InstallFile`""
|
||||||
@ -93,10 +111,10 @@ function Invoke-MSIEXEC
|
|||||||
)
|
)
|
||||||
$process = Start-Process -FilePath msiexec.exe -ArgumentList $arguments -Wait -PassThru
|
$process = Start-Process -FilePath msiexec.exe -ArgumentList $arguments -Wait -PassThru
|
||||||
if ($process.ExitCode -eq 0){
|
if ($process.ExitCode -eq 0){
|
||||||
Write-Output "$InstallFile has been successfully installed"
|
Write-Log -Message "$InstallFile has been successfully installed."
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Write-Output "installer exit code $($process.ExitCode) for file $($InstallFile)"
|
Write-Log -Message "installer exit code $($process.ExitCode) for file $($InstallFile)"
|
||||||
}
|
}
|
||||||
|
|
||||||
return $process.ExitCode
|
return $process.ExitCode
|
||||||
@ -110,11 +128,11 @@ function Install-PSCoreFromGithub
|
|||||||
{
|
{
|
||||||
$downloadLocation = Download-PSCoreMSI
|
$downloadLocation = Download-PSCoreMSI
|
||||||
|
|
||||||
Write-Output "Installing PSCore ..."
|
Write-Log -Message "Installing PSCore ..."
|
||||||
if(-not [string]::IsNullOrEmpty($downloadLocation))
|
if(-not [string]::IsNullOrEmpty($downloadLocation))
|
||||||
{
|
{
|
||||||
$processExitCode = Invoke-MSIEXEC -InstallFile $downloadLocation
|
$processExitCode = Invoke-MSIEXEC -InstallFile $downloadLocation
|
||||||
Write-Output "Process exitcode: $processExitCode"
|
Write-Log -Message "Process exitcode: $processExitCode"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,27 +143,27 @@ function Install-PSCoreFromGithub
|
|||||||
function Get-PSCoreMSIDownloadURL
|
function Get-PSCoreMSIDownloadURL
|
||||||
{
|
{
|
||||||
$osversion = [String][Environment]::OSVersion.Version
|
$osversion = [String][Environment]::OSVersion.Version
|
||||||
Write-Host "osversion:$osversion"
|
|
||||||
if($osversion.StartsWith("6"))
|
if($osversion.StartsWith("6"))
|
||||||
{
|
{
|
||||||
if ($($env:PROCESSOR_ARCHITECTURE).Contains('64'))
|
if ($($env:PROCESSOR_ARCHITECTURE).Contains('64'))
|
||||||
{
|
{
|
||||||
return 'https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.12/PowerShell_6.0.0.12-alpha.12-win81-x64.msi'
|
return 'https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.14/PowerShell_6.0.0.14-alpha.14-win81-x64.msi'
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return ''
|
return 'https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.14/PowerShell_6.0.0.14-alpha.14-win7-x86.msi'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($osversion.Contains("10.0"))
|
elseif ($osversion.Contains("10.0"))
|
||||||
{
|
{
|
||||||
if ($($env:PROCESSOR_ARCHITECTURE).Contains('64'))
|
if ($($env:PROCESSOR_ARCHITECTURE).Contains('64'))
|
||||||
{
|
{
|
||||||
return 'https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.12/PowerShell_6.0.0.12-alpha.12-win10-x64.msi'
|
return 'https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.14/PowerShell_6.0.0.14-alpha.14-win10-x64.msi'
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return ''
|
return 'https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.14/PowerShell_6.0.0.14-alpha.14-win7-x86.msi'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -159,13 +177,13 @@ function Download-PSCoreMSI
|
|||||||
$url = Get-PSCoreMSIDownloadURL
|
$url = Get-PSCoreMSIDownloadURL
|
||||||
if([string]::IsNullOrEmpty($url))
|
if([string]::IsNullOrEmpty($url))
|
||||||
{
|
{
|
||||||
Write-Output "url is empty"
|
Write-Log -Message "url is empty"
|
||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
$parsed = $url.Substring($url.LastIndexOf("/") + 1)
|
$parsed = $url.Substring($url.LastIndexOf("/") + 1)
|
||||||
if(-not (Test-path "$env:SystemDrive\PScore" -PathType Container))
|
if(-not (Test-path "$env:SystemDrive\PScore" -PathType Container))
|
||||||
{
|
{
|
||||||
New-Item -ItemType Directory -Force -Path "$env:SystemDrive\PScore" | out-null
|
$null = New-Item -ItemType Directory -Force -Path "$env:SystemDrive\PScore" | out-null
|
||||||
}
|
}
|
||||||
$downloadLocation = "$env:SystemDrive\PScore\$parsed"
|
$downloadLocation = "$env:SystemDrive\PScore\$parsed"
|
||||||
if(-not (Test-path $downloadLocation -PathType Leaf))
|
if(-not (Test-path $downloadLocation -PathType Leaf))
|
||||||
@ -197,15 +215,14 @@ function Install-TestDependencies
|
|||||||
$isModuleAvailable = Get-Module 'Pester' -ListAvailable
|
$isModuleAvailable = Get-Module 'Pester' -ListAvailable
|
||||||
if (-not ($isModuleAvailable))
|
if (-not ($isModuleAvailable))
|
||||||
{
|
{
|
||||||
Write-Output 'Installing Pester...'
|
Write-Log -Message "Installing Pester..."
|
||||||
choco install Pester -y --force
|
choco install Pester -y --force --limitoutput
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( -not (Test-Path "$env:ProgramData\chocolatey\lib\sysinternals\tools" ) ) {
|
if ( -not (Test-Path "$env:ProgramData\chocolatey\lib\sysinternals\tools" ) ) {
|
||||||
Write-Output "sysinternals not present. Installing sysinternals."
|
Write-Log -Message "sysinternals not present. Installing sysinternals."
|
||||||
choco install sysinternals -y
|
choco install sysinternals -y --force --limitoutput
|
||||||
}
|
}
|
||||||
Write-Output "Installing pscore..."
|
|
||||||
Install-PSCoreFromGithub
|
Install-PSCoreFromGithub
|
||||||
}
|
}
|
||||||
<#
|
<#
|
||||||
@ -219,8 +236,8 @@ function Install-OpenSSH
|
|||||||
(
|
(
|
||||||
[string] $OpenSSHDir = "$env:SystemDrive\OpenSSH",
|
[string] $OpenSSHDir = "$env:SystemDrive\OpenSSH",
|
||||||
|
|
||||||
[ValidateSet('Debug', 'Release')]
|
[ValidateSet('Debug', 'Release', '')]
|
||||||
[string]$Configuration = "Debug",
|
[string]$Configuration = "",
|
||||||
|
|
||||||
[ValidateSet('x86', 'x64', '')]
|
[ValidateSet('x86', 'x64', '')]
|
||||||
[string]$NativeHostArch = ""
|
[string]$NativeHostArch = ""
|
||||||
@ -272,8 +289,8 @@ function Build-Win32OpenSSHPackage
|
|||||||
(
|
(
|
||||||
[string] $OpenSSHDir = "$env:SystemDrive\OpenSSH",
|
[string] $OpenSSHDir = "$env:SystemDrive\OpenSSH",
|
||||||
|
|
||||||
[ValidateSet('Debug', 'Release')]
|
[ValidateSet('Debug', 'Release', '')]
|
||||||
[string]$Configuration = "Debug",
|
[string]$Configuration = "",
|
||||||
|
|
||||||
[ValidateSet('x86', 'x64', '')]
|
[ValidateSet('x86', 'x64', '')]
|
||||||
[string]$NativeHostArch = ""
|
[string]$NativeHostArch = ""
|
||||||
@ -281,14 +298,14 @@ function Build-Win32OpenSSHPackage
|
|||||||
|
|
||||||
if (-not (Test-Path -Path $OpenSSHDir -PathType Container))
|
if (-not (Test-Path -Path $OpenSSHDir -PathType Container))
|
||||||
{
|
{
|
||||||
New-Item -Path $OpenSSHDir -ItemType Directory -Force -ErrorAction Stop
|
$null = New-Item -Path $OpenSSHDir -ItemType Directory -Force -ErrorAction Stop
|
||||||
}
|
}
|
||||||
|
|
||||||
[string] $platform = $env:PROCESSOR_ARCHITECTURE
|
[string] $platform = $env:PROCESSOR_ARCHITECTURE
|
||||||
if(-not [String]::IsNullOrEmpty($NativeHostArch))
|
if(-not [String]::IsNullOrEmpty($NativeHostArch))
|
||||||
{
|
{
|
||||||
$folderName = $NativeHostArch
|
$folderName = $NativeHostArch
|
||||||
if($NativeHostArch -eq 'x86')
|
if($NativeHostArch -ieq 'x86')
|
||||||
{
|
{
|
||||||
$folderName = "Win32"
|
$folderName = "Win32"
|
||||||
}
|
}
|
||||||
@ -305,8 +322,25 @@ function Build-Win32OpenSSHPackage
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if([String]::IsNullOrEmpty($Configuration))
|
||||||
|
{
|
||||||
|
if( $folderName -ieq "Win32" )
|
||||||
|
{
|
||||||
|
$RealConfiguration = "Debug"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$RealConfiguration = "Release"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$RealConfiguration = $Configuration
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[System.IO.DirectoryInfo] $repositoryRoot = Get-RepositoryRoot
|
[System.IO.DirectoryInfo] $repositoryRoot = Get-RepositoryRoot
|
||||||
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "bin\$folderName\$Configuration"
|
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "bin\$folderName\$RealConfiguration"
|
||||||
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHDir -Include *.exe,*.dll -Exclude *unittest*.* -Force -ErrorAction Stop
|
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHDir -Include *.exe,*.dll -Exclude *unittest*.* -Force -ErrorAction Stop
|
||||||
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "contrib\win32\openssh"
|
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "contrib\win32\openssh"
|
||||||
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHDir -Include *.ps1,sshd_config -Exclude AnalyzeCodeDiff.ps1 -Force -ErrorAction Stop
|
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHDir -Include *.ps1,sshd_config -Exclude AnalyzeCodeDiff.ps1 -Force -ErrorAction Stop
|
||||||
@ -315,7 +349,7 @@ function Build-Win32OpenSSHPackage
|
|||||||
$rktoolsPath = "${env:ProgramFiles(x86)}\Windows Resource Kits\Tools\ntrights.exe"
|
$rktoolsPath = "${env:ProgramFiles(x86)}\Windows Resource Kits\Tools\ntrights.exe"
|
||||||
if (-not (Test-Path -Path $rktoolsPath))
|
if (-not (Test-Path -Path $rktoolsPath))
|
||||||
{
|
{
|
||||||
Write-Information -MessageData "$packageName not present. Installing $packageName."
|
Write-Log -Message "$packageName not present. Installing $packageName."
|
||||||
choco install $packageName -y --force
|
choco install $packageName -y --force
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -327,7 +361,7 @@ function Build-Win32OpenSSHPackage
|
|||||||
$packageFolder = $env:APPVEYOR_BUILD_FOLDER
|
$packageFolder = $env:APPVEYOR_BUILD_FOLDER
|
||||||
}
|
}
|
||||||
|
|
||||||
$package = "$packageFolder\Win32OpenSSH$Configuration$folderName.zip"
|
$package = "$packageFolder\Win32OpenSSH$RealConfiguration$folderName.zip"
|
||||||
$allPackage = "$packageFolder\Win32OpenSSH*.zip"
|
$allPackage = "$packageFolder\Win32OpenSSH*.zip"
|
||||||
if (Test-Path $allPackage)
|
if (Test-Path $allPackage)
|
||||||
{
|
{
|
||||||
@ -349,8 +383,8 @@ function Deploy-OpenSSHTests
|
|||||||
(
|
(
|
||||||
[string] $OpenSSHTestDir = "$env:SystemDrive\OpenSSH",
|
[string] $OpenSSHTestDir = "$env:SystemDrive\OpenSSH",
|
||||||
|
|
||||||
[ValidateSet('Debug', 'Release')]
|
[ValidateSet('Debug', 'Release', '')]
|
||||||
[string]$Configuration = "Debug",
|
[string]$Configuration = "",
|
||||||
|
|
||||||
[ValidateSet('x86', 'x64', '')]
|
[ValidateSet('x86', 'x64', '')]
|
||||||
[string]$NativeHostArch = ""
|
[string]$NativeHostArch = ""
|
||||||
@ -358,7 +392,7 @@ function Deploy-OpenSSHTests
|
|||||||
|
|
||||||
if (-not (Test-Path -Path $OpenSSHTestDir -PathType Container))
|
if (-not (Test-Path -Path $OpenSSHTestDir -PathType Container))
|
||||||
{
|
{
|
||||||
New-Item -Path $OpenSSHTestDir -ItemType Directory -Force -ErrorAction Stop
|
$null = New-Item -Path $OpenSSHTestDir -ItemType Directory -Force -ErrorAction Stop
|
||||||
}
|
}
|
||||||
|
|
||||||
[string] $platform = $env:PROCESSOR_ARCHITECTURE
|
[string] $platform = $env:PROCESSOR_ARCHITECTURE
|
||||||
@ -382,15 +416,30 @@ function Deploy-OpenSSHTests
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if([String]::IsNullOrEmpty($Configuration))
|
||||||
|
{
|
||||||
|
if( $folderName -ieq "Win32" )
|
||||||
|
{
|
||||||
|
$RealConfiguration = "Debug"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$RealConfiguration = "Release"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$RealConfiguration = $Configuration
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
[System.IO.DirectoryInfo] $repositoryRoot = Get-RepositoryRoot
|
[System.IO.DirectoryInfo] $repositoryRoot = Get-RepositoryRoot
|
||||||
|
|
||||||
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "regress\pesterTests"
|
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "regress\pesterTests"
|
||||||
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHTestDir -Include *.ps1,*.psm1 -Force -ErrorAction Stop
|
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHTestDir -Include *.ps1,*.psm1 -Force -ErrorAction Stop
|
||||||
|
|
||||||
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "bin\$folderName\$Configuration"
|
$sourceDir = Join-Path $repositoryRoot.FullName -ChildPath "bin\$folderName\$RealConfiguration"
|
||||||
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHTestDir -Exclude ssh-agent.exe, sshd.exe -Force -ErrorAction Stop
|
Copy-Item -Path "$sourceDir\*" -Destination $OpenSSHTestDir -Exclude ssh-agent.exe, sshd.exe -Force -ErrorAction Stop
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -420,9 +469,7 @@ function Add-BuildLog
|
|||||||
|
|
||||||
if (Test-Path -Path $buildLog)
|
if (Test-Path -Path $buildLog)
|
||||||
{
|
{
|
||||||
Write-Output "Adding $buildLog to local artifacts"
|
|
||||||
$null = $artifacts.Add($buildLog)
|
$null = $artifacts.Add($buildLog)
|
||||||
Write-Output "Adding $buildLog to local artifacts- completed"
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -450,13 +497,9 @@ function Add-Artifact
|
|||||||
$files = Get-ChildItem -Path $FileToAdd -ErrorAction Ignore
|
$files = Get-ChildItem -Path $FileToAdd -ErrorAction Ignore
|
||||||
if ($files -ne $null)
|
if ($files -ne $null)
|
||||||
{
|
{
|
||||||
|
|
||||||
$files | % {
|
$files | % {
|
||||||
Write-Output "Adding $($_.FullName) to local artifacts"
|
|
||||||
$null = $artifacts.Add($_.FullName)
|
$null = $artifacts.Add($_.FullName)
|
||||||
Write-Output "Adding $($_.FullName) to local artifacts- completed"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -480,13 +523,11 @@ function Publish-Artifact
|
|||||||
}
|
}
|
||||||
|
|
||||||
Add-Artifact -artifacts $artifacts -FileToAdd "$packageFolder\Win32OpenSSH*.zip"
|
Add-Artifact -artifacts $artifacts -FileToAdd "$packageFolder\Win32OpenSSH*.zip"
|
||||||
Add-Artifact -artifacts $artifacts -FileToAdd "$packageFolder\OpenSSH\UnitTestResults.txt"
|
Add-Artifact -artifacts $artifacts -FileToAdd "$env:SystemDrive\OpenSSH\UnitTestResults.txt"
|
||||||
|
Add-Artifact -artifacts $artifacts -FileToAdd "$script:logFile"
|
||||||
|
|
||||||
# Get the build.log file for each build configuration
|
# Get the build.log file for each build configuration
|
||||||
#Add-BuildLog -artifacts $artifacts -buildLog (Get-BuildLogFile -root $repoRoot.FullName -Configuration Release -NativeHostArch x86)
|
Add-BuildLog -artifacts $artifacts -buildLog (Get-BuildLogFile -root $repoRoot.FullName)
|
||||||
#Add-BuildLog -artifacts $artifacts -buildLog (Get-BuildLogFile -root $repoRoot.FullName -Configuration Debug -NativeHostArch x86)
|
|
||||||
#Add-BuildLog -artifacts $artifacts -buildLog (Get-BuildLogFile -root $repoRoot.FullName -Configuration Release -NativeHostArch x64)
|
|
||||||
Add-BuildLog -artifacts $artifacts -buildLog (Get-BuildLogFile -root $repoRoot.FullName -Configuration Debug -NativeHostArch x64)
|
|
||||||
|
|
||||||
foreach ($artifact in $artifacts)
|
foreach ($artifact in $artifacts)
|
||||||
{
|
{
|
||||||
@ -506,7 +547,7 @@ function Run-OpenSSHPesterTest
|
|||||||
|
|
||||||
# Discover all CI tests and run them.
|
# Discover all CI tests and run them.
|
||||||
Push-Location $testRoot
|
Push-Location $testRoot
|
||||||
Write-Output "Running OpenSSH Pester tests..."
|
Write-Log -Message "Running OpenSSH Pester tests..."
|
||||||
$testFolders = Get-ChildItem *.tests.ps1 -Recurse | ForEach-Object{ Split-Path $_.FullName} | Sort-Object -Unique
|
$testFolders = Get-ChildItem *.tests.ps1 -Recurse | ForEach-Object{ Split-Path $_.FullName} | Sort-Object -Unique
|
||||||
|
|
||||||
Invoke-Pester $testFolders -OutputFormat NUnitXml -OutputFile $outputXml -Tag 'CI'
|
Invoke-Pester $testFolders -OutputFormat NUnitXml -OutputFile $outputXml -Tag 'CI'
|
||||||
@ -523,7 +564,7 @@ function Run-OpenSSHUnitTest
|
|||||||
|
|
||||||
# Discover all CI tests and run them.
|
# Discover all CI tests and run them.
|
||||||
Push-Location $testRoot
|
Push-Location $testRoot
|
||||||
Write-Output "Running OpenSSH unit tests..."
|
Write-Log -Message "Running OpenSSH unit tests..."
|
||||||
if (Test-Path $unitTestOutputFile)
|
if (Test-Path $unitTestOutputFile)
|
||||||
{
|
{
|
||||||
Remove-Item -Path $unitTestOutputFile -Force -ErrorAction SilentlyContinue
|
Remove-Item -Path $unitTestOutputFile -Force -ErrorAction SilentlyContinue
|
||||||
@ -534,13 +575,13 @@ function Run-OpenSSHUnitTest
|
|||||||
if ($unitTestFiles -ne $null)
|
if ($unitTestFiles -ne $null)
|
||||||
{
|
{
|
||||||
$unitTestFiles | % {
|
$unitTestFiles | % {
|
||||||
Write-Output "Running OpenSSH unit $($_.FullName)..."
|
Write-Log -Message "Running OpenSSH unit $($_.FullName)..."
|
||||||
& $_.FullName >> $unitTestOutputFile
|
& $_.FullName >> $unitTestOutputFile
|
||||||
$errorCode = $LASTEXITCODE
|
$errorCode = $LASTEXITCODE
|
||||||
if ($errorCode -ne 0)
|
if ($errorCode -ne 0)
|
||||||
{
|
{
|
||||||
$testFailed = $true
|
$testFailed = $true
|
||||||
Write-Output "$($_.FullName) test failed for OpenSSH.`nExitCode: $error"
|
Write-Log -Message "$($_.FullName) test failed for OpenSSH.`nExitCode: $error"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -615,5 +656,4 @@ function Upload-OpenSSHTestResults
|
|||||||
{
|
{
|
||||||
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
|
(New-Object 'System.Net.WebClient').UploadFile("https://ci.appveyor.com/api/testresults/nunit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path $testResultsFile))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -134,15 +134,14 @@ function Write-BuildMsg
|
|||||||
#>
|
#>
|
||||||
function Start-SSHBootstrap
|
function Start-SSHBootstrap
|
||||||
{
|
{
|
||||||
|
[bool] $silent = -not $script:Verbose
|
||||||
|
|
||||||
Set-StrictMode -Version Latest
|
Set-StrictMode -Version Latest
|
||||||
Write-BuildMsg -AsInfo -Message "Checking tools and dependencies"
|
Write-BuildMsg -AsInfo -Message "Checking tools and dependencies" -Silent:$silent
|
||||||
|
|
||||||
$machinePath = [Environment]::GetEnvironmentVariable('Path', 'MACHINE')
|
$machinePath = [Environment]::GetEnvironmentVariable('Path', 'MACHINE')
|
||||||
$newMachineEnvironmentPath = $machinePath
|
$newMachineEnvironmentPath = $machinePath
|
||||||
|
|
||||||
# NOTE: Unless -Verbose is specified, most informational output will only go to the log file.
|
|
||||||
[bool] $silent = -not $script:Verbose
|
|
||||||
|
|
||||||
# Install chocolatey
|
# Install chocolatey
|
||||||
$chocolateyPath = "$env:AllUsersProfile\chocolatey\bin"
|
$chocolateyPath = "$env:AllUsersProfile\chocolatey\bin"
|
||||||
if(Get-Command "choco" -ErrorAction SilentlyContinue)
|
if(Get-Command "choco" -ErrorAction SilentlyContinue)
|
||||||
@ -151,18 +150,18 @@ function Start-SSHBootstrap
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsInfo -Message "Chocolatey not present. Installing chocolatey."
|
Write-BuildMsg -AsInfo -Message "Chocolatey not present. Installing chocolatey." -Silent:$silent
|
||||||
Invoke-Expression ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
|
Invoke-Expression ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
|
||||||
|
|
||||||
if (-not ($machinePath.ToLower().Contains($chocolateyPath.ToLower())))
|
if (-not ($machinePath.ToLower().Contains($chocolateyPath.ToLower())))
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsVerbose -Message "Adding $chocolateyPath to Path environment variable"
|
Write-BuildMsg -AsVerbose -Message "Adding $chocolateyPath to Path environment variable" -Silent:$silent
|
||||||
$newMachineEnvironmentPath += ";$chocolateyPath"
|
$newMachineEnvironmentPath += ";$chocolateyPath"
|
||||||
$env:Path += ";$chocolateyPath"
|
$env:Path += ";$chocolateyPath"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsVerbose -Message "$chocolateyPath already present in Path environment variable"
|
Write-BuildMsg -AsVerbose -Message "$chocolateyPath already present in Path environment variable" -Silent:$silent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +169,7 @@ function Start-SSHBootstrap
|
|||||||
$gitCmdPath = "$env:ProgramFiles\git\cmd"
|
$gitCmdPath = "$env:ProgramFiles\git\cmd"
|
||||||
if (-not ($machinePath.ToLower().Contains($gitCmdPath.ToLower())))
|
if (-not ($machinePath.ToLower().Contains($gitCmdPath.ToLower())))
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsVerbose -Message "Adding $gitCmdPath to Path environment variable"
|
Write-BuildMsg -AsVerbose -Message "Adding $gitCmdPath to Path environment variable" -Silent:$silent
|
||||||
$newMachineEnvironmentPath = "$gitCmdPath;$newMachineEnvironmentPath"
|
$newMachineEnvironmentPath = "$gitCmdPath;$newMachineEnvironmentPath"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -186,7 +185,7 @@ function Start-SSHBootstrap
|
|||||||
|
|
||||||
if (-not ($machinePath.ToLower().Contains($nativeMSBuildPath.ToLower())))
|
if (-not ($machinePath.ToLower().Contains($nativeMSBuildPath.ToLower())))
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsVerbose -Message "Adding $nativeMSBuildPath to Path environment variable"
|
Write-BuildMsg -AsVerbose -Message "Adding $nativeMSBuildPath to Path environment variable" -Silent:$silent
|
||||||
$newMachineEnvironmentPath += ";$nativeMSBuildPath"
|
$newMachineEnvironmentPath += ";$nativeMSBuildPath"
|
||||||
$env:Path += ";$nativeMSBuildPath"
|
$env:Path += ";$nativeMSBuildPath"
|
||||||
}
|
}
|
||||||
@ -207,8 +206,8 @@ function Start-SSHBootstrap
|
|||||||
|
|
||||||
if (-not (Test-Path -Path $nasmPath -PathType Container))
|
if (-not (Test-Path -Path $nasmPath -PathType Container))
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsInfo -Message "$packageName not present. Installing $packageName."
|
Write-BuildMsg -AsInfo -Message "$packageName not present. Installing $packageName." -Silent:$silent
|
||||||
choco install $packageName -y --force --execution-timeout 10000
|
choco install $packageName -y --force --limitoutput --execution-timeout 10000
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -221,9 +220,9 @@ function Start-SSHBootstrap
|
|||||||
|
|
||||||
if ($null -eq $VSPackageInstalled)
|
if ($null -eq $VSPackageInstalled)
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsInfo -Message "$packageName not present. Installing $packageName."
|
Write-BuildMsg -AsInfo -Message "$packageName not present. Installing $packageName." -Silent:$silent
|
||||||
$adminFilePath = "$script:OpenSSHRoot\contrib\win32\openssh\VSWithBuildTools.xml"
|
$adminFilePath = "$script:OpenSSHRoot\contrib\win32\openssh\VSWithBuildTools.xml"
|
||||||
choco install $packageName -packageParameters "--AdminFile $adminFilePath" -y --force --execution-timeout 10000
|
choco install $packageName -packageParameters "--AdminFile $adminFilePath" -y --force --limitoutput --execution-timeout 10000
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -236,8 +235,8 @@ function Start-SSHBootstrap
|
|||||||
|
|
||||||
if (-not (Test-Path -Path $sdkPath))
|
if (-not (Test-Path -Path $sdkPath))
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsInfo -Message "Windows 8.1 SDK not present. Installing $packageName."
|
Write-BuildMsg -AsInfo -Message "Windows 8.1 SDK not present. Installing $packageName." -Silent:$silent
|
||||||
choco install $packageName -y --force
|
choco install $packageName -y --limitoutput --force
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -262,7 +261,7 @@ function Start-SSHBootstrap
|
|||||||
$item = Get-Item(Join-Path -Path $env:VS140COMNTOOLS -ChildPath '../../vc')
|
$item = Get-Item(Join-Path -Path $env:VS140COMNTOOLS -ChildPath '../../vc')
|
||||||
|
|
||||||
$script:vcPath = $item.FullName
|
$script:vcPath = $item.FullName
|
||||||
Write-BuildMsg -AsVerbose -Message "vcPath: $script:vcPath"
|
Write-BuildMsg -AsVerbose -Message "vcPath: $script:vcPath" -Silent:$silent
|
||||||
if ((Test-Path -Path "$script:vcPath\vcvarsall.bat") -eq $false)
|
if ((Test-Path -Path "$script:vcPath\vcvarsall.bat") -eq $false)
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsError -ErrorAction Stop -Message "Could not find Visual Studio vcvarsall.bat at" + $script:vcPath
|
Write-BuildMsg -AsError -ErrorAction Stop -Message "Could not find Visual Studio vcvarsall.bat at" + $script:vcPath
|
||||||
@ -271,15 +270,17 @@ function Start-SSHBootstrap
|
|||||||
|
|
||||||
function Clone-Win32OpenSSH
|
function Clone-Win32OpenSSH
|
||||||
{
|
{
|
||||||
|
[bool] $silent = -not $script:Verbose
|
||||||
|
|
||||||
$win32OpenSSHPath = join-path $script:gitRoot "Win32-OpenSSH"
|
$win32OpenSSHPath = join-path $script:gitRoot "Win32-OpenSSH"
|
||||||
if (-not (Test-Path -Path $win32OpenSSHPath -PathType Container))
|
if (-not (Test-Path -Path $win32OpenSSHPath -PathType Container))
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsInfo -Message "clone repo Win32-OpenSSH"
|
Write-BuildMsg -AsInfo -Message "clone repo Win32-OpenSSH" -Silent:$silent
|
||||||
Push-Location $gitRoot
|
Push-Location $gitRoot
|
||||||
git clone -q --recursive https://github.com/PowerShell/Win32-OpenSSH.git $win32OpenSSHPath
|
git clone -q --recursive https://github.com/PowerShell/Win32-OpenSSH.git $win32OpenSSHPath
|
||||||
Pop-Location
|
Pop-Location
|
||||||
}
|
}
|
||||||
Write-BuildMsg -AsInfo -Message "pull latest from repo Win32-OpenSSH"
|
Write-BuildMsg -AsInfo -Message "pull latest from repo Win32-OpenSSH" -Silent:$silent
|
||||||
Push-Location $win32OpenSSHPath
|
Push-Location $win32OpenSSHPath
|
||||||
git fetch -q origin
|
git fetch -q origin
|
||||||
git checkout -qf L1-Prod
|
git checkout -qf L1-Prod
|
||||||
@ -288,8 +289,10 @@ function Clone-Win32OpenSSH
|
|||||||
|
|
||||||
function Copy-OpenSSLSDK
|
function Copy-OpenSSLSDK
|
||||||
{
|
{
|
||||||
|
[bool] $silent = -not $script:Verbose
|
||||||
|
|
||||||
$sourcePath = Join-Path $script:gitRoot "Win32-OpenSSH\contrib\win32\openssh\OpenSSLSDK"
|
$sourcePath = Join-Path $script:gitRoot "Win32-OpenSSH\contrib\win32\openssh\OpenSSLSDK"
|
||||||
Write-BuildMsg -AsInfo -Message "copying $sourcePath"
|
Write-BuildMsg -AsInfo -Message "copying $sourcePath" -Silent:$silent
|
||||||
Copy-Item -Container -Path $sourcePath -Destination $PSScriptRoot -Recurse -Force -ErrorAction SilentlyContinue -ErrorVariable e
|
Copy-Item -Container -Path $sourcePath -Destination $PSScriptRoot -Recurse -Force -ErrorAction SilentlyContinue -ErrorVariable e
|
||||||
if($e -ne $null)
|
if($e -ne $null)
|
||||||
{
|
{
|
||||||
@ -306,7 +309,7 @@ function Start-SSHBuild
|
|||||||
[string]$NativeHostArch = "x64",
|
[string]$NativeHostArch = "x64",
|
||||||
|
|
||||||
[ValidateSet('Debug', 'Release', '')]
|
[ValidateSet('Debug', 'Release', '')]
|
||||||
[string]$Configuration = "Debug"
|
[string]$Configuration = "Release"
|
||||||
)
|
)
|
||||||
Set-StrictMode -Version Latest
|
Set-StrictMode -Version Latest
|
||||||
$script:BuildLogFile = $null
|
$script:BuildLogFile = $null
|
||||||
@ -322,6 +325,7 @@ function Start-SSHBuild
|
|||||||
{
|
{
|
||||||
$script:Verbose = ($PSBoundParameters['Verbose']).IsPresent
|
$script:Verbose = ($PSBoundParameters['Verbose']).IsPresent
|
||||||
}
|
}
|
||||||
|
[bool] $silent = -not $script:Verbose
|
||||||
|
|
||||||
$script:BuildLogFile = Get-BuildLogFile -root $repositoryRoot.FullName -Configuration $Configuration -NativeHostArch $NativeHostArch
|
$script:BuildLogFile = Get-BuildLogFile -root $repositoryRoot.FullName -Configuration $Configuration -NativeHostArch $NativeHostArch
|
||||||
if (Test-Path -Path $script:BuildLogFile)
|
if (Test-Path -Path $script:BuildLogFile)
|
||||||
@ -329,8 +333,7 @@ function Start-SSHBuild
|
|||||||
Remove-Item -Path $script:BuildLogFile
|
Remove-Item -Path $script:BuildLogFile
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-BuildMsg -AsInfo -Message "Starting Open SSH build."
|
Write-BuildMsg -AsInfo -Message "Starting Open SSH build; Build Log: $($script:BuildLogFile)"
|
||||||
Write-BuildMsg -AsInfo -Message "Build Log: $($script:BuildLogFile)"
|
|
||||||
|
|
||||||
Start-SSHBootstrap
|
Start-SSHBootstrap
|
||||||
|
|
||||||
@ -338,20 +341,19 @@ function Start-SSHBuild
|
|||||||
Copy-OpenSSLSDK
|
Copy-OpenSSLSDK
|
||||||
$msbuildCmd = "msbuild.exe"
|
$msbuildCmd = "msbuild.exe"
|
||||||
$solutionFile = Get-SolutionFile -root $repositoryRoot.FullName
|
$solutionFile = Get-SolutionFile -root $repositoryRoot.FullName
|
||||||
$cmdMsg = @("${solutionFile}", "/p:Platform=${NativeHostArch}", "/p:Configuration=${Configuration}", "/fl", "/flp:LogFile=${script:BuildLogFile}`;Append`;Verbosity=diagnostic")
|
$cmdMsg = @("${solutionFile}", "/p:Platform=${NativeHostArch}", "/p:Configuration=${Configuration}", "/noconlog", "/nologo", "/fl", "/flp:LogFile=${script:BuildLogFile}`;Append`;Verbosity=diagnostic")
|
||||||
|
#$cmdMsg = @("${solutionFile}", "/p:Platform=${NativeHostArch}", "/p:Configuration=${Configuration}", "/nologo", "/fl", "/flp:LogFile=${script:BuildLogFile}`;Append`;Verbosity=diagnostic")
|
||||||
|
|
||||||
Write-Information -MessageData $msbuildCmd
|
|
||||||
Write-Information -MessageData $cmdMsg
|
|
||||||
|
|
||||||
& $msbuildCmd $cmdMsg
|
& $msbuildCmd $cmdMsg
|
||||||
$errorCode = $LASTEXITCODE
|
$errorCode = $LASTEXITCODE
|
||||||
|
|
||||||
if ($errorCode -ne 0)
|
if ($errorCode -ne 0)
|
||||||
{
|
{
|
||||||
Write-BuildMsg -AsError -ErrorAction Stop -Message "Build failed for OpenSSH.`nExitCode: $error"
|
Write-BuildMsg -AsError -ErrorAction Stop -Message "Build failed for OpenSSH.`nExitCode: $error."
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-BuildMsg -AsVerbose -Message "Finished Open SSH build."
|
Write-BuildMsg -AsInfo -Message "SSH build passed."
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-BuildLogFile
|
function Get-BuildLogFile
|
||||||
@ -366,7 +368,7 @@ function Get-BuildLogFile
|
|||||||
[string]$NativeHostArch = "x64",
|
[string]$NativeHostArch = "x64",
|
||||||
|
|
||||||
[ValidateSet('Debug', 'Release', '')]
|
[ValidateSet('Debug', 'Release', '')]
|
||||||
[string]$Configuration = "Debug"
|
[string]$Configuration = "Release"
|
||||||
|
|
||||||
)
|
)
|
||||||
return Join-Path -Path $root -ChildPath "contrib\win32\openssh\OpenSSH$($Configuration)$($NativeHostArch).log"
|
return Join-Path -Path $root -ChildPath "contrib\win32\openssh\OpenSSH$($Configuration)$($NativeHostArch).log"
|
||||||
@ -414,4 +416,4 @@ function Get-RepositoryRoot
|
|||||||
throw new-object System.IO.DirectoryNotFoundException("Could not find the root of the GIT repository")
|
throw new-object System.IO.DirectoryNotFoundException("Could not find the root of the GIT repository")
|
||||||
}
|
}
|
||||||
|
|
||||||
Export-ModuleMember -Function Start-SSHBuild, Get-RepositoryRoot, Get-BuildLogFile, Clone-Win32OpenSSH, Copy-OpenSSLSDK
|
Export-ModuleMember -Function Start-SSHBuild, Get-RepositoryRoot, Get-BuildLogFile, Clone-Win32OpenSSH, Copy-OpenSSLSDK, Write-BuildMsg
|
@ -225,6 +225,11 @@ Class Machine
|
|||||||
|
|
||||||
[void] CleanupClient() {
|
[void] CleanupClient() {
|
||||||
Remove-item -path $($this.ClientKeyDirectory) -force -Recurse -ea silentlycontinue
|
Remove-item -path $($this.ClientKeyDirectory) -force -Recurse -ea silentlycontinue
|
||||||
|
$sshPath = split-path $this.knownHostOfCurrentUser -Parent
|
||||||
|
if(Test-Path $sshPath -PathType Container )
|
||||||
|
{
|
||||||
|
Remove-item -path $sshPath -force -Recurse
|
||||||
|
}
|
||||||
$this.CleanupPasswordSetting()
|
$this.CleanupPasswordSetting()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,10 +210,10 @@ Describe "Tests for scp command" -Tags "CI" {
|
|||||||
$client.CleanupPasswordSetting()
|
$client.CleanupPasswordSetting()
|
||||||
}
|
}
|
||||||
|
|
||||||
It 'File copy with -p and -v options: <Title> ' -TestCases:$testData {
|
It 'File copy with -p options: <Title> ' -TestCases:$testData {
|
||||||
param([string]$Title, $Source, $Destination)
|
param([string]$Title, $Source, $Destination)
|
||||||
|
|
||||||
.\scp -v -p $Source $Destination
|
.\scp -p $Source $Destination
|
||||||
#validate file content. DestPath is the path to the file.
|
#validate file content. DestPath is the path to the file.
|
||||||
$equal = @(Compare-Object (Get-ChildItem -path $SourceFilePath) (Get-ChildItem -path $DestinationFilePath) -Property Name, Length, LastWriteTime.DateTime).Length -eq 0
|
$equal = @(Compare-Object (Get-ChildItem -path $SourceFilePath) (Get-ChildItem -path $DestinationFilePath) -Property Name, Length, LastWriteTime.DateTime).Length -eq 0
|
||||||
$equal | Should Be $true
|
$equal | Should Be $true
|
||||||
@ -222,7 +222,7 @@ Describe "Tests for scp command" -Tags "CI" {
|
|||||||
It 'Directory recursive copy with -p and -v options: <Title> ' -TestCases:$testData1 {
|
It 'Directory recursive copy with -p and -v options: <Title> ' -TestCases:$testData1 {
|
||||||
param([string]$Title, $Source, $Destination)
|
param([string]$Title, $Source, $Destination)
|
||||||
|
|
||||||
.\scp -r -v $Source $Destination
|
.\scp -r -p $Source $Destination
|
||||||
$equal = @(Compare-Object (Get-Item -path $SourceDir ) (Get-Item -path (join-path $DestinationDir $SourceDirName) ) -Property Name, Length, LastWriteTime.DateTime).Length -eq 0
|
$equal = @(Compare-Object (Get-Item -path $SourceDir ) (Get-Item -path (join-path $DestinationDir $SourceDirName) ) -Property Name, Length, LastWriteTime.DateTime).Length -eq 0
|
||||||
$equal | Should Be $true
|
$equal | Should Be $true
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user