openssh-portable/contrib/win32/openssh/OpenSSH-build.ps1

51 lines
2.5 KiB
PowerShell

[cmdletbinding()]
# PowerShell Script to clone, build and package PowerShell from specified fork and branch
param (
[string] $repolocation = "$pwd\openssh-portable",
[string] $destination = "$env:WORKSPACE",
[ValidateSet('x86', 'x64', 'arm64', 'arm')]
[String]$NativeHostArch = 'x64',
[ValidateSet('Debug', 'Release')]
[string]$Configuration = "Release",
[switch]$NoOpenSSL,
[switch]$OneCore
)
try
{
Push-location $repolocation
Import-Module "$repolocation\contrib\win32\openssh\OpenSSHBuildHelper.psm1" -Force
$UnitTestFolder = "Unittests-$NativeHostArch"
$Bucket = "OpenSSH-$NativeHostArch"
if($NativeHostArch -ieq 'x86') {
$Bucket = "OpenSSH-Win32"
$UnitTestFolder = "Unittests-Win32"
}
elseif($NativeHostArch -ieq 'x64') {
$Bucket = "OpenSSH-Win64"
$UnitTestFolder = "Unittests-Win64"
}
Write-Verbose "Start-OpenSSHBuild -NativeHostArch $NativeHostArch -Configuration $Configuration -NoOpenSSL:$NoOpenSSL -Onecore:$OneCore -Verbose " -Verbose
Start-OpenSSHBuild -NativeHostArch $NativeHostArch -Configuration $Configuration -NoOpenSSL:$NoOpenSSL -Onecore:$OneCore -Verbose
Write-Verbose "Start-OpenSSHPackage -NativeHostArch $NativeHostArch -Configuration $Configuration -NoOpenSSL:$NoOpenSSL -Onecore:$OneCore -DestinationPath $repolocation\$($Bucket)_symbols" -verbose
Start-OpenSSHPackage -NativeHostArch $NativeHostArch -Configuration $Configuration -NoOpenSSL:$NoOpenSSL -Onecore:$OneCore -DestinationPath "$repolocation\$($Bucket)_symbols"
Copy-OpenSSHUnitTests -NativeHostArch $NativeHostArch -Configuration $Configuration -DestinationPath "$repolocation\UnitTests"
if(-not (Test-Path $destination))
{
New-Item -Path $destination -ItemType Directory -Force -ErrorAction Stop| Out-Null
}
#copy the build log
$buildLog = Get-BuildLogFile -NativeHostArch $NativeHostArch -Configuration $Configuration -root $repolocation
Write-Verbose "Copying $buildLog to $repolocation\$($Bucket)_symbols" -verbose
Copy-Item -Path $buildLog -Destination "$($Bucket)_symbols\" -Force -ErrorAction SilentlyContinue
$unitTestPaths = Get-ChildItem "$repolocation\UnitTests\*" -Directory
Compress-Archive -path $unitTestPaths.FullName -DestinationPath "$repolocation\$($Bucket)_symbols\$UnitTestFolder"
Compress-Archive -path "$repolocation\$($Bucket)_symbols\*" -DestinationPath "$destination\$($Bucket)_symbols"
}
finally
{
Pop-Location
}