Skip to content

Commit 14563dd

Browse files
committed
Add a major-minor build info JSON file (#16301)
# Conflicts: # tools/metadata.json # tools/releaseBuild/azureDevOps/templates/release-BuildJson.yml
1 parent 7c3d6b5 commit 14563dd

7 files changed

Lines changed: 50 additions & 17 deletions

File tree

tools/metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
"ServicingReleaseTag": "v6.1.6",
55
"ReleaseTag": "v6.2.4",
66
"NextReleaseTag": "v7.0.0-preview.7",
7-
"LTSRelease": true,
8-
"StableRelease": false
7+
"LTSRelease": { "Latest": false, "Package": true },
8+
"StableRelease": { "Latest": false, "Package": true }
99
}

tools/releaseBuild/Images/GenericLinuxFiles/PowerShellPackage.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ $semVersion = [System.Management.Automation.SemanticVersion] $version
3434

3535
$metadata = Get-Content "$location/tools/metadata.json" -Raw | ConvertFrom-Json
3636

37-
$LTS = $metadata.LTSRelease
37+
$LTS = $metadata.LTSRelease.Package
3838

3939
Write-Verbose -Verbose -Message "LTS is set to: $LTS"
4040

tools/releaseBuild/azureDevOps/releaseBuild.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ stages:
189189

190190
- powershell: |
191191
$metadata = Get-Content '$(Build.SourcesDirectory)/tools/metadata.json' -Raw | ConvertFrom-Json
192-
$LTS = $metadata.LTSRelease
192+
$LTS = $metadata.LTSRelease.Latest
193193
@{ ReleaseVersion = "$(Version)"; LTSRelease = $LTS } | ConvertTo-Json | Out-File "$(Build.StagingDirectory)\release.json"
194194
Get-Content "$(Build.StagingDirectory)\release.json"
195195
Write-Host "##vso[artifact.upload containerfolder=metadata;artifactname=metadata]$(Build.StagingDirectory)\release.json"

tools/releaseBuild/azureDevOps/templates/linux.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,9 @@ jobs:
105105
Import-Module "$env:POWERSHELLROOT/tools/packaging"
106106
107107
$metadata = Get-Content "$env:POWERSHELLROOT/tools/metadata.json" -Raw | ConvertFrom-Json
108-
$LTS = $metadata.LTSRelease
108+
109+
# LTSRelease.Package indicates that the release should be packaged as an LTS
110+
$LTS = $metadata.LTSRelease.Package
109111
Write-Verbose -Verbose -Message "LTS is set to: $LTS"
110112
111113
Invoke-AzDevOpsLinuxPackageCreation -ReleaseTag '$(ReleaseTagVar)' -BuildType '$(build)'

tools/releaseBuild/azureDevOps/templates/release-BuildJson.yml

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ steps:
2222
$dateTime = [datetime]::new($dateTime.Ticks - ($dateTime.Ticks % [timespan]::TicksPerSecond), $dateTime.Kind)
2323
2424
$metadata = Get-Content ./tools/metadata.json | ConvertFrom-Json
25-
$stableRelease = $metadata.StableRelease
26-
$ltsRelease = $metadata.LTSRelease
25+
$stableRelease = $metadata.StableRelease.Latest
26+
$ltsRelease = $metadata.LTSRelease.Latest
27+
2728
$buildInfo = Get-Content $jsonFile | ConvertFrom-Json
2829
$buildInfo.ReleaseDate = $dateTime
2930
@@ -38,17 +39,27 @@ steps:
3839
Write-Host "sending " + $vstsCommandString
3940
Write-Host "##$vstsCommandString"
4041
41-
4242
## Create 'lts.json' if it's the latest stable and also a LTS release.
4343
4444
$vstsCommandCopyLTSBuildInfo = "vso[task.setvariable variable=CopyLTSBuildInfo]NO"
45+
$vstsCommandCopyVersionBuildInfo = "vso[task.setvariable variable=CopyVersionBuildInfo]NO"
4546
46-
if ($fileName -eq "stable.json" -and $ltsRelease)
47-
{
48-
$ltsFile = "$ENV:PIPELINE_WORKSPACE/lts.json"
49-
Copy-Item -Path $targetFile -Destination $ltsFile -Force
50-
$vstsCommandLtsJsonFile = "vso[task.setvariable variable=LtsBuildInfoJsonFile]$ltsFile"
51-
$vstsCommandCopyLTSBuildInfo = "vso[task.setvariable variable=CopyLTSBuildInfo]YES"
47+
if ($fileName -eq "stable.json") {
48+
if ($ltsRelease) {
49+
$ltsFile = "$ENV:PIPELINE_WORKSPACE/lts.json"
50+
Copy-Item -Path $targetFile -Destination $ltsFile -Force
51+
$vstsCommandLtsJsonFile = "vso[task.setvariable variable=LtsBuildInfoJsonFile]$ltsFile"
52+
$vstsCommandCopyLTSBuildInfo = "vso[task.setvariable variable=CopyLTSBuildInfo]YES"
53+
}
54+
55+
$releaseTag = $buildInfo.ReleaseTag
56+
$version = $releaseTag -replace '^v'
57+
$semVersion = [System.Management.Automation.SemanticVersion] $version
58+
59+
$versionFile = "$ENV:PIPELINE_WORKSPACE/$($semVersion.Major)-$($semVersion.Minor).json"
60+
Copy-Item -Path $targetFile -Destination $versionFile -Force
61+
$vstsCommandVersionJsonFile = "vso[task.setvariable variable=VersionBuildInfoJsonFile]$versionFile"
62+
$vstsCommandCopyVersionBuildInfo = "vso[task.setvariable variable=CopyVersionBuildInfo]YES"
5263
}
5364
5465
Write-Host "sending " + $vstsCommandCopyLTSBuildInfo
@@ -59,6 +70,15 @@ steps:
5970
Write-Host "sending " + $vstsCommandLtsJsonFile
6071
Write-Host "##$vstsCommandLtsJsonFile"
6172
}
73+
74+
Write-Host "sending " + $vstsCommandCopyVersionBuildInfo
75+
Write-Host "##$vstsCommandCopyVersionBuildInfo"
76+
77+
if ($vstsCommandVersionJsonFile)
78+
{
79+
Write-Host "sending " + $vstsCommandVersionJsonFile
80+
Write-Host "##$vstsCommandVersionJsonFile"
81+
}
6282
displayName: Download and Capture NuPkgs
6383

6484
- task: AzureFileCopy@2
@@ -80,3 +100,13 @@ steps:
80100
storage: '$(StorageAccount)'
81101
ContainerName: BuildInfo
82102
condition: and(succeeded(), eq(variables['CopyLTSBuildInfo'], 'YES'))
103+
104+
- task: AzureFileCopy@2
105+
displayName: 'AzureBlob build info ''Major-Minor.json'' Copy when needed'
106+
inputs:
107+
SourcePath: '$(VersionBuildInfoJsonFile)'
108+
azureSubscription: '$(AzureFileCopySubscription)'
109+
Destination: AzureBlob
110+
storage: '$(StorageAccount)'
111+
ContainerName: BuildInfo
112+
condition: and(succeeded(), eq(variables['CopyVersionBuildInfo'], 'YES'))

tools/releaseBuild/azureDevOps/templates/release-PublishPackageMsftCom.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ steps:
2525

2626
- pwsh: |
2727
$metadata = Get-Content -Path "$ENV:PIPELINE_WORKSPACE/releasePipeline/metadata/release.json" -Raw | ConvertFrom-Json
28-
Write-Verbose -Verbose "$(ReleaseTag) $(RepoClientCliClientID) $(RepoClientCliSecret) $(AzureVersion) $($metadata.LTSRelease)"
28+
Write-Verbose -Verbose "$(ReleaseTag) $(RepoClientCliClientID) $(RepoClientCliSecret) $(AzureVersion) $($metadata.LTSRelease.Latest)"
2929
$params = @{
3030
ReleaseTag = "$(ReleaseTag)"
3131
AadClientId = "$(RepoClientCliClientID)"
3232
AadClientSecret = "$(RepoClientCliSecret)"
3333
BlobFolderName = "$(AzureVersion)"
34-
LTS = $metadata.LTSRelease
34+
LTS = $metadata.LTSRelease.Latest
3535
ForProduction = $true
3636
}
3737
& '$(Pipeline.Workspace)/tools/packages.microsoft.com/releaseLinuxPackages.ps1' -MappingFilePath '$(System.DefaultWorkingDirectory)/tools/packages.microsoft.com/mapping.json' @params

tools/releaseBuild/macOS/PowerShellPackageVsts.ps1

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ if ($Build -or $PSCmdlet.ParameterSetName -eq 'packageSigned') {
6060
$semVersion = [System.Management.Automation.SemanticVersion] $version
6161

6262
$metadata = Get-Content "$location/tools/metadata.json" -Raw | ConvertFrom-Json
63-
$LTS = $metadata.LTSRelease
63+
64+
$LTS = $metadata.LTSRelease.Package
6465

6566
Write-Verbose -Verbose -Message "LTS is set to: $LTS"
6667
}

0 commit comments

Comments
 (0)