Add a major-minor build info JSON file (#16301)

This commit is contained in:
Travis Plunk 2021-10-27 17:14:50 -07:00 committed by GitHub
parent f2d5ae74ad
commit a3c03392ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 49 additions and 17 deletions

View file

@ -5,6 +5,6 @@
"ReleaseTag": "v7.1.5",
"LTSReleaseTag" : ["v7.0.8"],
"NextReleaseTag": "v7.2.0-preview.11",
"LTSRelease": false,
"StableRelease": false
"LTSRelease": { "Latest": false, "Package": true },
"StableRelease": { "Latest": false, "Package": true }
}

View file

@ -35,7 +35,7 @@ $semVersion = [System.Management.Automation.SemanticVersion] $version
$metadata = Get-Content "$location/tools/metadata.json" -Raw | ConvertFrom-Json
$LTS = $metadata.LTSRelease
$LTS = $metadata.LTSRelease.Package
Write-Verbose -Verbose -Message "LTS is set to: $LTS"

View file

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

View file

@ -103,7 +103,9 @@ jobs:
Import-Module "$env:POWERSHELLROOT/tools/packaging"
$metadata = Get-Content "$env:POWERSHELLROOT/tools/metadata.json" -Raw | ConvertFrom-Json
$LTS = $metadata.LTSRelease
# LTSRelease.Package indicates that the release should be packaged as an LTS
$LTS = $metadata.LTSRelease.Package
Write-Verbose -Verbose -Message "LTS is set to: $LTS"
Invoke-AzDevOpsLinuxPackageCreation -ReleaseTag '$(ReleaseTagVar)' -BuildType '$(build)'

View file

@ -18,8 +18,8 @@ steps:
$dateTime = [datetime]::new($dateTime.Ticks - ($dateTime.Ticks % [timespan]::TicksPerSecond), $dateTime.Kind)
$metadata = Get-Content ./tools/metadata.json | ConvertFrom-Json
$stableRelease = $metadata.StableRelease
$ltsRelease = $metadata.LTSRelease
$stableRelease = $metadata.StableRelease.Latest
$ltsRelease = $metadata.LTSRelease.Latest
$buildInfo = Get-Content $jsonFile | ConvertFrom-Json
$buildInfo.ReleaseDate = $dateTime
@ -35,17 +35,27 @@ steps:
Write-Host "sending " + $vstsCommandString
Write-Host "##$vstsCommandString"
## Create 'lts.json' if it's the latest stable and also a LTS release.
$vstsCommandCopyLTSBuildInfo = "vso[task.setvariable variable=CopyLTSBuildInfo]NO"
$vstsCommandCopyVersionBuildInfo = "vso[task.setvariable variable=CopyVersionBuildInfo]NO"
if ($fileName -eq "stable.json" -and $ltsRelease)
{
$ltsFile = "$ENV:PIPELINE_WORKSPACE/lts.json"
Copy-Item -Path $targetFile -Destination $ltsFile -Force
$vstsCommandLtsJsonFile = "vso[task.setvariable variable=LtsBuildInfoJsonFile]$ltsFile"
$vstsCommandCopyLTSBuildInfo = "vso[task.setvariable variable=CopyLTSBuildInfo]YES"
if ($fileName -eq "stable.json") {
if ($ltsRelease) {
$ltsFile = "$ENV:PIPELINE_WORKSPACE/lts.json"
Copy-Item -Path $targetFile -Destination $ltsFile -Force
$vstsCommandLtsJsonFile = "vso[task.setvariable variable=LtsBuildInfoJsonFile]$ltsFile"
$vstsCommandCopyLTSBuildInfo = "vso[task.setvariable variable=CopyLTSBuildInfo]YES"
}
$releaseTag = $buildInfo.ReleaseTag
$version = $releaseTag -replace '^v'
$semVersion = [System.Management.Automation.SemanticVersion] $version
$versionFile = "$ENV:PIPELINE_WORKSPACE/$($semVersion.Major)-$($semVersion.Minor).json"
Copy-Item -Path $targetFile -Destination $versionFile -Force
$vstsCommandVersionJsonFile = "vso[task.setvariable variable=VersionBuildInfoJsonFile]$versionFile"
$vstsCommandCopyVersionBuildInfo = "vso[task.setvariable variable=CopyVersionBuildInfo]YES"
}
Write-Host "sending " + $vstsCommandCopyLTSBuildInfo
@ -56,6 +66,15 @@ steps:
Write-Host "sending " + $vstsCommandLtsJsonFile
Write-Host "##$vstsCommandLtsJsonFile"
}
Write-Host "sending " + $vstsCommandCopyVersionBuildInfo
Write-Host "##$vstsCommandCopyVersionBuildInfo"
if ($vstsCommandVersionJsonFile)
{
Write-Host "sending " + $vstsCommandVersionJsonFile
Write-Host "##$vstsCommandVersionJsonFile"
}
displayName: Download and Capture NuPkgs
- task: AzureFileCopy@2
@ -77,3 +96,13 @@ steps:
storage: '$(StorageAccount)'
ContainerName: BuildInfo
condition: and(succeeded(), eq(variables['CopyLTSBuildInfo'], 'YES'))
- task: AzureFileCopy@2
displayName: 'AzureBlob build info ''Major-Minor.json'' Copy when needed'
inputs:
SourcePath: '$(VersionBuildInfoJsonFile)'
azureSubscription: '$(AzureFileCopySubscription)'
Destination: AzureBlob
storage: '$(StorageAccount)'
ContainerName: BuildInfo
condition: and(succeeded(), eq(variables['CopyVersionBuildInfo'], 'YES'))

View file

@ -25,13 +25,13 @@ steps:
- pwsh: |
$metadata = Get-Content -Path "$ENV:PIPELINE_WORKSPACE/releasePipeline/metadata/release.json" -Raw | ConvertFrom-Json
Write-Verbose -Verbose "$(ReleaseTag) $(RepoClientCliClientID) $(RepoClientCliSecret) $(AzureVersion) $($metadata.LTSRelease)"
Write-Verbose -Verbose "$(ReleaseTag) $(RepoClientCliClientID) $(RepoClientCliSecret) $(AzureVersion) $($metadata.LTSRelease.Latest)"
$params = @{
ReleaseTag = "$(ReleaseTag)"
AadClientId = "$(RepoClientCliClientID)"
AadClientSecret = "$(RepoClientCliSecret)"
BlobFolderName = "$(AzureVersion)"
LTS = $metadata.LTSRelease
LTS = $metadata.LTSRelease.Latest
ForProduction = $true
}
& '$(Pipeline.Workspace)/tools/packages.microsoft.com/releaseLinuxPackages.ps1' @params

View file

@ -65,7 +65,8 @@ if ($Build -or $PSCmdlet.ParameterSetName -eq 'packageSigned') {
$semVersion = [System.Management.Automation.SemanticVersion] $version
$metadata = Get-Content "$location/tools/metadata.json" -Raw | ConvertFrom-Json
$LTS = $metadata.LTSRelease
$LTS = $metadata.LTSRelease.Package
Write-Verbose -Verbose -Message "LTS is set to: $LTS"
}