@@ -18,6 +18,8 @@ import readChangesetState from "./readChangesetState";
18
18
import resolveFrom from "resolve-from" ;
19
19
import { throttling } from "@octokit/plugin-throttling" ;
20
20
21
+ type ReleasedPackage = Package & { uploadUrl : string } ;
22
+
21
23
// GitHub Issues/PRs messages have a max size limit on the
22
24
// message body payload.
23
25
// `body is too long (maximum is 65536 characters)`.
@@ -76,7 +78,7 @@ const createRelease = async (
76
78
) ;
77
79
}
78
80
79
- await octokit . rest . repos . createRelease ( {
81
+ return await octokit . rest . repos . createRelease ( {
80
82
name : tagName ,
81
83
tag_name : tagName ,
82
84
body : changelogEntry . content ,
@@ -133,7 +135,8 @@ export async function runPublish({
133
135
await gitUtils . pushTags ( ) ;
134
136
135
137
let { packages, tool } = await getPackages ( cwd ) ;
136
- let releasedPackages : Package [ ] = [ ] ;
138
+ let packagesToRelease : Package [ ] = [ ] ;
139
+ let releasedPackages : ReleasedPackage [ ] = [ ] ;
137
140
138
141
if ( tool !== "root" ) {
139
142
let newTagRegex = / N e w t a g : \s + ( @ [ ^ / ] + \/ [ ^ @ ] + | [ ^ / ] + ) @ ( [ ^ \s ] + ) / ;
@@ -152,18 +155,23 @@ export async function runPublish({
152
155
"This is probably a bug in the action, please open an issue"
153
156
) ;
154
157
}
155
- releasedPackages . push ( pkg ) ;
158
+ packagesToRelease . push ( pkg ) ;
156
159
}
157
160
158
161
if ( createGithubReleases ) {
159
- await Promise . all (
160
- releasedPackages . map ( ( pkg ) =>
161
- createRelease ( octokit , {
162
- pkg,
163
- tagName : `${ pkg . packageJson . name } @${ pkg . packageJson . version } ` ,
162
+ releasedPackages = (
163
+ await Promise . all (
164
+ packagesToRelease . map ( async ( pkg ) => {
165
+ const release = await createRelease ( octokit , {
166
+ pkg,
167
+ tagName : `${ pkg . packageJson . name } @${ pkg . packageJson . version } ` ,
168
+ } ) ;
169
+ if ( release ) {
170
+ return { ...pkg , uploadUrl : release . data . upload_url } ;
171
+ }
164
172
} )
165
173
)
166
- ) ;
174
+ ) . filter ( ( pkg ) => pkg !== undefined ) ;
167
175
}
168
176
} else {
169
177
if ( packages . length === 0 ) {
@@ -179,12 +187,18 @@ export async function runPublish({
179
187
let match = line . match ( newTagRegex ) ;
180
188
181
189
if ( match ) {
182
- releasedPackages . push ( pkg ) ;
190
+ packagesToRelease . push ( pkg ) ;
183
191
if ( createGithubReleases ) {
184
- await createRelease ( octokit , {
192
+ const release = await createRelease ( octokit , {
185
193
pkg,
186
194
tagName : `v${ pkg . packageJson . version } ` ,
187
195
} ) ;
196
+ if ( release ) {
197
+ releasedPackages . push ( {
198
+ ...pkg ,
199
+ uploadUrl : release . data . upload_url ,
200
+ } ) ;
201
+ }
188
202
}
189
203
break ;
190
204
}
@@ -197,6 +211,7 @@ export async function runPublish({
197
211
publishedPackages : releasedPackages . map ( ( pkg ) => ( {
198
212
name : pkg . packageJson . name ,
199
213
version : pkg . packageJson . version ,
214
+ uploadUrl : pkg . uploadUrl ,
200
215
} ) ) ,
201
216
} ;
202
217
}
0 commit comments