Skip to content

Commit 0e6e274

Browse files
authored
Merge pull request #70102 from compnerd/510-stage
build: adjust the installer build and artifact staging
2 parents 674d3d7 + 72c7430 commit 0e6e274

File tree

1 file changed

+43
-24
lines changed

1 file changed

+43
-24
lines changed

utils/build.ps1

Lines changed: 43 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,13 @@ function Copy-File($Src, $Dst) {
255255
# Create the directory tree first so Copy-Item succeeds
256256
# If $Dst is the target directory, make sure it ends with "\"
257257
$DstDir = [IO.Path]::GetDirectoryName($Dst)
258-
New-Item -ItemType Directory -ErrorAction Ignore $DstDir | Out-Null
259-
Copy-Item -Force $Src $Dst
258+
if ($ToBatch) {
259+
Write-Output "md `"$DstDir`""
260+
Write-Output "copy /Y `"$Src`" `"$Dst`""
261+
} else {
262+
New-Item -ItemType Directory -ErrorAction Ignore $DstDir | Out-Null
263+
Copy-Item -Force $Src $Dst
264+
}
260265
}
261266

262267
function Copy-Directory($Src, $Dst) {
@@ -1626,46 +1631,56 @@ function Build-DocC() {
16261631
}
16271632
}
16281633

1629-
function Build-Installer() {
1634+
function Build-Installer($Arch) {
16301635
$Properties = @{
16311636
BundleFlavor = "offline";
1632-
DEVTOOLS_ROOT = "$($HostArch.ToolchainInstallRoot)\";
1633-
TOOLCHAIN_ROOT = "$($HostArch.ToolchainInstallRoot)\";
1637+
DEVTOOLS_ROOT = "$($Arch.ToolchainInstallRoot)\";
1638+
TOOLCHAIN_ROOT = "$($Arch.ToolchainInstallRoot)\";
16341639
INCLUDE_SWIFT_FORMAT = "true";
1635-
SWIFT_FORMAT_BUILD = "$($HostArch.BinaryCache)\swift-format\release";
1640+
SWIFT_FORMAT_BUILD = "$($Arch.BinaryCache)\swift-format\release";
16361641
INCLUDE_SWIFT_INSPECT = "true";
1637-
SWIFT_INSPECT_BUILD = "$($HostArch.BinaryCache)\swift-inspect\release";
1642+
SWIFT_INSPECT_BUILD = "$($Arch.BinaryCache)\swift-inspect\release";
16381643
INCLUDE_SWIFT_DOCC = "true";
1639-
SWIFT_DOCC_BUILD = "$($HostArch.BinaryCache)\swift-docc\release";
1644+
SWIFT_DOCC_BUILD = "$($Arch.BinaryCache)\swift-docc\release";
16401645
SWIFT_DOCC_RENDER_ARTIFACT_ROOT = "${SourceCache}\swift-docc-render-artifact";
16411646
}
16421647

16431648
Isolate-EnvVars {
1644-
Invoke-VsDevShell $HostArch
1645-
$VCRedistInstallerPath = "${env:VCToolsRedistDir}\vc_redist.$($HostArch.ShortName).exe"
1649+
Invoke-VsDevShell $Arch
1650+
$VCRedistInstallerPath = "${env:VCToolsRedistDir}\vc_redist.$($Arch.ShortName).exe"
16461651
if (Test-Path $VCRedistInstallerPath) {
16471652
$Properties["VCRedistInstaller"] = $VCRedistInstallerPath
16481653
$Properties["VSVersion"] = $env:VSCMD_VER
16491654
}
16501655
}
16511656

1652-
foreach ($Arch in $SDKArchs) {
1653-
$Properties["INCLUDE_$($Arch.VSName.ToUpperInvariant())_SDK"] = "true"
1654-
$Properties["PLATFORM_ROOT_$($Arch.VSName.ToUpperInvariant())"] = "$($Arch.PlatformInstallRoot)\"
1655-
$Properties["SDK_ROOT_$($Arch.VSName.ToUpperInvariant())"] = "$($Arch.SDKInstallRoot)\"
1657+
foreach ($SDK in $SDKArchs) {
1658+
$Properties["INCLUDE_$($SDK.VSName.ToUpperInvariant())_SDK"] = "true"
1659+
$Properties["PLATFORM_ROOT_$($SDK.VSName.ToUpperInvariant())"] = "$($SDK.PlatformInstallRoot)\"
1660+
$Properties["SDK_ROOT_$($SDK.VSName.ToUpperInvariant())"] = "$($SDK.SDKInstallRoot)\"
16561661
}
16571662

1658-
Build-WiXProject bundle\installer.wixproj -Arch $HostArch -Properties $Properties
1663+
Build-WiXProject bundle\installer.wixproj -Arch $Arch -Properties $Properties
1664+
}
16591665

1660-
if ($Stage -and (-not $ToBatch)) {
1661-
Copy-File "$($HostArch.BinaryCache)\installer\Release\$($HostArch.VSName)\*.cab" "$Stage\"
1662-
Copy-File "$($HostArch.BinaryCache)\installer\Release\$($HostArch.VSName)\*.msi" "$Stage\"
1663-
Copy-File "$($HostArch.BinaryCache)\installer\Release\$($HostArch.VSName)\*.msm" "$Stage\"
1664-
Copy-File "$($HostArch.BinaryCache)\installer\Release\$($HostArch.VSName)\installer.exe" "$Stage\"
1665-
# Extract installer engine to ease code-signing on swift.org CI
1666-
New-Item -Type Directory -Path "$($HostArch.BinaryCache)\installer\$($HostArch.VSName)\" -ErrorAction Ignore | Out-Null
1667-
Invoke-Program "$BinaryCache\wix-4.0.1\tools\net6.0\any\wix.exe" -- burn detach "$($HostArch.BinaryCache)\installer\Release\$($HostArch.VSName)\installer.exe" -engine "$Stage\installer-engine.exe" -intermediateFolder "$($HostArch.BinaryCache)\installer\$($HostArch.VSName)\"
1666+
function Stage-BuildArtifacts($Arch) {
1667+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($Arch.VSName)\*.cab" "$Stage\"
1668+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($Arch.VSName)\*.msi" "$Stage\"
1669+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($Arch.VSName)\rtl.cab" "$Stage\"
1670+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($Arch.VSName)\rtl.msi" "$Stage\"
1671+
foreach ($SDK in $SDKArchs) {
1672+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($SDK.VSName)\sdk.$($SDK.VSName).cab" "$Stage\"
1673+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($SDK.VSName)\sdk.$($SDK.VSName).msi" "$Stage\"
1674+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($SDK.VSName)\rtl.$($SDK.VSName).msm" "$Stage\"
16681675
}
1676+
Copy-File "$($Arch.BinaryCache)\installer\Release\$($Arch.VSName)\installer.exe" "$Stage\"
1677+
# Extract installer engine to ease code-signing on swift.org CI
1678+
if ($ToBatch) {
1679+
Write-Output "md `"$($Arch.BinaryCache)\installer\$($Arch.VSName)\`""
1680+
} else {
1681+
New-Item -Type Directory -Path "$($Arch.BinaryCache)\installer\$($Arch.VSName)\" -ErrorAction Ignore | Out-Null
1682+
}
1683+
Invoke-Program "$BinaryCache\wix-4.0.1\tools\net6.0\any\wix.exe" -- burn detach "$($Arch.BinaryCache)\installer\Release\$($Arch.VSName)\installer.exe" -engine "$Stage\installer-engine.exe" -intermediateFolder "$($Arch.BinaryCache)\installer\$($Arch.VSName)\"
16691684
}
16701685

16711686
#-------------------------------------------------------------------
@@ -1735,7 +1750,11 @@ if (-not $SkipBuild) {
17351750
}
17361751

17371752
if (-not $SkipPackaging) {
1738-
Invoke-BuildStep Build-Installer
1753+
Invoke-BuildStep Build-Installer $HostArch
1754+
}
1755+
1756+
if ($Stage) {
1757+
Stage-BuildArtifacts $HostArch
17391758
}
17401759

17411760
if ($Test -contains "swift") { Build-Compilers $HostArch -Test }

0 commit comments

Comments
 (0)