Files
PowerShell-PowerShell/tools/releaseBuild/Images/GenericLinuxFiles/PowerShellPackage.ps1
T
Dongbo Wang c3e5e35892 Fix the Linux release build (#5660)
The Linux release build was broken because AppImage,tar,tar-arm in build.json is turned into a string of "AppImage,tar,tar-arm" by docker run. Now it's changed to use switch parameters.
2017-12-10 10:29:53 -08:00

58 lines
1.6 KiB
PowerShell

# PowerShell Script to build and package PowerShell from specified form and branch
# Script is intented to use in Docker containers
# Ensure PowerShell is available in the provided image
param (
[string] $location = "/powershell",
# Destination location of the package on docker host
[string] $destination = '/mnt',
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
[ValidateNotNullOrEmpty()]
[string]$ReleaseTag,
[switch]$AppImage,
[switch]$TarX64,
[switch]$TarArm
)
$releaseTagParam = @{}
if ($ReleaseTag)
{
$releaseTagParam = @{ 'ReleaseTag' = $ReleaseTag }
}
Push-Location
try {
Set-Location $location
Import-Module "$location/build.psm1"
Import-Module "$location/tools/packaging"
Start-PSBootstrap -Package -NoSudo
Start-PSBuild -Crossgen -PSModuleRestore @releaseTagParam
Start-PSPackage @releaseTagParam
if ($AppImage) { Start-PSPackage -Type AppImage @releaseTagParam }
if ($TarX64) { Start-PSPackage -Type tar @releaseTagParam }
if ($TarArm) {
## Build 'linux-arm' and create 'tar.gz' package for it.
## Note that 'linux-arm' can only be built on Ubuntu environment.
Start-PSBuild -Runtime linux-arm -PSModuleRestore @releaseTagParam
Start-PSPackage -Type tar-arm @releaseTagParam
}
}
finally
{
Pop-Location
}
$linuxPackages = Get-ChildItem "$location/powershell*" -Include *.deb,*.rpm,*.AppImage,*.tar.gz
foreach ($linuxPackage in $linuxPackages)
{
$filePath = $linuxPackage.FullName
Write-Verbose "Copying $filePath to $destination" -Verbose
Copy-Item -Path $filePath -Destination $destination -force
}