@@ -12,14 +12,14 @@ jobs:
12
12
templateContext :
13
13
inputs :
14
14
- input : pipelineArtifact
15
- artifactName : drop_setReleaseTagAndUploadTools_SetTagAndTools
15
+ artifactName : drop_setReleaseTagAndChangelog_SetTagAndChangelog
16
16
- input : pipelineArtifact
17
17
pipeline : PSPackagesOfficial
18
18
artifactName : drop_upload_upload_packages
19
19
variables :
20
20
- template : ./variable/release-shared.yml@self
21
21
parameters :
22
- RELEASETAG : $[ stageDependencies.setReleaseTagAndUploadTools.SetTagAndTools .outputs['OutputReleaseTag.releaseTag'] ]
22
+ RELEASETAG : $[ stageDependencies.setReleaseTagAndChangelog.setTagAndChangelog .outputs['OutputReleaseTag.releaseTag'] ]
23
23
24
24
steps :
25
25
- task : PowerShell@2
@@ -62,12 +62,10 @@ jobs:
62
62
displayName : List all files in the workspace
63
63
64
64
- task : PowerShell@2
65
- condition : and(ne('${{ parameters.skipPublish }}', 'false'), succeeded())
66
65
inputs :
67
66
targetType : inline
68
67
pwsh : true
69
68
script : |
70
- Import-module '$(Pipeline.Workspace)/ToolArtifact/GitHubRelease.psm1'
71
69
$releaseVersion = '$(ReleaseTag)' -replace '^v',''
72
70
Write-Verbose -Verbose "Available modules: "
73
71
Get-Module | Write-Verbose -Verbose
88
86
$clContent = $changelog | Select-Object -Skip ($startLine-1) -First ($endLine - $startLine) | Out-String
89
87
90
88
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"
91
94
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)'
94
121
95
122
- job: NuGetPublish
96
123
displayName: Publish to NuGet
@@ -100,15 +127,13 @@ jobs:
100
127
os: windows
101
128
templateContext:
102
129
inputs:
103
- - input: pipelineArtifact
104
- artifactName: drop_setReleaseTagAndUploadTools_SetTagAndTools
105
130
- input: pipelineArtifact
106
131
pipeline: PSPackagesOfficial
107
132
artifactName: drop_upload_upload_packages
108
133
variables:
109
134
- template: ./variable/release-shared.yml@self
110
135
parameters:
111
- VERSION: $[ stageDependencies.setReleaseTagAndUploadTools.SetTagAndTools .outputs['OutputVersion.Version'] ]
136
+ VERSION: $[ stageDependencies.setReleaseTagAndChangelog.SetTagAndChangelog .outputs['OutputVersion.Version'] ]
112
137
113
138
steps:
114
139
- template: release-install-pwsh.yml
0 commit comments