@@ -58,49 +58,55 @@ jobs:
5858 $dateTime = [datetime]::new($dateTime.Ticks - ($dateTime.Ticks % [timespan]::TicksPerSecond), $dateTime.Kind)
5959
6060 $metadata = Get-Content -LiteralPath "$toolsDirectory/metadata.json" -ErrorAction Stop | ConvertFrom-Json
61- $stableRelease = $metadata.StableRelease.Latest
62- $ltsRelease = $metadata.LTSRelease.Latest
61+ $stableReleaseTag = $metadata.StableReleaseTag -Replace 'v',''
62+
63+ $stableRelease = $metadata.StableRelease.PublishToChannels
64+ $ltsRelease = $metadata.LTSRelease.PublishToChannels
6365
6466 Write-Verbose -Verbose "Writing $jsonFile contents:"
6567 $buildInfoJsonContent = Get-Content $jsonFile -Encoding UTF8NoBom -Raw
6668 Write-Verbose -Verbose $buildInfoJsonContent
6769
6870 $buildInfo = $buildInfoJsonContent | ConvertFrom-Json
6971 $buildInfo.ReleaseDate = $dateTime
72+ $currentReleaseTag = $buildInfo.ReleaseTag -Replace 'v',''
7073
7174 $targetFile = "$ENV:PIPELINE_WORKSPACE/$fileName"
7275 ConvertTo-Json -InputObject $buildInfo | Out-File $targetFile -Encoding ascii
7376
74- if ($stableRelease -or $ fileName -eq "preview.json") {
75- Set-BuildVariable -Name CopyMainBuildInfo -Value YES
77+ if ($fileName -eq "preview.json") {
78+ Set-BuildVariable -Name UploadPreview -Value YES
7679 } else {
77- Set-BuildVariable -Name CopyMainBuildInfo -Value NO
80+ Set-BuildVariable -Name UploadPreview -Value NO
7881 }
7982
80- Set-BuildVariable -Name BuildInfoJsonFile -Value $targetFile
81-
82- ## Create 'lts.json' if it's the latest stable and also a LTS release.
83+ Set-BuildVariable -Name PreviewBuildInfoFile -Value $targetFile
8384
85+ ## Create 'lts.json' if marked as a LTS release.
8486 if ($fileName -eq "stable.json") {
87+ [System.Management.Automation.SemanticVersion] $stableVersion = $stableReleaseTag
88+ [System.Management.Automation.SemanticVersion] $currentVersion = $currentReleaseTag
8589 if ($ltsRelease) {
8690 $ltsFile = "$ENV:PIPELINE_WORKSPACE/lts.json"
8791 Copy-Item -Path $targetFile -Destination $ltsFile -Force
88- Set-BuildVariable -Name LtsBuildInfoJsonFile -Value $ltsFile
89- Set-BuildVariable -Name CopyLTSBuildInfo -Value YES
92+ Set-BuildVariable -Name LTSBuildInfoFile -Value $ltsFile
93+ Set-BuildVariable -Name UploadLTS -Value YES
9094 } else {
91- Set-BuildVariable -Name CopyLTSBuildInfo -Value NO
95+ Set-BuildVariable -Name UploadLTS -Value NO
9296 }
9397
94- $releaseTag = $buildInfo.ReleaseTag
95- $version = $releaseTag -replace '^v'
96- $semVersion = [System.Management.Automation.SemanticVersion] $version
98+ ## Only update the stable.json if the current version is greater than the stable version.
99+ if ($currentVersion -gt $stableVersion) {
100+ $versionFile = "$ENV:PIPELINE_WORKSPACE/$($currentVersion.Major)-$($currentVersion.Minor).json"
101+ Copy-Item -Path $targetFile -Destination $versionFile -Force
102+ Set-BuildVariable -Name StableBuildInfoFile -Value $versionFile
103+ Set-BuildVariable -Name UploadStable -Value YES
104+ } else {
105+ Set-BuildVariable -Name UploadStable -Value NO
106+ }
97107
98- $versionFile = "$ENV:PIPELINE_WORKSPACE/$($semVersion.Major)-$($semVersion.Minor).json"
99- Copy-Item -Path $targetFile -Destination $versionFile -Force
100- Set-BuildVariable -Name VersionBuildInfoJsonFile -Value $versionFile
101- Set-BuildVariable -Name CopyVersionBuildInfo -Value YES
102108 } else {
103- Set-BuildVariable -Name CopyVersionBuildInfo -Value NO
109+ Set-BuildVariable -Name UploadStable -Value NO
104110 }
105111 displayName: Create json files
106112
@@ -118,24 +124,27 @@ jobs:
118124
119125 $storageContext = New-AzStorageContext -StorageAccountName $storageAccount -UseConnectedAccount
120126
121- if ($env:CopyMainBuildInfo -eq 'YES') {
122- $jsonFile = "$env:BuildInfoJsonFile"
127+ #preview
128+ if ($env:UploadPreview -eq 'YES') {
129+ $jsonFile = "$env:PreviewBuildInfoFile"
123130 $blobName = Get-Item $jsonFile | Split-Path -Leaf
124131 Write-Verbose -Verbose "Uploading $jsonFile to $containerName/$prefix/$blobName"
125132 Set-AzStorageBlobContent -File $jsonFile -Container $containerName -Blob "$prefix/$blobName" -Context $storageContext -Force
126133 }
127134
128- if ($env:CopyLTSBuildInfo -eq 'YES') {
129- $jsonFile = "$env:LtsBuildInfoJsonFile"
135+ #LTS
136+ if ($env:UploadLTS -eq 'YES') {
137+ $jsonFile = "$env:LTSBuildInfoFile"
130138 $blobName = Get-Item $jsonFile | Split-Path -Leaf
131139 Write-Verbose -Verbose "Uploading $jsonFile to $containerName/$prefix/$blobName"
132140 Set-AzStorageBlobContent -File $jsonFile -Container $containerName -Blob "$prefix/$blobName" -Context $storageContext -Force
133141 }
134142
135- if ($env:CopyVersionBuildInfo -eq 'YES') {
136- $jsonFile = "$env:VersionBuildInfoJsonFile"
143+ #stable
144+ if ($env:UploadStable -eq 'YES') {
145+ $jsonFile = "$env:StableBuildInfoFile"
137146 $blobName = Get-Item $jsonFile | Split-Path -Leaf
138147 Write-Verbose -Verbose "Uploading $jsonFile to $containerName/$prefix/$blobName"
139148 Set-AzStorageBlobContent -File $jsonFile -Container $containerName -Blob "$prefix/$blobName" -Context $storageContext -Force
140149 }
141- condition : and(succeeded(), eq(variables['CopyMainBuildInfo '], 'YES'))
150+ condition : and(succeeded(), or( eq(variables['UploadPreview '], 'YES'), eq(variables['UploadLTS'], 'YES'), eq(variables['UploadStable'], 'YES') ))
0 commit comments