@@ -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
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