scripts/publish.ps1 (42 lines of code) (raw):
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
param (
[Parameter (Mandatory=$true)][string] $BuildConfiguration,
[Parameter (Mandatory=$true)][string] $BuildOutputDir,
[Parameter (Mandatory=$true)][string] $DabVersion,
[Parameter (Mandatory=$false)][switch] $Package,
[Parameter (Mandatory=$false)][switch] $CreateZip
)
$BuildRoot = Split-Path $PSScriptRoot -Parent
$dotnetTargetFrameworks = "net8.0"
$RIDs = "win-x64", "linux-x64", "osx-x64"
# Runs dotnet publish for each target framework and RID.
# Example results:
# \dotnetpublishout\publish\Release\net8.0\win-x64\dab
if ($Package)
{
foreach ($targetFramework in $dotnetTargetFrameworks)
{
foreach ($RID in $RIDs) {
$cmd = "dotnet publish --framework $targetFramework --configuration $BuildConfiguration --output $BuildOutputDir/publish/$BuildConfiguration/$targetFramework/$RID/dab --runtime $RID --self-contained true -p:Version=$DabVersion $BuildRoot/src/Cli/Cli.csproj"
Write-Host $cmd
Invoke-Expression $cmd
}
}
}
# Zips the published output for each target framework and RID.
# For example:
# \dotnetpublishout\publish\Release\net8.0\win-x64\dab_net8.0_win-x64-0.14.123-rc.zip
if ($CreateZip)
{
foreach ($targetFramework in $dotnetTargetFrameworks)
{
foreach ($RID in $RIDs) {
$filesToZipPath = "$BuildOutputDir/publish/$BuildConfiguration/$targetFramework/$RID/dab/*"
$archiveOutputPath = "$BuildOutputDir/publish/$BuildConfiguration/$targetFramework/$RID/dab_${targetFramework}_${RID}-${DabVersion}.zip"
$cmd = "Compress-Archive -Force -Path $filesToZipPath -DestinationPath $archiveOutputPath"
Write-Host $cmd
Invoke-Expression $cmd
}
}
}