@@ -142,10 +142,15 @@ function parseArgs() {
142
142
description : 'number of parallel jobs to run' ,
143
143
} ,
144
144
retry : {
145
- type : 'number ' ,
145
+ type : 'count ' ,
146
146
default : 0 ,
147
147
description : 'number of times to retry failing jobs' ,
148
148
} ,
149
+ retryDelay : {
150
+ type : 'number' ,
151
+ default : 100 ,
152
+ description : 'delay between retries in ms' ,
153
+ } ,
149
154
parallel : {
150
155
type : 'boolean' ,
151
156
default : false ,
@@ -271,7 +276,7 @@ async function main() {
271
276
console . error ( '\n' ) ;
272
277
273
278
try {
274
- await withRetry ( fn , project , state . retry ) ;
279
+ await withRetry ( fn , project , state . retry , state . retryDelay ) ;
275
280
console . error ( '\n' ) ;
276
281
console . error ( `✅ ${ project } ` ) ;
277
282
} catch ( err ) {
@@ -297,13 +302,21 @@ async function main() {
297
302
process . exit ( 0 ) ;
298
303
}
299
304
300
- async function withRetry ( fn : ( ) => Promise < void > , identifier : string , retryAmount : number ) : Promise < void > {
305
+ async function withRetry (
306
+ fn : ( ) => Promise < void > ,
307
+ identifier : string ,
308
+ retryAmount : number ,
309
+ retryDelayMs : number ,
310
+ ) : Promise < void > {
301
311
do {
302
312
try {
303
313
return await fn ( ) ;
304
314
} catch ( err ) {
305
315
if ( -- retryAmount <= 0 ) throw err ;
306
- console . error ( `${ identifier } failed due to ${ err } ; retries left ${ retryAmount } ` ) ;
316
+ console . error (
317
+ `${ identifier } failed due to ${ err } ; retries left ${ retryAmount } , next retry in ${ retryDelayMs } ms` ,
318
+ ) ;
319
+ await new Promise ( ( resolve ) => setTimeout ( resolve , retryDelayMs ) ) ;
307
320
}
308
321
} while ( retryAmount > 0 ) ;
309
322
}
0 commit comments