Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,16 @@ extends:
exactToolVersion: 4.4.2
policheck:
break: true # always break the build on policheck issues. You can disable it by setting to 'false'
tsaOptionsFile: .config\tsaoptions.json
tsaOptionsFile: $(Build.SourcesDirectory)\.config\tsaoptions.json
stages:
- template: /.pipelines/templates/release-prep-for-ev2.yml@self
parameters:
skipPublish: ${{ parameters.skipPublish }}

# NonOfficial: run the publish stage to verify templateContext artifact download,
# but skip the actual Ev2 push to PMC.
- template: /.pipelines/templates/release-publish-pmc.yml@self
parameters:
releaseEnvironment: Test
stagePrefix: Test
skipEv2Push: true
2 changes: 1 addition & 1 deletion .pipelines/PowerShell-Release-Official-Azure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ extends:
exactToolVersion: 4.4.2
policheck:
break: true # always break the build on policheck issues. You can disable it by setting to 'false'
tsaOptionsFile: .config\tsaoptions.json
tsaOptionsFile: $(Build.SourcesDirectory)\.config\tsaoptions.json
stages:
- template: /.pipelines/templates/release-prep-for-ev2.yml@self
parameters:
Expand Down
46 changes: 20 additions & 26 deletions .pipelines/templates/release-prep-for-ev2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,20 @@ stages:
displayName: 'Copy EV2 Files to Artifact'
pool:
type: linux
templateContext:
inputs:
- input: pipelineArtifact
pipeline: PSPackagesOfficial
artifactName: drop_linux_package_deb
- input: pipelineArtifact
pipeline: PSPackagesOfficial
artifactName: drop_linux_package_rpm
- input: pipelineArtifact
pipeline: PSPackagesOfficial
artifactName: drop_linux_package_mariner_x64
- input: pipelineArtifact
pipeline: PSPackagesOfficial
artifactName: drop_linux_package_mariner_arm64
variables:
- name: ob_outputDirectory
value: '$(Build.ArtifactStagingDirectory)/ONEBRANCH_ARTIFACT'
Expand All @@ -24,6 +38,8 @@ stages:
- group: 'packages.microsoft.com'
- name: ob_sdl_credscan_suppressionsFile
value: $(Build.SourcesDirectory)/PowerShell/.config/suppress.json
- name: ob_sdl_tsa_configFile
value: $(Build.SourcesDirectory)/PowerShell/.config/tsaoptions.json
steps:
- checkout: self ## the global setting on lfs didn't work
lfs: false
Expand Down Expand Up @@ -99,39 +115,17 @@ stages:
env:
ob_restore_phase: true

- download: PSPackagesOfficial
artifact: 'drop_linux_package_deb'
displayName: 'Download artifact containing .deb_amd64.deb file from PSPackagesOfficial triggering pipeline'
env:
ob_restore_phase: true

- download: PSPackagesOfficial
artifact: 'drop_linux_package_rpm'
displayName: 'Download artifact containing .rh.x64_86.rpm file from PSPackagesOfficial triggering pipeline'
env:
ob_restore_phase: true

- download: PSPackagesOfficial
artifact: 'drop_linux_package_mariner_x64'
displayName: 'Download artifact containing .cm.x86_64.rpm file from PSPackagesOfficial triggering pipeline'
env:
ob_restore_phase: true

- download: PSPackagesOfficial
artifact: 'drop_linux_package_mariner_arm64'
displayName: 'Download artifact containing .cm.aarch64.rpm file from PSPackagesOfficial triggering pipeline'
env:
ob_restore_phase: true

- pwsh: |
Write-Verbose -Verbose "Copy ESRP signed .deb and .rpm packages"
$downloadedPipelineFolder = Join-Path '$(Pipeline.Workspace)' -ChildPath 'PSPackagesOfficial'
# templateContext.inputs places the PSPackagesOfficial pipelineArtifact files
# directly under $(Pipeline.Workspace), not in per-artifact subfolders.
$downloadedPipelineFolder = '$(Pipeline.Workspace)'
$srcFilesFolder = Join-Path -Path '$(Pipeline.Workspace)' -ChildPath 'SourceFiles'
New-Item -Path $srcFilesFolder -ItemType Directory
$packagesFolder = Join-Path -Path $srcFilesFolder -ChildPath 'packages'
New-Item -Path $packagesFolder -ItemType Directory

$packageFiles = Get-ChildItem -Path $downloadedPipelineFolder -Recurse -Directory -Filter "drop_*" | Get-ChildItem -File -Include *.deb, *.rpm
$packageFiles = Get-ChildItem -Path $downloadedPipelineFolder -File | Where-Object { $_.Extension -in '.deb', '.rpm' }
foreach ($file in $packageFiles)
{
Write-Verbose -Verbose "copying file: $($file.FullName)"
Expand Down
65 changes: 42 additions & 23 deletions .pipelines/templates/release-publish-pmc.yml
Original file line number Diff line number Diff line change
@@ -1,37 +1,56 @@
parameters:
- name: releaseEnvironment
type: string
default: Production
values:
- Production
- PPE
- Test
- name: approvalServiceEnvironment
type: string
default: Production
values:
- Production
- PPE
- Test
# OneBranch requires the stage name to be prefixed with the release environment.
# Official uses 'Prod' for Production; NonProd validators require '<env>' (e.g. 'Test', 'PPE').
- name: stagePrefix
type: string
default: Prod
# When true, the Ev2 push step is skipped. Useful for NonOfficial dry-runs that
# only want to validate artifact download via templateContext.inputs.
- name: skipEv2Push
type: boolean
default: false

stages:
- stage: 'Prod_Release'
- stage: ${{ parameters.stagePrefix }}_Release
displayName: 'Deploy packages to PMC with EV2'
dependsOn:
- PrepForEV2
variables:
- name: ob_release_environment
value: "Production"
value: ${{ parameters.releaseEnvironment }}
- name: repoRoot
value: $(Build.SourcesDirectory)
jobs:
- job: Prod_ReleaseJob
- job: ${{ parameters.stagePrefix }}_ReleaseJob
displayName: Publish to PMC
pool:
type: release

steps:
- task: DownloadPipelineArtifact@2
templateContext:
inputs:
targetPath: '$(Pipeline.Workspace)'
artifact: drop_PrepForEV2_CopyEv2FilesToArtifact
displayName: 'Download drop_PrepForEV2_CopyEv2FilesToArtifact artifact that has all files needed'
- input: pipelineArtifact
artifactName: drop_PrepForEV2_CopyEv2FilesToArtifact

- task: DownloadPipelineArtifact@2
inputs:
buildType: 'current'
targetPath: '$(Pipeline.Workspace)'
displayName: 'Download to get EV2 Files'

- task: vsrm-ev2.vss-services-ev2.adm-release-task.ExpressV2Internal@1
displayName: 'Ev2: Push to PMC'
inputs:
UseServerMonitorTask: true
EndpointProviderType: ApprovalService
ApprovalServiceEnvironment: Production
ServiceRootPath: '$(Pipeline.Workspace)/drop_PrepForEV2_CopyEV2FilesToArtifact/EV2Specs/ServiceGroupRoot'
RolloutSpecPath: '$(Pipeline.Workspace)/drop_PrepForEV2_CopyEV2FilesToArtifact/EV2Specs/ServiceGroupRoot/RolloutSpec.json'
steps:
- ${{ if not(parameters.skipEv2Push) }}:
- task: vsrm-ev2.vss-services-ev2.adm-release-task.ExpressV2Internal@1
displayName: 'Ev2: Push to PMC'
inputs:
UseServerMonitorTask: true
EndpointProviderType: ApprovalService
ApprovalServiceEnvironment: ${{ parameters.approvalServiceEnvironment }}
ServiceRootPath: '$(Pipeline.Workspace)/EV2Specs/ServiceGroupRoot'
RolloutSpecPath: '$(Pipeline.Workspace)/EV2Specs/ServiceGroupRoot/RolloutSpec.json'
51 changes: 51 additions & 0 deletions CHANGELOG/7.4.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,56 @@
# 7.4 Changelog

## [7.4.15]

### General Cmdlet Updates and Fixes

- Delay update notification for one week to ensure all packages become available (#27229)
- Close pipe client handles after creating the child ssh process (#27139)

### Tests

- Fix the `PSNativeCommandArgumentPassing` test (#27146)

### Build and Packaging Improvements

<details>

<summary>

<p>Update .NET SDK to 8.0.420</p>

</summary>

<ul>
<li>Fix the container image for vPack, MSIX vPack and Package pipelines (#27018)</li>
<li>Update branch for release (#27279)</li>
<li>Fix package pipeline by adding in PDP-Media directory (#27255)</li>
<li>Pin ready-to-merge.yml reusable workflow to commit SHA (#27247)</li>
<li>[StepSecurity] ci: Harden GitHub Actions tags (#27244)</li>
<li>Build, package, and create VPack for the PowerShell-LTS store package within the same <code>msixbundle-vpack</code> pipeline (#27242)</li>
<li>Change the display name of PowerShell-LTS package to PowerShell LTS (#27232)</li>
<li>[StepSecurity] ci: Harden GitHub Actions tokens (#27231)</li>
<li>Redo windows image fix to use latest image (#27230)</li>
<li>Separate Store Package Creation, Skip Polling for Store Publish, Clean up PDP-Media (#27228)</li>
<li>Add comment-based help documentation to build.psm1 functions (#27227)</li>
<li>Fix a preview detection test for the packaging script (#27226)</li>
<li>Update the PhoneProductId to be the official LTS id used by Store (#27169)</li>
<li>Select New MSIX Package Name (#27173)</li>
<li>Publish <code>.msixbundle</code> package as a VPack (#27187)</li>
<li>Bump <code>github/codeql-action</code> from 4.32.4 to 4.35.1 (#27143) (#27171) (#27175)</li>
<li><code>release-upload-buildinfo</code>: replace version-comparison channel gating with metadata flags (#27147)</li>
<li>Create infrastructure to create two msixs and msixbundles for LTS and Stable (#27145)</li>
<li>Move <code>_GetDependencies</code> MSBuild target from dynamic generation in <code>build.psm1</code> into <code>Microsoft.PowerShell.SDK.csproj</code> (#27144)</li>
<li>Bump <code>actions/dependency-review-action</code> from 4.8.3 to 4.9.0 (#27142)</li>
<li>Bump <code>actions/upload-artifact</code> from 6 to 7 (#27141)</li>
<li>Separate Official and NonOfficial templates for ADO pipelines (#27140)</li>
<li>Mirror .NET/runtime ICU version range in PowerShell (#27138)</li>
</ul>

</details>

[7.4.15]: https://github.com/PowerShell/PowerShell/compare/v7.4.14...v7.4.15

## [7.4.14]

### General Cmdlet Updates and Fixes
Expand Down
49 changes: 49 additions & 0 deletions CHANGELOG/7.5.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
# 7.5 Changelog

## [7.5.6]

### General Cmdlet Updates and Fixes

- Delay update notification for one week to ensure all packages become available (#27220)

### Tests

- Fix the `PSNativeCommandArgumentPassing` test (#27166)

### Build and Packaging Improvements

<details>

<summary>

<p>Update to .NET SDK 9.0.313</p>

</summary>

<ul>
<li>Update branch for the v7.5.6 release (#27268)</li>
<li>Fix package pipeline by adding in <code>PDP-Media</code> directory (#27256)</li>
<li>Pin <code>ready-to-merge.yml</code> reusable workflow to commit SHA (#27246)</li>
<li>[StepSecurity] ci: Harden GitHub Actions tags (#27239)</li>
<li>Build, package, and create VPack for the PowerShell-LTS store package within the same <code>msixbundle-vpack</code> pipeline (#27240)</li>
<li>Add comment-based help documentation to <code>build.psm1</code> functions (#27221)</li>
<li>Separate store package creation, skip polling for store publish, clean up <code>PDP-Media</code> (#27225)</li>
<li>[StepSecurity] ci: Harden GitHub Actions tokens (#27224)</li>
<li>Change the display name of "PowerShell-LTS" package to "PowerShell LTS" (#27223)</li>
<li>Redo windows image fix to use latest image (#27222)</li>
<li>Bump <code>github/codeql-action</code> from 4.32.4 to 4.35.1 (#27159) (#27170) (#27174)</li>
<li>Select new MSIX package name (#27172)</li>
<li>Update the <code>PhoneProductId</code> to be the official LTS id used by Store (#27168)</li>
<li>release-upload-buildinfo: replace version-comparison channel gating with metadata flags (#27167)</li>
<li>Create infrastructure to create two msixs and msixbundles for LTS and Stable (#27165)</li>
<li>Move <code>_GetDependencies</code> MSBuild target from dynamic generation in <code>build.psm1</code> into <code>Microsoft.PowerShell.SDK.csproj</code> (#27164)</li>
<li>Create Linux LTS deb/rpm packages for LTS releases (#27163)</li>
<li>Fix the container image for vPack, MSIX vPack and Package pipelines (#27161)</li>
<li>Create LTS pkg and non-LTS pkg for macOS for LTS releases (#27162)</li>
<li>Bump actions/dependency-review-action from 4.8.3 to 4.9.0 (#27158)</li>
<li>Bump actions/upload-artifact from 6 to 7 (#27157)</li>
<li>Separate "Official" and "NonOfficial" templates for ADO pipelines (#27155)</li>
</ul>

</details>

[7.5.6]: https://github.com/PowerShell/PowerShell/compare/v7.5.5...v7.5.6

## [7.5.5]

### Engine Updates and Fixes
Expand Down
Loading