mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
[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:
co-authored by
Justin Chung
Travis Plunk
parent
7b21583dc6
commit
61874845f4
@@ -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
|
||||
|
||||
+2
-28
@@ -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)"
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user