eng/scripts/Build-Packages.ps1 (66 lines of code) (raw):
#Requires -Version 7.0
param(
[string] $BuildNumber,
[string] $Output,
[switch] $Prerelease,
[switch] $PublishInternal
)
$ErrorActionPreference = 'Stop'
Set-StrictMode -Version 3.0
. "$PSScriptRoot/Command-InvocationHelpers.ps1"
Set-ConsoleEncoding
$outputPath = $Output ? $Output : "$RepoRoot/artifacts/build"
$packagesPath = "$outputPath/packages"
# try to remove the artifacts folder if it exists
if (Test-Path $outputPath) {
Remove-Item -Recurse -Force $outputPath
}
# create the output folders
$outputPath = New-Item -ItemType Directory -Force -Path $outputPath | Select-Object -ExpandProperty FullName
$packagesPath = New-Item -ItemType Directory -Force -Path $packagesPath | Select-Object -ExpandProperty FullName
Push-Location $RepoRoot
try {
& ./Build-TypeSpec.ps1
Push-Location "./typespec-extension"
try {
if ($Prerelease) {
$emitterVersion = (npm pkg get version).Trim('"')
$emitterVersion = "$emitterVersion-alpha.$BuildNumber"
Write-Host "Updating emitter to preview version $emitterVersion"
invoke "npm version $emitterVersion --no-git-tag-version"
}
Write-Host "Building TypeSpec Java"
invoke "npm run build"
# TODO: Move linting and format check to Test-Packages.ps1
# Write-Host "Linting TypeSpec Java"
# invoke "npm run lint"
# Write-Host "Checking TypeSpec Java format"
# invoke "npm run check-format"
Write-Host "Packing TypeSpec Java"
$file = invoke "npm pack -q"
Copy-Item $file -Destination $packagesPath
} finally {
Pop-Location
}
Write-Host "`n`n====================================="
Write-Host "Print Package Dependencies"
Write-Host "====================================="
Write-Host "Dependencies of typespec-java"
invoke "npm ls --all" -ExecutePath "$RepoRoot/typespec-extension"
}
finally {
Pop-Location
}
if ($PublishInternal) {
$feedUrl = "https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-js-test-autorest/npm/registry"
$overrides = @{
"@azure-tools/typespec-java" = "$feedUrl/@azure-tools/typespec-java/-/typespec-java-$emitterVersion.tgz"
}
} else {
$overrides = @{}
}
$overrides | ConvertTo-Json | Set-Content "$outputPath/overrides.json"
$packageMatrix = [ordered]@{
"emitter" = $emitterVersion
}
$packageMatrix | ConvertTo-Json | Set-Content "$outputPath/package-versions.json"