azure-sdk-for-cpp/eng/scripts/Test-ShouldReleaseToVcpkg.ps1
Daniel Jurek 50589d65b5
Always release to vcpkg when doing Daily Release (#4334)
* Always release to vcpkg when doing Daily Release

* Add ability to skip live tests via variable

* Use 1ES agents instead of Azure Pipelines
2023-03-06 11:47:15 -08:00

54 lines
1.8 KiB
PowerShell

param(
[string] $ReleaseArtifactSourceDirectory,
[string] $VcpkgFolder,
[string] $VcpkgPortName,
[switch] $DailyRelease
)
."$PSSCriptRoot/../common/scripts/common.ps1"
Set-StrictMode -Version 3
if ($DailyRelease) {
Write-Host "Release is daily, publish to vcpkg"
Write-Host "##vso[task.setvariable variable=PublishToVcpkg]true"
exit 0
}
$packageJsonContents = Get-Content `
-Path "$ReleaseArtifactSourceDirectory/package-info.json" `
-Raw
$packageJson = ConvertFrom-Json $packageJsonContents
$packageVersionSemver = [AzureEngSemanticVersion]::ParseVersionString($packageJson.version)
if (!$packageVersionSemver.IsPrerelease) {
Write-Host "Package version is GA ($($packageJson.version)), publish to vcpkg"
Write-Host "##vso[task.setvariable variable=PublishToVcpkg]true"
exit 0
}
Write-Host "Released package is preview"
# The package does not exist in vcpkg, publish to vcpkg
$vcpkgJsonPath = "$VcpkgFolder/ports/$VcpkgPortName/vcpkg.json"
if (!(Test-Path $vcpkgJsonPath)) {
Write-Host "Package ($VcpkgPortName) has not been published, publish to vcpkg"
Write-Host "##vso[task.setvariable variable=PublishToVcpkg]true"
exit 0
}
Write-Host "Package has been published before"
$vcpkgJsonContents = Get-Content -Raw -Path $vcpkgJsonPath
$vcpkgJson = ConvertFrom-Json $vcpkgJsonContents
$existingVersion = [AzureEngSemanticVersion]::ParseVersionString($vcpkgJson.'version-semver')
# Published version is a prerelease
if ($existingVersion.IsPrerelease) {
Write-Host "Existing version ($($vcpkgJson.'version-semver')) is prerelease, publish to vcpkg"
Write-Host "##vso[task.setvariable variable=PublishToVcpkg]true"
exit 0
}
Write-Host "Existing version is GA"
Write-Host "Criteria for publishing not satisifed, do NOT publish to vcpkg"
Write-Host "##vso[task.setvariable variable=PublishToVcpkg]false"