mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Allow patching of preview releases (#15074)
This commit is contained in:
+38
-2
@@ -23,11 +23,44 @@
|
||||
</Exec>
|
||||
|
||||
<PropertyGroup Condition = "'$(ReleaseTag)' != ''">
|
||||
<!--
|
||||
DO NOT UPDATE without reviewing with the Microsoft update plan.
|
||||
|
||||
7.2.0-preview.1
|
||||
__a__.__b____.c
|
||||
|
||||
a = Version part and is group 1 of the regex
|
||||
b = the Semantic version prerelease name. This is optional.
|
||||
c = The semantic version prerelease iteration. This is optional and only allowed of the prerelease name is present.
|
||||
|
||||
Our version will become the version part with the prerelease iteration being the revision (the 4th part of the version).
|
||||
For RCs, we will increment the iteration from 100.
|
||||
|
||||
Examples
|
||||
7.2.0 becomes 7.2.0
|
||||
7.2.0-preview.1 becomes 7.2.0.1
|
||||
7.2.0-rc.1 becomes 7.2.0.101
|
||||
-->
|
||||
|
||||
<!-- parse the release tag into the parts we need -->
|
||||
<RegexReleaseTag>^((\d+).(\d+).(\d+))(-(\w+)(.(\d+))?)?$</RegexReleaseTag>
|
||||
<ReleaseTagVersionPart>$([System.Text.RegularExpressions.Regex]::Match($(ReleaseTag), $(RegexReleaseTag)).Groups[1].Value)</ReleaseTagVersionPart>
|
||||
<ReleaseTagSemVersionPart>$([System.Text.RegularExpressions.Regex]::Match($(ReleaseTag), $(RegexReleaseTag)).Groups[8].Value)</ReleaseTagSemVersionPart>
|
||||
<ReleaseTagSemVersionPrereleaseNamePart>$([System.Text.RegularExpressions.Regex]::Match($(ReleaseTag), $(RegexReleaseTag)).Groups[6].Value)</ReleaseTagSemVersionPrereleaseNamePart>
|
||||
<!-- Increment revision 100 for rc releases -->
|
||||
<RCIncrementValue>100</RCIncrementValue>
|
||||
<ReleaseTagSemVersionPart Condition = "'$(ReleaseTagSemVersionPrereleaseNamePart)' == 'rc'">$([MSBuild]::Add($(ReleaseTagSemVersionPart), $(RCIncrementValue)))</ReleaseTagSemVersionPart>
|
||||
<!-- Create the internal version -->
|
||||
<PSCoreBuildVersion>$(ReleaseTag)</PSCoreBuildVersion>
|
||||
<!-- Create the version if we have a pre-release -->
|
||||
<PSCoreFileVersion Condition = "'$(ReleaseTagSemVersionPart)' != ''">$(ReleaseTagVersionPart).$(ReleaseTagSemVersionPart)</PSCoreFileVersion>
|
||||
<!-- Create the version if we have a release build -->
|
||||
<PSCoreFileVersion Condition = "'$(PSCoreFileVersion)' == ''">$(ReleaseTagVersionPart)</PSCoreFileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<RegexGitVersion>^v(.+)-(\d+)-g(.+)</RegexGitVersion>
|
||||
<PSCoreFileVersion Condition = "'$(PSCoreFileVersion)' == ''">$([System.Text.RegularExpressions.Regex]::Match($(PowerShellVersion), $(RegexGitVersion)).Groups[1].Value)</PSCoreFileVersion>
|
||||
<PSCoreBuildVersion Condition = "'$(PSCoreBuildVersion)' == ''">$([System.Text.RegularExpressions.Regex]::Match($(PowerShellVersion), $(RegexGitVersion)).Groups[1].Value)</PSCoreBuildVersion>
|
||||
<PSCoreAdditionalCommits>$([System.Text.RegularExpressions.Regex]::Match($(PowerShellVersion), $(RegexGitVersion)).Groups[2].Value)</PSCoreAdditionalCommits>
|
||||
<PSCoreCommitSHA>$([System.Text.RegularExpressions.Regex]::Match($(PowerShellVersion), $(RegexGitVersion)).Groups[3].Value)</PSCoreCommitSHA>
|
||||
@@ -52,7 +85,7 @@
|
||||
Here we define explicitly 'Version' to set 'FileVersion' and 'AssemblyVersion' by 'GetAssemblyVersion' target in 'Microsoft.NET.GenerateAssemblyInfo.targets'.
|
||||
Here we define explicitly 'InformationalVersion' because by default it is defined as 'Version' by 'GetAssemblyVersion' target in 'Microsoft.NET.GenerateAssemblyInfo.targets'.
|
||||
-->
|
||||
<Version>$(PSCoreBuildVersion)</Version>
|
||||
<Version>$(PSCoreFileVersion)</Version>
|
||||
<InformationalVersion>$(PSCoreFormattedVersion)</InformationalVersion>
|
||||
<ProductVersion>$(PSCoreFormattedVersion)</ProductVersion>
|
||||
|
||||
@@ -72,8 +105,11 @@
|
||||
<!-- Output For Debugging
|
||||
<WriteLinesToFile File="targetfile1.txt"
|
||||
Lines="ReleaseTag=$(ReleaseTag);
|
||||
PowerShellVersion=$(PowerShellVersion);
|
||||
PowerShellVersion = $(PowerShellVersion);
|
||||
PSCoreBuildVersion = $(PSCoreBuildVersion);
|
||||
PSCoreFileVersion = $(PSCoreFileVersion);
|
||||
ReleaseTagVersionPart = $(ReleaseTagVersionPart);
|
||||
ReleaseTagSemVersionPart = $(ReleaseTagSemVersionPart);
|
||||
PSCoreAdditionalCommits = $(PSCoreAdditionalCommits);
|
||||
PSCoreCommitSHA = $(PSCoreCommitSHA);
|
||||
PSCoreMajorVersion = $(PSCoreMajorVersion);
|
||||
|
||||
+5
-1
@@ -303,13 +303,17 @@ function Start-PSBuild {
|
||||
|
||||
[switch]$CrossGen,
|
||||
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$ReleaseTag,
|
||||
[switch]$Detailed,
|
||||
[switch]$InteractiveAuth
|
||||
)
|
||||
|
||||
if ($ReleaseTag -and $ReleaseTag -notmatch "^v\d+\.\d+\.\d+(-(preview|rc)(\.\d{1,2})?)?$") {
|
||||
Write-Warning "Only preview or rc are supported for releasing pre-release version of PowerShell"
|
||||
}
|
||||
|
||||
if ($PSCmdlet.ParameterSetName -eq "Default" -and !$NoPSModuleRestore)
|
||||
{
|
||||
$PSModuleRestore = $true
|
||||
|
||||
+3
-2
@@ -462,7 +462,8 @@ function Invoke-CIFinish
|
||||
$previewLabel= "daily{0}" -f $previewLabel
|
||||
}
|
||||
|
||||
$preReleaseVersion = "$previewPrefix-$previewLabel.$env:BUILD_BUILDID"
|
||||
$prereleaseIteration = (get-date).Day
|
||||
$preReleaseVersion = "$previewPrefix-$previewLabel.$prereleaseIteration"
|
||||
# Build clean before backing to remove files from testing
|
||||
Start-PSBuild -CrossGen -PSModuleRestore -Configuration 'Release' -ReleaseTag $preReleaseVersion -Clean -Runtime $Runtime
|
||||
}
|
||||
@@ -474,7 +475,7 @@ function Invoke-CIFinish
|
||||
Start-PSBuild -CrossGen -PSModuleRestore -Configuration 'Release' -ReleaseTag $preReleaseVersion -Clean -Runtime $Runtime
|
||||
}
|
||||
|
||||
# Build packages $preReleaseVersion = "$previewPrefix-$previewLabel.$env:BUILD_BUILDID"
|
||||
# Build packages $preReleaseVersion = "$previewPrefix-$previewLabel.$prereleaseIteration"
|
||||
$packages = Start-PSPackage -Type msi,nupkg,zip,zip-pdb -ReleaseTag $preReleaseVersion -SkipReleaseChecks -WindowsRuntime $Runtime
|
||||
|
||||
$artifacts = New-Object System.Collections.ArrayList
|
||||
|
||||
@@ -20,7 +20,7 @@ function Start-PSPackage {
|
||||
[string]$Version,
|
||||
|
||||
[Parameter(ParameterSetName = "ReleaseTag")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$ReleaseTag,
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ param (
|
||||
# Destination location of the package on docker host
|
||||
[string] $destination = '/mnt',
|
||||
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$ReleaseTag,
|
||||
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ param (
|
||||
|
||||
[switch] $Wait,
|
||||
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string] $ReleaseTag,
|
||||
|
||||
|
||||
@@ -52,14 +52,14 @@ steps:
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
artifactPath: $(System.ArtifactsDirectory)\signed
|
||||
artifactPath: $(System.ArtifactsDirectory)\signedPackages
|
||||
artifactFilter: PowerShell-${{ parameters.version }}-win-${{ parameters.architecture }}.exe
|
||||
condition: and(succeeded(), eq('${{ parameters.msi }}', 'yes'))
|
||||
|
||||
- task: AzureFileCopy@4
|
||||
displayName: 'upload signed exe to Azure - ${{ parameters.architecture }}'
|
||||
inputs:
|
||||
SourcePath: '$(System.ArtifactsDirectory)\signed\PowerShell-${{ parameters.version }}-win-${{ parameters.architecture }}.exe'
|
||||
SourcePath: '$(System.ArtifactsDirectory)\signedPackages\PowerShell-${{ parameters.version }}-win-${{ parameters.architecture }}.exe'
|
||||
azureSubscription: '$(AzureFileCopySubscription)'
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
|
||||
@@ -18,7 +18,7 @@ param (
|
||||
[Parameter(Mandatory, ParameterSetName = 'packageSigned')]
|
||||
[Parameter(Mandatory, ParameterSetName = 'IncludeSymbols')]
|
||||
[Parameter(Mandatory, ParameterSetName = 'Build')]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[ValidateNotNullOrEmpty()]
|
||||
[string]$ReleaseTag,
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
param(
|
||||
[Parameter(ParameterSetName='packageSigned')]
|
||||
[Parameter(ParameterSetName='Build')]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[string]$ReleaseTag,
|
||||
|
||||
# full paths to files to add to container to run the build
|
||||
|
||||
@@ -594,12 +594,12 @@ function Update-PsVersionInCode
|
||||
{
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[String]
|
||||
$NewReleaseTag,
|
||||
|
||||
[Parameter(Mandatory)]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d+)?)?$")]
|
||||
[ValidatePattern("^v\d+\.\d+\.\d+(-\w+(\.\d{1,2})?)?$")]
|
||||
[String]
|
||||
$NextReleaseTag,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user