11import { ListrTask , ListrRendererFactory } from 'listr2' ;
22import { Context } from '../types.js'
3- import chalk from 'chalk' ;
43import { updateLogContext } from '../lib/logger.js' ;
4+ import chalk from 'chalk' ;
5+ import { unlinkSync } from 'fs' ;
6+ import constants from '../lib/constants.js' ;
57
68export default ( ctx : Context ) : ListrTask < Context , ListrRendererFactory , ListrRendererFactory > => {
79 return {
@@ -10,15 +12,27 @@ export default (ctx: Context): ListrTask<Context, ListrRendererFactory, ListrRen
1012 updateLogContext ( { task : 'finalizeBuild' } ) ;
1113
1214 try {
13- await new Promise ( resolve => ( setTimeout ( resolve , 2000 ) ) ) ;
1415 await ctx . client . finalizeBuild ( ctx . build . id , ctx . totalSnapshots , ctx . log ) ;
1516 task . output = chalk . gray ( `build url: ${ ctx . build . url } ` ) ;
16- task . title = 'Finalized build'
17+ task . title = 'Finalized build' ;
1718 } catch ( error : any ) {
1819 ctx . log . debug ( error ) ;
1920 task . output = chalk . gray ( error . message ) ;
2021 throw new Error ( 'Finalize build failed' ) ;
2122 }
23+
24+ // cleanup and upload logs
25+ try {
26+ await ctx . browser ?. close ( ) ;
27+ ctx . log . debug ( `Closed browser` ) ;
28+ await ctx . server ?. close ( ) ;
29+ ctx . log . debug ( `Closed server` ) ;
30+ let resp = await ctx . client . getS3PreSignedURL ( ctx ) ;
31+ await ctx . client . uploadLogs ( ctx , resp . data . url ) ;
32+ unlinkSync ( constants . LOG_FILE_PATH ) ;
33+ } catch ( error : any ) {
34+ ctx . log . debug ( error ) ;
35+ }
2236 } ,
2337 rendererOptions : { persistentOutput : true }
2438 }
0 commit comments