[release/v7.5] Use GitHubReleaseTask (#25402)

Co-authored-by: Justin Chung <124807742+jshigetomi@users.noreply.github.com>
Co-authored-by: Travis Plunk <travis.plunk@microsoft.com>
This commit is contained in:
PowerShell Team Bot
2025-04-21 14:55:09 -07:00
committed by GitHub
co-authored by Justin Chung Travis Plunk
parent 7b21583dc6
commit 61874845f4
3 changed files with 40 additions and 41 deletions
+4 -4
View File
@@ -117,10 +117,10 @@ extends:
tsaOptionsFile: .config\tsaoptions.json
stages:
- stage: setReleaseTagAndUploadTools
displayName: 'Set Release Tag and Upload Tools'
- stage: setReleaseTagAndChangelog
displayName: 'Set Release Tag and Upload Changelog'
jobs:
- template: /.pipelines/templates/release-SetTagAndTools.yml@self
- template: /.pipelines/templates/release-SetTagAndChangelog.yml@self
- stage: msixbundle
displayName: 'Create MSIX Bundle'
@@ -284,7 +284,7 @@ extends:
- stage: PublishGitHubReleaseAndNuget
displayName: Publish GitHub and Nuget Release
dependsOn:
- setReleaseTagAndUploadTools
- setReleaseTagAndChangelog
- UpdateChangeLog
variables:
ob_release_environment: Production
@@ -1,6 +1,6 @@
jobs:
- job: SetTagAndTools
displayName: Set Tag and Tools
- job: setTagAndChangelog
displayName: Set Tag and Upload Changelog
condition: succeeded()
pool:
type: windows
@@ -19,32 +19,6 @@ jobs:
clean: true
env:
ob_restore_phase: true
- checkout: PSInternalTools
clean: true
env:
ob_restore_phase: true
- pwsh: |
New-Item -ItemType Directory -Path '$(Pipeline.Workspace)/ToolArtifact'
Get-ChildItem -Path '$(Build.SourcesDirectory)/Internal-PowerShellTeam-Tools/Scripts' -Filter 'GitHubRelease.psm1' -ErrorAction SilentlyContinue |
Copy-Item -Destination '$(Pipeline.Workspace)/ToolArtifact' -Verbose
displayName: Move GitHub Tool
- task: onebranch.pipeline.signing@1
displayName: Sign Tools
inputs:
command: 'sign'
signing_profile: internal_azure_service
files_to_sign: '*.ps1;*.psm1'
search_root: '$(Pipeline.Workspace)/ToolArtifact'
- pwsh: |
Write-Verbose -Verbose "Creating output directory for release tools: $(ob_outputDirectory)/ToolArtifact"
New-Item -Path $(ob_outputDirectory)/ToolArtifact -ItemType Directory -Force
Get-ChildItem -Path "$(Pipeline.Workspace)/ToolArtifact/*" -Recurse |
Copy-Item -Destination $(ob_outputDirectory)/ToolArtifact -Recurse -Verbose
displayName: Upload Tools
- pwsh: |
Write-Verbose -Verbose "Release Tag: $(OutputReleaseTag.releaseTag)"
+34 -9
View File
@@ -12,14 +12,14 @@ jobs:
templateContext:
inputs:
- input: pipelineArtifact
artifactName: drop_setReleaseTagAndUploadTools_SetTagAndTools
artifactName: drop_setReleaseTagAndChangelog_SetTagAndChangelog
- input: pipelineArtifact
pipeline: PSPackagesOfficial
artifactName: drop_upload_upload_packages
variables:
- template: ./variable/release-shared.yml@self
parameters:
RELEASETAG: $[ stageDependencies.setReleaseTagAndUploadTools.SetTagAndTools.outputs['OutputReleaseTag.releaseTag'] ]
RELEASETAG: $[ stageDependencies.setReleaseTagAndChangelog.setTagAndChangelog.outputs['OutputReleaseTag.releaseTag'] ]
steps:
- task: PowerShell@2
@@ -62,12 +62,10 @@ jobs:
displayName: List all files in the workspace
- task: PowerShell@2
condition: and(ne('${{ parameters.skipPublish }}', 'false'), succeeded())
inputs:
targetType: inline
pwsh: true
script: |
Import-module '$(Pipeline.Workspace)/ToolArtifact/GitHubRelease.psm1'
$releaseVersion = '$(ReleaseTag)' -replace '^v',''
Write-Verbose -Verbose "Available modules: "
Get-Module | Write-Verbose -Verbose
@@ -89,8 +87,37 @@ jobs:
Write-Verbose -Verbose "Selected content: `n$clContent"
Publish-ReleaseDraft -Tag '$(ReleaseTag)' -Name '$(ReleaseTag) Release of PowerShell' -Description $clContent -User PowerShell -Repository PowerShell -PackageFolder "$(Pipeline.Workspace)/GitHubPackages" -Token $(GitHubReleasePat)
displayName: Publish Release Draft
$releaseNotesFilePath = "$(Pipeline.Workspace)/release-notes.md"
$clContent | Out-File -FilePath $releaseNotesFilePath -Encoding utf8
Write-Host "##vso[task.setvariable variable=ReleaseNotesFilePath;]$releaseNotesFilePath"
#if name has prelease then make prerelease true as a variable
if ($releaseVersion -like '*-*') {
Write-Host "##vso[task.setvariable variable=IsPreRelease;]true"
} else {
Write-Host "##vso[task.setvariable variable=IsPreRelease;]false"
}
displayName: Set variables for GitHub release task
- pwsh: |
Write-Host "ReleaseNotes content:"
Get-Content "$(Pipeline.Workspace)/release-notes.md" -Raw | Out-String -width 9999 | Write-Host
displayName: Verify Release Notes
- task: GitHubRelease@1
inputs:
gitHubConnection: GitHubReleasePAT
repositoryName: PowerShell/PowerShell
target: master
assets: '$(Pipeline.Workspace)/GitHubPackages/*'
tagSource: 'userSpecifiedTag'
tag: '$(ReleaseTag)'
isDraft: true
addChangeLog: false
action: 'create'
releaseNotesFilePath: '$(ReleaseNotesFilePath)'
isPrerelease: '$(IsPreRelease)'
- job: NuGetPublish
displayName: Publish to NuGet
@@ -100,15 +127,13 @@ jobs:
os: windows
templateContext:
inputs:
- input: pipelineArtifact
artifactName: drop_setReleaseTagAndUploadTools_SetTagAndTools
- input: pipelineArtifact
pipeline: PSPackagesOfficial
artifactName: drop_upload_upload_packages
variables:
- template: ./variable/release-shared.yml@self
parameters:
VERSION: $[ stageDependencies.setReleaseTagAndUploadTools.SetTagAndTools.outputs['OutputVersion.Version'] ]
VERSION: $[ stageDependencies.setReleaseTagAndChangelog.SetTagAndChangelog.outputs['OutputVersion.Version'] ]
steps:
- template: release-install-pwsh.yml