Skip to content

Commit 383a4c5

Browse files
[release/v7.4] Fix buildinfo.json uploading for preview, LTS, and stable releases (#26863)
Co-authored-by: Justin Chung <124807742+jshigetomi@users.noreply.github.com>
1 parent b827288 commit 383a4c5

File tree

1 file changed

+35
-26
lines changed

1 file changed

+35
-26
lines changed

.pipelines/templates/release-upload-buildinfo.yml

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)