mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Update the combined package build to release the daily builds (#10449)
# Conflicts: # .vsts-ci/install-ps.yml # .vsts-ci/templates/install-ps-phase.yml # tools/install-powershell.ps1 # tools/releaseBuild/azureDevOps/templates/windows-build.yml
This commit is contained in:
@@ -3144,6 +3144,12 @@ function Get-PackageVersionAsMajorMinorBuildRevision
|
||||
|
||||
if ($packageBuildTokens)
|
||||
{
|
||||
if($packageBuildTokens.length -gt 4)
|
||||
{
|
||||
# MSIX will fail if it is more characters
|
||||
$packageBuildTokens = $packageBuildTokens.Substring(0,4)
|
||||
}
|
||||
|
||||
$packageVersion = $packageVersion + '.' + $packageBuildTokens
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
parameters:
|
||||
ReleaseTagVar: v6.2.0
|
||||
ReleaseTagVarName: ReleaseTagVar
|
||||
CreateJson: 'no'
|
||||
|
||||
steps:
|
||||
- powershell: |
|
||||
$releaseTag = tools/releaseBuild/setReleaseTag.ps1 -ReleaseTag ${{ parameters.ReleaseTagVar }} -Variable "${{ parameters.ReleaseTagVarName }}"
|
||||
$version = $releaseTag.Substring(1)
|
||||
$vstsCommandString = "vso[task.setvariable variable=Version]$version"
|
||||
Write-Host "sending " + $vstsCommandString
|
||||
Write-Host ("sending " + $vstsCommandString)
|
||||
Write-Host "##$vstsCommandString"
|
||||
|
||||
$azureVersion = $releaseTag.ToLowerInvariant() -replace '\.', '-'
|
||||
$vstsCommandString = "vso[task.setvariable variable=AzureVersion]$azureVersion"
|
||||
Write-Host "sending " + $vstsCommandString
|
||||
Write-Host ("sending " + $vstsCommandString)
|
||||
Write-Host "##$vstsCommandString"
|
||||
displayName: 'Set ${{ parameters.ReleaseTagVarName }} and other version Variables'
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ jobs:
|
||||
buildName: ${{ parameters.buildName }}
|
||||
steps:
|
||||
|
||||
- template: shouldSign.yml
|
||||
|
||||
- template: SetVersionVariables.yml
|
||||
parameters:
|
||||
ReleaseTagVar: $(ReleaseTagVar)
|
||||
@@ -86,12 +88,12 @@ jobs:
|
||||
Get-ChildItem -Path '$(System.ArtifactsDirectory)\rpm\*.rpm' -recurse | ForEach-Object { $authenticodefiles += $_.FullName}
|
||||
tools/releaseBuild/generatePackgeSigning.ps1 -LinuxFiles $authenticodeFiles -path "$(System.ArtifactsDirectory)\package.xml"
|
||||
displayName: 'Generate RPM Signing Xml'
|
||||
condition: and(and(succeeded(), eq(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), eq(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- powershell: |
|
||||
Get-Content "$(System.ArtifactsDirectory)\package.xml"
|
||||
displayName: 'Capture RPM signing xml'
|
||||
condition: and(and(succeeded(), eq(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), eq(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- task: PkgESCodeSign@10
|
||||
displayName: 'CodeSign RPM $(System.ArtifactsDirectory)\package.xml'
|
||||
@@ -102,7 +104,7 @@ jobs:
|
||||
outPathRoot: '$(Build.StagingDirectory)\signedPackages'
|
||||
binVersion: $(SigingVersion)
|
||||
binVersionOverride: $(SigningVersionOverride)
|
||||
condition: and(and(succeeded(), eq(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), eq(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- task: AzureFileCopy@1
|
||||
displayName: 'Upload to Azure - DEB and tar.gz'
|
||||
@@ -125,7 +127,7 @@ jobs:
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(and(succeeded(), ne(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), ne(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- task: AzureFileCopy@1
|
||||
displayName: 'Upload to Azure - RPM - Signed'
|
||||
@@ -135,17 +137,17 @@ jobs:
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(and(succeeded(), eq(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), eq(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
artifactPath: $(System.ArtifactsDirectory)\rpm\release
|
||||
condition: and(and(succeeded(), ne(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), ne(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
artifactPath: '$(Build.StagingDirectory)\signedPackages'
|
||||
condition: and(and(succeeded(), eq(variables['Build.Reason'], 'Manual')),eq(variables['buildName'], 'RPM'))
|
||||
condition: and(and(succeeded(), eq(variables['SHOULD_SIGN'], 'true')),eq(variables['buildName'], 'RPM'))
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: 'Component Detection'
|
||||
|
||||
@@ -11,6 +11,8 @@ jobs:
|
||||
|
||||
steps:
|
||||
|
||||
- template: shouldSign.yml
|
||||
|
||||
- template: SetVersionVariables.yml
|
||||
parameters:
|
||||
ReleaseTagVar: $(ReleaseTagVar)
|
||||
@@ -55,7 +57,7 @@ jobs:
|
||||
outPathRoot: '$(Build.StagingDirectory)\signedMacOSPackages'
|
||||
binVersion: $(SigingVersion)
|
||||
binVersionOverride: $(SigningVersionOverride)
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
@@ -70,24 +72,40 @@ jobs:
|
||||
$targzPath = dir "$(System.ArtifactsDirectory)\*.tar.gz" -Recurse | select-object -expandproperty fullname
|
||||
Copy-Item -Path $targzPath -Destination $destination
|
||||
displayName: 'Extract and copy macOS artifacts for upload'
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
artifactPath: $(System.ArtifactsDirectory)\azureMacOs
|
||||
artifactFilter: "*.pkg"
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
$null = new-item -type directory -path "$(Build.StagingDirectory)\macos-unsigned"
|
||||
Copy-Item -Path "$(System.ArtifactsDirectory)\results\powershell-$(Version)-osx-x64.pkg" -Destination "$(Build.StagingDirectory)\macos-unsigned"
|
||||
Copy-Item -Path "$(System.ArtifactsDirectory)\results\powershell-$(Version)-osx-x64.tar.gz" -Destination "$(Build.StagingDirectory)\macos-unsigned"
|
||||
displayName: 'Create unsigned folder to upload'
|
||||
condition: and(succeeded(), ne(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- task: AzureFileCopy@1
|
||||
displayName: 'AzureBlob File Copy'
|
||||
displayName: 'AzureBlob File Copy - unsigned'
|
||||
inputs:
|
||||
SourcePath: '$(Build.StagingDirectory)\macos-unsigned'
|
||||
azureSubscription: '$(AzureFileCopySubscription)'
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(succeeded(), ne(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- task: AzureFileCopy@1
|
||||
displayName: 'AzureBlob File Copy - signed'
|
||||
inputs:
|
||||
SourcePath: '$(System.ArtifactsDirectory)\azureMacOs'
|
||||
azureSubscription: '$(AzureFileCopySubscription)'
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- task: securedevelopmentteam.vss-secure-development-tools.build-task-antimalware.AntiMalware@3
|
||||
displayName: 'Run Defender Scan'
|
||||
|
||||
@@ -119,6 +119,8 @@ jobs:
|
||||
packageSources: 'https://nuget.org/api/v2'
|
||||
installRoot: '$(GenAPIToolPath)'
|
||||
|
||||
- template: shouldSign.yml
|
||||
|
||||
- template: SetVersionVariables.yml
|
||||
parameters:
|
||||
ReleaseTagVar: $(ReleaseTagVar)
|
||||
@@ -208,7 +210,7 @@ jobs:
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)-nuget'
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- task: AzureFileCopy@1
|
||||
displayName: 'Upload global tool packages to Azure'
|
||||
@@ -219,7 +221,7 @@ jobs:
|
||||
storage: '$(GlobalToolStorageAccount)'
|
||||
ContainerName: 'tool'
|
||||
blobPrefix: '$(Version)'
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: 'Component Detection'
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
steps:
|
||||
- powershell: |
|
||||
$shouldSign = $true
|
||||
if($env:BUILD_REASON -ne 'Manual')
|
||||
{
|
||||
$shouldSign = $false
|
||||
}
|
||||
|
||||
if($env:SKIP_SIGNING -eq 'Yes')
|
||||
{
|
||||
$shouldSign = $false
|
||||
}
|
||||
|
||||
$vstsCommandString = "vso[task.setvariable variable=SHOULD_SIGN]$($shouldSign.ToString().ToLowerInvariant())"
|
||||
Write-Host "sending " + $vstsCommandString
|
||||
Write-Host "##$vstsCommandString"
|
||||
displayName: 'Set SHOULD_SIGN Variable'
|
||||
@@ -19,7 +19,7 @@ steps:
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(succeeded(), eq('${{ parameters.msi }}', 'yes'), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq('${{ parameters.msi }}', 'yes'))
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
@@ -34,7 +34,7 @@ steps:
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: succeeded()
|
||||
|
||||
- template: upload-final-results.yml
|
||||
parameters:
|
||||
@@ -50,4 +50,4 @@ steps:
|
||||
Destination: AzureBlob
|
||||
storage: '$(StorageAccount)'
|
||||
ContainerName: '$(AzureVersion)'
|
||||
condition: and(succeeded(), eq('${{ parameters.msix }}', 'yes'), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq('${{ parameters.msix }}', 'yes'))
|
||||
|
||||
@@ -8,7 +8,7 @@ jobs:
|
||||
displayName: Build Windows - ${{ parameters.Architecture }}
|
||||
condition: succeeded()
|
||||
pool:
|
||||
name: Package ES Standard Build
|
||||
name: PowerShell
|
||||
variables:
|
||||
BuildConfiguration: ${{ parameters.BuildConfiguration }}
|
||||
BuildPlatform: ${{ parameters.BuildPlatform }}
|
||||
@@ -20,6 +20,11 @@ jobs:
|
||||
clean: true
|
||||
persistCredentials: true
|
||||
|
||||
- template: shouldSign.yml
|
||||
- template: SetVersionVariables.yml
|
||||
parameters:
|
||||
ReleaseTagVar: $(ReleaseTagVar)
|
||||
|
||||
- task: PkgESSetupBuild@10
|
||||
displayName: 'Initialize build'
|
||||
env:
|
||||
@@ -31,27 +36,7 @@ jobs:
|
||||
disableWorkspace: true
|
||||
disableBuildTools: true
|
||||
disableNugetPack: true
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
|
||||
- template: SetVersionVariables.yml
|
||||
parameters:
|
||||
ReleaseTagVar: $(ReleaseTagVar)
|
||||
|
||||
- powershell: |
|
||||
Write-Verbose -Verbose "$(Architecture)"
|
||||
|
||||
if ('$(Architecture)' -eq 'fxdependent' -and '$(ReleaseTagVar)' -match '6.0.*')
|
||||
{
|
||||
$vstsCommandString = "vso[task.setvariable variable=SkipFxDependent]true"
|
||||
}
|
||||
else
|
||||
{
|
||||
$vstsCommandString = "vso[task.setvariable variable=SkipFxDependent]false"
|
||||
}
|
||||
|
||||
Write-Verbose -Message "$vstsCommandString " -Verbose
|
||||
Write-Host -Object "##$vstsCommandString"
|
||||
displayName: 'Skip FxDependent for PS v6.0.*'
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- template: insert-nuget-config-azfeed.yml
|
||||
|
||||
@@ -61,7 +46,6 @@ jobs:
|
||||
displayName: 'Remove all containers [Port to PSRelease]'
|
||||
# Cleanup is not critical it passes every time it runs
|
||||
continueOnError: true
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
docker image ls --format '{{ json .}}'|ConvertFrom-Json| ForEach-Object {
|
||||
@@ -80,7 +64,6 @@ jobs:
|
||||
displayName: 'Remove old images [Port to PSRelease]'
|
||||
# Cleanup is not critical it passes every time it runs
|
||||
continueOnError: true
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
Write-verbose "--docker info---" -verbose
|
||||
@@ -93,15 +76,13 @@ jobs:
|
||||
displayName: 'Capture docker info'
|
||||
# Diagnostics is not critical it passes every time it runs
|
||||
continueOnError: true
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
tools/releaseBuild/vstsbuild.ps1 -ReleaseTag $(ReleaseTagVar) -Name win-$(Architecture)-symbols
|
||||
displayName: 'Build Windows Universal - $(Architecture) Symbols zip'
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
if ("$env:Architecture" -eq 'fxdependent')
|
||||
if ("$env:Architecture" -like 'fxdependent*')
|
||||
{
|
||||
$(Build.SourcesDirectory)\tools\releaseBuild\updateSigning.ps1 -SkipPwshExe
|
||||
}
|
||||
@@ -110,14 +91,12 @@ jobs:
|
||||
$(Build.SourcesDirectory)\tools\releaseBuild\updateSigning.ps1
|
||||
}
|
||||
displayName: 'Update Signing Xml'
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
$vstsCommandString = "vso[task.setvariable variable=Symbols]${env:Symbols_$(Architecture)}"
|
||||
Write-Host "sending " + $vstsCommandString
|
||||
Write-Host "##$vstsCommandString"
|
||||
displayName: 'Get Symbols path [Update build.json]'
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- task: PkgESCodeSign@10
|
||||
displayName: 'CodeSign $(Architecture)'
|
||||
@@ -129,17 +108,16 @@ jobs:
|
||||
outPathRoot: '$(Symbols)\signed'
|
||||
binVersion: $(SigingVersion)
|
||||
binVersionOverride: $(SigningVersionOverride)
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'), ne(variables['SkipFxDependent'], 'true'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
New-Item -ItemType Directory -Path $(Symbols)\signed -Force
|
||||
displayName: 'Create empty signed folder'
|
||||
condition: and(succeeded(), ne(variables['Build.Reason'], 'Manual'), ne(variables['SkipFxDependent'], 'true'))
|
||||
condition: and(succeeded(), ne(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
tools/releaseBuild/vstsbuild.ps1 -ReleaseTag $(ReleaseTagVar) -Name win-$(Architecture)-package -BuildPath $(Symbols) -SignedFilesPath $(Symbols)\signed
|
||||
displayName: 'Build Windows Universal - $(Architecture) Package'
|
||||
condition: and(succeeded(), ne(variables['SkipFxDependent'], 'true'))
|
||||
|
||||
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
|
||||
displayName: 'Component Detection'
|
||||
|
||||
@@ -15,6 +15,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
|
||||
- template: shouldSign.yml
|
||||
- template: SetVersionVariables.yml
|
||||
parameters:
|
||||
ReleaseTagVar: $(ReleaseTagVar)
|
||||
@@ -57,7 +58,13 @@ jobs:
|
||||
outPathRoot: '$(Build.StagingDirectory)\signedPackages'
|
||||
binVersion: $(SigingVersion)
|
||||
binVersionOverride: $(SigningVersionOverride)
|
||||
condition: and(succeeded(), eq(variables['Build.Reason'], 'Manual'))
|
||||
condition: and(succeeded(), eq(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- powershell: |
|
||||
new-item -itemtype Directory -path '$(Build.StagingDirectory)\signedPackages'
|
||||
Get-ChildItem "$(System.ArtifactsDirectory)\signed\PowerShell-$(Version)-win-*.msi*" | copy-item -Destination '$(Build.StagingDirectory)\signedPackages'
|
||||
displayName: 'Fake Signing'
|
||||
condition: and(succeeded(), ne(variables['SHOULD_SIGN'], 'true'))
|
||||
|
||||
- template: upload.yml
|
||||
parameters:
|
||||
|
||||
@@ -47,4 +47,8 @@ if($ReleaseTag -eq 'fromBranch' -or !$ReleaseTag)
|
||||
}
|
||||
}
|
||||
|
||||
$vstsCommandString = "vso[task.setvariable variable=IS_DAILY]false"
|
||||
Write-Verbose -Message "$vstsCommandString" -Verbose
|
||||
Write-Host -Object "##$vstsCommandString"
|
||||
|
||||
Write-Output $releaseTag
|
||||
|
||||
Reference in New Issue
Block a user