8000 Use GitHubReleaseTask instead of custom script (#25398) · PowerShell/PowerShell@fa4f5b6 · GitHub
[go: up one dir, main page]

Skip to content

Commit fa4f5b6

Browse files
jshigetomiJustin ChungTravisEz13
authored
Use GitHubReleaseTask instead of custom script (#25398)
Co-authored-by: Justin Chung <chungjustin@microsoft.com> Co-authored-by: Travis Plunk <travis.plunk@microsoft.com>
1 parent 352fd38 commit fa4f5b6

File tree

3 files changed

+40
-41
lines changed

3 files changed

+40
-41
lines changed

.pipelines/PowerShell-Release-Official.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,10 @@ extends:
117117
tsaOptionsFile: .config\tsaoptions.json
118118

119119
stages:
120-
- stage: setReleaseTagAndUploadTools
121-
displayName: 'Set Release Tag and Upload Tools'
120+
- stage: setReleaseTagAndChangelog
121+
displayName: 'Set Release Tag and Upload Changelog'
122122
jobs:
123-
- template: /.pipelines/templates/release-SetTagAndTools.yml@self
123+
- template: /.pipelines/templates/release-SetTagAndChangelog.yml@self
124124

125125
- stage: msixbundle
126126
displayName: 'Create MSIX Bundle'
@@ -284,7 +284,7 @@ extends:
284284
- stage: PublishGitHubReleaseAndNuget
285285
displayName: Publish GitHub and Nuget Release
286286
dependsOn:
287-
- setReleaseTagAndUploadTools
287+
- setReleaseTagAndChangelog
288288
- UpdateChangeLog
289289
variables:
290290
ob_release_environment: Production

.pipelines/templates/release-SetTagAndTools.yml renamed to .pipelines/templates/release-SetTagAndChangelog.yml

+2-28
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
jobs:
2-
- job: SetTagAndTools
3-
displayName: Set Tag and Tools
2+
- job: setTagAndChangelog
3+
displayName: Set Tag and Upload Changelog
44
condition: succeeded()
55
pool:
66
type: windows
@@ -19,32 +19,6 @@ jobs:
1919
clean: true
2020
env:
2121
ob_restore_phase: true
22-
23-
- checkout: PSInternalTools
24-
clean: true
25-
env:
26-
ob_restore_phase: true
27-
28-
- pwsh: |
29-
New-Item -ItemType Directory -Path '$(Pipeline.Workspace)/ToolArtifact'
30-
Get-ChildItem -Path '$(Build.SourcesDirectory)/Internal-PowerShellTeam-Tools/Scripts' -Filter 'GitHubRelease.psm1' -ErrorAction SilentlyContinue |
31-
Copy-Item -Destination '$(Pipeline.Workspace)/ToolArtifact' -Verbose
32-
displayName: Move GitHub Tool
33-
34-
- task: onebranch.pipeline.signing@1
35-
displayName: Sign Tools
36-
inputs:
37-
command: 'sign'
38-
signing_profile: internal_azure_service
39-
files_to_sign: '*.ps1;*.psm1'
40-
search_root: '$(Pipeline.Workspace)/ToolArtifact'
41-
42-
- pwsh: |
43-
Write-Verbose -Verbose "Creating output directory for release tools: $(ob_outputDirectory)/ToolArtifact"
44-
New-Item -Path $(ob_outputDirectory)/ToolArtifact -ItemType Directory -Force
45-
Get-ChildItem -Path "$(Pipeline.Workspace)/ToolArtifact/*" -Recurse |
46-
Copy-Item -Destination $(ob_outputDirectory)/ToolArtifact -Recurse -Verbose
47-
displayName: Upload Tools
4822

4923
- pwsh: |
5024
Write-Verbose -Verbose "Release Tag: $(OutputReleaseTag.releaseTag)"

.pipelines/templates/release-githubNuget.yml

+34-9
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ jobs:
1212
templateContext:
1313
inputs:
1414
- input: pipelineArtifact
15-
artifactName: drop_setReleaseTagAndUploadTools_SetTagAndTools
15+
artifactName: drop_setReleaseTagAndChangelog_SetTagAndChangelog
1616
- input: pipelineArtifact
1717
pipeline: PSPackagesOfficial
1818
artifactName: drop_upload_upload_packages
1919
variables:
2020
- template: ./variable/release-shared.yml@self
2121
parameters:
22-
RELEASETAG: $[ stageDependencies.setReleaseTagAndUploadTools.SetTagAndTools.outputs['OutputReleaseTag.releaseTag'] ]
22+
RELEASETAG: $[ stageDependencies.setReleaseTagAndChangelog.setTagAndChangelog.outputs['OutputReleaseTag.releaseTag'] ]
2323

2424
steps:
2525
- task: PowerShell@2
@@ -62,12 +62,10 @@ jobs:
6262
displayName: List all files in the workspace
6363

6464
- task: PowerShell@2
65-
condition: and(ne('${{ parameters.skipPublish }}', 'false'), succeeded())
6665
inputs:
6766
targetType: inline
6867
pwsh: true
6968
script: |
70-
Import-module '$(Pipeline.Workspace)/ToolArtifact/GitHubRelease.psm1'
7169
$releaseVersion = '$(ReleaseTag)' -replace '^v',''
7270
Write-Verbose -Verbose "Available modules: "
7371
Get-Module | Write-Verbose -Verbose
@@ -88,9 +86,38 @@ jobs:
8886
$clContent = $changelog | Select-Object -Skip ($startLine-1) -First ($endLine - $startLine) | Out-String
8987

9088
Write-Verbose -Verbose "Selected content: `n$clContent"
89+
90+
$releaseNotesFilePath = "$(Pipeline.Workspace)/release-notes.md"
91+
$clContent | Out-File -FilePath $releaseNotesFilePath -Encoding utf8
92+
93+
Write-Host "##vso[task.setvariable variable=ReleaseNotesFilePath;]$releaseNotesFilePath"
9194
92-
Publish-ReleaseDraft -Tag '$(ReleaseTag)' -Name '$(ReleaseTag) Release of PowerShell' -Description $clContent -User PowerShell -Repository PowerShell -PackageFolder "$(Pipeline.Workspace)/GitHubPackages" -Token $(GitHubReleasePat)
93-
displayName: Publish Release Draft
95+
#if name has prelease then make prerelease true as a variable
96+
if ($releaseVersion -like '*-*') {
97+
Write-Host "##vso[task.setvariable variable=IsPreRelease;]true"
98+
} else {
99+
Write-Host "##vso[task.setvariable variable=IsPreRelease;]false"
100+
}
101+
displayName: Set variables for GitHub release task
102+
103+
- pwsh: |
104+
Write-Host "ReleaseNotes content:"
105+
Get-Content "$(Pipeline.Workspace)/release-notes.md" -Raw | Out-String -width 9999 | Write-Host
106+
displayName: Verify Release Notes
107+
108+
- task: GitHubRelease@1
109+
inputs:
110+
gitHubConnection: GitHubReleasePAT
111+
repositoryName: PowerShell/PowerShell
112+
target: master
113+
assets: '$(Pipeline.Workspace)/GitHubPackages/*'
114+
tagSource: 'userSpecifiedTag'
115+
tag: '$(ReleaseTag)'
116+
isDraft: true
117+
addChangeLog: false
118+
action: 'create'
119+
releaseNotesFilePath: '$(ReleaseNotesFilePath)'
120+
isPrerelease: '$(IsPreRelease)'
94121
95122
- job: NuGetPublish
96123
displayName: Publish to NuGet
@@ -100,15 +127,13 @@ jobs:
100127
os: windows
101128
templateContext:
102129
inputs:
103-
- input: pipelineArtifact
104-
artifactName: drop_setReleaseTagAndUploadTools_SetTagAndTools
105130
- input: pipelineArtifact
106131
pipeline: PSPackagesOfficial
107132
artifactName: drop_upload_upload_packages
108133
variables:
109134
- template: ./variable/release-shared.yml@self
110135
parameters:
111-
VERSION: $[ stageDependencies.setReleaseTagAndUploadTools.SetTagAndTools.outputs['OutputVersion.Version'] ]
136+
VERSION: $[ stageDependencies.setReleaseTagAndChangelog.SetTagAndChangelog.outputs['OutputVersion.Version'] ]
112137
113138
steps:
114139
- template: release-install-pwsh.yml

0 commit comments

Comments
 (0)
0