2020-02-13 01:57:27 -05:00
module . exports =
/******/ ( function ( modules , runtime ) { // webpackBootstrap
/******/ "use strict" ;
/******/ // The module cache
/******/ var installedModules = { } ;
/******/
/******/ // The require function
/******/ function _ _webpack _require _ _ ( moduleId ) {
/******/
/******/ // Check if module is in cache
/******/ if ( installedModules [ moduleId ] ) {
/******/ return installedModules [ moduleId ] . exports ;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules [ moduleId ] = {
/******/ i : moduleId ,
/******/ l : false ,
/******/ exports : { }
/******/ } ;
/******/
/******/ // Execute the module function
/******/ modules [ moduleId ] . call ( module . exports , module , module . exports , _ _webpack _require _ _ ) ;
/******/
/******/ // Flag the module as loaded
/******/ module . l = true ;
/******/
/******/ // Return the exports of the module
/******/ return module . exports ;
/******/ }
/******/
/******/
/******/ _ _webpack _require _ _ . ab = _ _dirname + "/" ;
/******/
/******/ // the startup function
/******/ function startup ( ) {
/******/ // Load entry module and return exports
2020-11-14 11:45:32 -05:00
/******/ return _ _webpack _require _ _ ( 325 ) ;
2020-02-13 01:57:27 -05:00
/******/ } ;
/******/
/******/ // run startup
/******/ return startup ( ) ;
/******/ } )
/************************************************************************/
/******/ ( {
2020-11-14 11:45:32 -05:00
/***/ 82 :
/***/ ( function ( _ _unusedmodule , exports ) {
"use strict" ;
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
2021-06-10 18:08:08 -04:00
exports . toCommandProperties = exports . toCommandValue = void 0 ;
2020-11-14 11:45:32 -05:00
/ * *
* Sanitizes an input into a string so it can be passed into issueCommand safely
* @ param input input to sanitize into a string
* /
function toCommandValue ( input ) {
if ( input === null || input === undefined ) {
return '' ;
}
else if ( typeof input === 'string' || input instanceof String ) {
return input ;
}
return JSON . stringify ( input ) ;
}
exports . toCommandValue = toCommandValue ;
2021-06-10 18:08:08 -04:00
/ * *
*
* @ param annotationProperties
* @ returns The command properties to send with the actual annotation command
* See IssueCommandProperties : https : //github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646
* /
function toCommandProperties ( annotationProperties ) {
if ( ! Object . keys ( annotationProperties ) . length ) {
return { } ;
}
return {
title : annotationProperties . title ,
line : annotationProperties . startLine ,
endLine : annotationProperties . endLine ,
col : annotationProperties . startColumn ,
endColumn : annotationProperties . endColumn
} ;
}
exports . toCommandProperties = toCommandProperties ;
2020-11-14 11:45:32 -05:00
//# sourceMappingURL=utils.js.map
/***/ } ) ,
2020-02-13 01:57:27 -05:00
/***/ 87 :
/***/ ( function ( module ) {
module . exports = require ( "os" ) ;
/***/ } ) ,
2020-11-14 11:45:32 -05:00
/***/ 102 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
// For internal use, subject to change.
2021-06-10 18:08:08 -04:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
2020-11-14 11:45:32 -05:00
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
2021-06-10 18:08:08 -04:00
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
2020-11-14 11:45:32 -05:00
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
2021-06-10 18:08:08 -04:00
exports . issueCommand = void 0 ;
2020-11-14 11:45:32 -05:00
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
const fs = _ _importStar ( _ _webpack _require _ _ ( 747 ) ) ;
const os = _ _importStar ( _ _webpack _require _ _ ( 87 ) ) ;
const utils _1 = _ _webpack _require _ _ ( 82 ) ;
function issueCommand ( command , message ) {
const filePath = process . env [ ` GITHUB_ ${ command } ` ] ;
if ( ! filePath ) {
throw new Error ( ` Unable to find environment variable for file command ${ command } ` ) ;
}
if ( ! fs . existsSync ( filePath ) ) {
throw new Error ( ` Missing file at path: ${ filePath } ` ) ;
}
fs . appendFileSync ( filePath , ` ${ utils _1 . toCommandValue ( message ) } ${ os . EOL } ` , {
encoding : 'utf8'
} ) ;
}
exports . issueCommand = issueCommand ;
//# sourceMappingURL=file-command.js.map
/***/ } ) ,
2020-02-13 01:57:27 -05:00
/***/ 129 :
/***/ ( function ( module ) {
module . exports = require ( "child_process" ) ;
/***/ } ) ,
/***/ 156 :
/***/ ( function ( module ) {
function calc ( m ) {
return function ( n ) { return Math . round ( n * m ) ; } ;
} ;
module . exports = {
seconds : calc ( 1e3 ) ,
minutes : calc ( 6e4 ) ,
hours : calc ( 36e5 ) ,
days : calc ( 864e5 ) ,
weeks : calc ( 6048e5 ) ,
months : calc ( 26298e5 ) ,
years : calc ( 315576e5 )
} ;
2020-11-14 11:45:32 -05:00
/***/ } ) ,
/***/ 322 :
/***/ ( function ( _ _unusedmodule , exports ) {
"use strict" ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _generator = ( this && this . _ _generator ) || function ( thisArg , body ) {
var _ = { label : 0 , sent : function ( ) { if ( t [ 0 ] & 1 ) throw t [ 1 ] ; return t [ 1 ] ; } , trys : [ ] , ops : [ ] } , f , y , t , g ;
return g = { next : verb ( 0 ) , "throw" : verb ( 1 ) , "return" : verb ( 2 ) } , typeof Symbol === "function" && ( g [ Symbol . iterator ] = function ( ) { return this ; } ) , g ;
function verb ( n ) { return function ( v ) { return step ( [ n , v ] ) ; } ; }
function step ( op ) {
if ( f ) throw new TypeError ( "Generator is already executing." ) ;
while ( _ ) try {
if ( f = 1 , y && ( t = op [ 0 ] & 2 ? y [ "return" ] : op [ 0 ] ? y [ "throw" ] || ( ( t = y [ "return" ] ) && t . call ( y ) , 0 ) : y . next ) && ! ( t = t . call ( y , op [ 1 ] ) ) . done ) return t ;
if ( y = 0 , t ) op = [ op [ 0 ] & 2 , t . value ] ;
switch ( op [ 0 ] ) {
case 0 : case 1 : t = op ; break ;
case 4 : _ . label ++ ; return { value : op [ 1 ] , done : false } ;
case 5 : _ . label ++ ; y = op [ 1 ] ; op = [ 0 ] ; continue ;
case 7 : op = _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ;
default :
if ( ! ( t = _ . trys , t = t . length > 0 && t [ t . length - 1 ] ) && ( op [ 0 ] === 6 || op [ 0 ] === 2 ) ) { _ = 0 ; continue ; }
if ( op [ 0 ] === 3 && ( ! t || ( op [ 1 ] > t [ 0 ] && op [ 1 ] < t [ 3 ] ) ) ) { _ . label = op [ 1 ] ; break ; }
if ( op [ 0 ] === 6 && _ . label < t [ 1 ] ) { _ . label = t [ 1 ] ; t = op ; break ; }
if ( t && _ . label < t [ 2 ] ) { _ . label = t [ 2 ] ; _ . ops . push ( op ) ; break ; }
if ( t [ 2 ] ) _ . ops . pop ( ) ;
_ . trys . pop ( ) ; continue ;
}
op = body . call ( thisArg , _ ) ;
} catch ( e ) { op = [ 6 , e ] ; y = 0 ; } finally { f = t = 0 ; }
if ( op [ 0 ] & 5 ) throw op [ 1 ] ; return { value : op [ 0 ] ? op [ 1 ] : void 0 , done : true } ;
}
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
exports . wait = void 0 ;
function wait ( ms ) {
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
return _ _generator ( this , function ( _a ) {
return [ 2 /*return*/ , new Promise ( function ( r ) { return setTimeout ( r , ms ) ; } ) ] ;
} ) ;
} ) ;
}
exports . wait = wait ;
/***/ } ) ,
/***/ 325 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
var _ _generator = ( this && this . _ _generator ) || function ( thisArg , body ) {
var _ = { label : 0 , sent : function ( ) { if ( t [ 0 ] & 1 ) throw t [ 1 ] ; return t [ 1 ] ; } , trys : [ ] , ops : [ ] } , f , y , t , g ;
return g = { next : verb ( 0 ) , "throw" : verb ( 1 ) , "return" : verb ( 2 ) } , typeof Symbol === "function" && ( g [ Symbol . iterator ] = function ( ) { return this ; } ) , g ;
function verb ( n ) { return function ( v ) { return step ( [ n , v ] ) ; } ; }
function step ( op ) {
if ( f ) throw new TypeError ( "Generator is already executing." ) ;
while ( _ ) try {
if ( f = 1 , y && ( t = op [ 0 ] & 2 ? y [ "return" ] : op [ 0 ] ? y [ "throw" ] || ( ( t = y [ "return" ] ) && t . call ( y ) , 0 ) : y . next ) && ! ( t = t . call ( y , op [ 1 ] ) ) . done ) return t ;
if ( y = 0 , t ) op = [ op [ 0 ] & 2 , t . value ] ;
switch ( op [ 0 ] ) {
case 0 : case 1 : t = op ; break ;
case 4 : _ . label ++ ; return { value : op [ 1 ] , done : false } ;
case 5 : _ . label ++ ; y = op [ 1 ] ; op = [ 0 ] ; continue ;
case 7 : op = _ . ops . pop ( ) ; _ . trys . pop ( ) ; continue ;
default :
if ( ! ( t = _ . trys , t = t . length > 0 && t [ t . length - 1 ] ) && ( op [ 0 ] === 6 || op [ 0 ] === 2 ) ) { _ = 0 ; continue ; }
if ( op [ 0 ] === 3 && ( ! t || ( op [ 1 ] > t [ 0 ] && op [ 1 ] < t [ 3 ] ) ) ) { _ . label = op [ 1 ] ; break ; }
if ( op [ 0 ] === 6 && _ . label < t [ 1 ] ) { _ . label = t [ 1 ] ; t = op ; break ; }
if ( t && _ . label < t [ 2 ] ) { _ . label = t [ 2 ] ; _ . ops . push ( op ) ; break ; }
if ( t [ 2 ] ) _ . ops . pop ( ) ;
_ . trys . pop ( ) ; continue ;
}
op = body . call ( thisArg , _ ) ;
} catch ( e ) { op = [ 6 , e ] ; y = 0 ; } finally { f = t = 0 ; }
if ( op [ 0 ] & 5 ) throw op [ 1 ] ; return { value : op [ 0 ] ? op [ 1 ] : void 0 , done : true } ;
}
} ;
var _ _importDefault = ( this && this . _ _importDefault ) || function ( mod ) {
return ( mod && mod . _ _esModule ) ? mod : { "default" : mod } ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
var core _1 = _ _webpack _require _ _ ( 470 ) ;
var child _process _1 = _ _webpack _require _ _ ( 129 ) ;
var milliseconds _1 = _ _importDefault ( _ _webpack _require _ _ ( 156 ) ) ;
var tree _kill _1 = _ _importDefault ( _ _webpack _require _ _ ( 791 ) ) ;
var util _1 = _ _webpack _require _ _ ( 322 ) ;
// inputs
var TIMEOUT _MINUTES = getInputNumber ( 'timeout_minutes' , false ) ;
var TIMEOUT _SECONDS = getInputNumber ( 'timeout_seconds' , false ) ;
var MAX _ATTEMPTS = getInputNumber ( 'max_attempts' , true ) || 3 ;
var COMMAND = core _1 . getInput ( 'command' , { required : true } ) ;
var RETRY _WAIT _SECONDS = getInputNumber ( 'retry_wait_seconds' , false ) || 10 ;
2021-01-02 10:20:16 -05:00
var SHELL = core _1 . getInput ( 'shell' ) ;
2020-11-14 11:45:32 -05:00
var POLLING _INTERVAL _SECONDS = getInputNumber ( 'polling_interval_seconds' , false ) || 1 ;
var RETRY _ON = core _1 . getInput ( 'retry_on' ) || 'any' ;
2020-11-18 10:25:11 -05:00
var WARNING _ON _RETRY = core _1 . getInput ( 'warning_on_retry' ) . toLowerCase ( ) === 'true' ;
2021-01-04 21:32:32 -05:00
var ON _RETRY _COMMAND = core _1 . getInput ( 'on_retry_command' ) ;
2021-06-10 18:08:08 -04:00
var CONTINUE _ON _ERROR = getInputBoolean ( 'continue_on_error' ) ;
2021-01-02 10:20:16 -05:00
var OS = process . platform ;
2020-11-14 11:45:32 -05:00
var OUTPUT _TOTAL _ATTEMPTS _KEY = 'total_attempts' ;
var OUTPUT _EXIT _CODE _KEY = 'exit_code' ;
var OUTPUT _EXIT _ERROR _KEY = 'exit_error' ;
var exit ;
var done ;
function getInputNumber ( id , required ) {
var input = core _1 . getInput ( id , { required : required } ) ;
var num = Number . parseInt ( input ) ;
// empty is ok
if ( ! input && ! required ) {
return ;
}
if ( ! Number . isInteger ( num ) ) {
throw "Input " + id + " only accepts numbers. Received " + input ;
}
return num ;
}
2021-06-10 18:08:08 -04:00
function getInputBoolean ( id ) {
var input = core _1 . getInput ( id ) ;
if ( ! [ 'true' , 'false' ] . includes ( input . toLowerCase ( ) ) ) {
throw "Input " + id + " only accepts boolean values. Received " + input ;
}
return input . toLowerCase ( ) === 'true' ;
}
2020-11-14 11:45:32 -05:00
function retryWait ( ) {
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
var waitStart ;
return _ _generator ( this , function ( _a ) {
switch ( _a . label ) {
case 0 :
waitStart = Date . now ( ) ;
return [ 4 /*yield*/ , util _1 . wait ( milliseconds _1 . default . seconds ( RETRY _WAIT _SECONDS ) ) ] ;
case 1 :
_a . sent ( ) ;
core _1 . debug ( "Waited " + ( Date . now ( ) - waitStart ) + "ms" ) ;
core _1 . debug ( "Configured wait: " + milliseconds _1 . default . seconds ( RETRY _WAIT _SECONDS ) + "ms" ) ;
return [ 2 /*return*/ ] ;
}
} ) ;
} ) ;
}
function validateInputs ( ) {
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
return _ _generator ( this , function ( _a ) {
if ( ( ! TIMEOUT _MINUTES && ! TIMEOUT _SECONDS ) || ( TIMEOUT _MINUTES && TIMEOUT _SECONDS ) ) {
throw new Error ( 'Must specify either timeout_minutes or timeout_seconds inputs' ) ;
}
return [ 2 /*return*/ ] ;
} ) ;
} ) ;
}
function getTimeout ( ) {
if ( TIMEOUT _MINUTES ) {
return milliseconds _1 . default . minutes ( TIMEOUT _MINUTES ) ;
}
else if ( TIMEOUT _SECONDS ) {
return milliseconds _1 . default . seconds ( TIMEOUT _SECONDS ) ;
}
throw new Error ( 'Must specify either timeout_minutes or timeout_seconds inputs' ) ;
}
2021-01-02 10:20:16 -05:00
function getExecutable ( ) {
if ( ! SHELL ) {
return OS === 'win32' ? 'powershell' : 'bash' ;
}
var executable ;
switch ( SHELL ) {
case "bash" :
case "python" :
case "pwsh" : {
executable = SHELL ;
break ;
}
case "sh" : {
if ( OS === 'win32' ) {
throw new Error ( "Shell " + SHELL + " not allowed on OS " + OS ) ;
}
executable = SHELL ;
break ;
}
case "cmd" :
case "powershell" : {
if ( OS !== 'win32' ) {
throw new Error ( "Shell " + SHELL + " not allowed on OS " + OS ) ;
}
executable = SHELL + ".exe" ;
break ;
}
default : {
2021-01-03 21:00:31 -05:00
throw new Error ( "Shell " + SHELL + " not supported. See https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-syntax-for-github-actions#using-a-specific-shell for supported shells" ) ;
2021-01-02 10:20:16 -05:00
}
}
return executable ;
}
2021-01-04 21:32:32 -05:00
function runRetryCmd ( ) {
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
var error _1 ;
return _ _generator ( this , function ( _a ) {
switch ( _a . label ) {
case 0 :
// if no retry script, just continue
if ( ! ON _RETRY _COMMAND ) {
return [ 2 /*return*/ ] ;
}
_a . label = 1 ;
case 1 :
_a . trys . push ( [ 1 , 3 , , 4 ] ) ;
return [ 4 /*yield*/ , child _process _1 . execSync ( ON _RETRY _COMMAND , { stdio : 'inherit' } ) ] ;
case 2 :
_a . sent ( ) ;
return [ 3 /*break*/ , 4 ] ;
case 3 :
error _1 = _a . sent ( ) ;
core _1 . info ( "WARNING: Retry command threw the error " + error _1 . message ) ;
return [ 3 /*break*/ , 4 ] ;
case 4 : return [ 2 /*return*/ ] ;
}
} ) ;
} ) ;
}
2020-11-14 11:45:32 -05:00
function runCmd ( ) {
var _a , _b ;
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
2021-01-01 22:57:53 +00:00
var end _time , executable , child ;
2020-11-14 11:45:32 -05:00
return _ _generator ( this , function ( _c ) {
switch ( _c . label ) {
case 0 :
end _time = Date . now ( ) + getTimeout ( ) ;
2021-01-02 10:20:16 -05:00
executable = getExecutable ( ) ;
2020-11-14 11:45:32 -05:00
exit = 0 ;
done = false ;
2021-01-02 10:20:16 -05:00
core _1 . debug ( "Running command " + COMMAND + " on " + OS + " using shell " + executable ) ;
2021-01-01 22:57:53 +00:00
child = child _process _1 . exec ( COMMAND , { 'shell' : executable } ) ;
2020-11-14 11:45:32 -05:00
( _a = child . stdout ) === null || _a === void 0 ? void 0 : _a . on ( 'data' , function ( data ) {
process . stdout . write ( data ) ;
} ) ;
( _b = child . stderr ) === null || _b === void 0 ? void 0 : _b . on ( 'data' , function ( data ) {
process . stdout . write ( data ) ;
} ) ;
child . on ( 'exit' , function ( code , signal ) {
core _1 . debug ( "Code: " + code ) ;
core _1 . debug ( "Signal: " + signal ) ;
if ( code && code > 0 ) {
exit = code ;
}
// timeouts are killed manually
if ( signal === 'SIGTERM' ) {
return ;
}
done = true ;
} ) ;
_c . label = 1 ;
case 1 : return [ 4 /*yield*/ , util _1 . wait ( milliseconds _1 . default . seconds ( POLLING _INTERVAL _SECONDS ) ) ] ;
case 2 :
_c . sent ( ) ;
_c . label = 3 ;
case 3 :
if ( Date . now ( ) < end _time && ! done ) return [ 3 /*break*/ , 1 ] ;
_c . label = 4 ;
case 4 :
if ( ! ! done ) return [ 3 /*break*/ , 6 ] ;
tree _kill _1 . default ( child . pid ) ;
return [ 4 /*yield*/ , retryWait ( ) ] ;
case 5 :
_c . sent ( ) ;
throw new Error ( "Timeout of " + getTimeout ( ) + "ms hit" ) ;
case 6 :
if ( ! ( exit > 0 ) ) return [ 3 /*break*/ , 8 ] ;
return [ 4 /*yield*/ , retryWait ( ) ] ;
case 7 :
_c . sent ( ) ;
throw new Error ( "Child_process exited with error code " + exit ) ;
case 8 : return [ 2 /*return*/ ] ;
}
} ) ;
} ) ;
}
function runAction ( ) {
return _ _awaiter ( this , void 0 , void 0 , function ( ) {
2021-01-04 21:32:32 -05:00
var attempt , error _2 ;
2020-11-14 11:45:32 -05:00
return _ _generator ( this , function ( _a ) {
switch ( _a . label ) {
case 0 : return [ 4 /*yield*/ , validateInputs ( ) ] ;
case 1 :
_a . sent ( ) ;
attempt = 1 ;
_a . label = 2 ;
case 2 :
2021-01-04 21:32:32 -05:00
if ( ! ( attempt <= MAX _ATTEMPTS ) ) return [ 3 /*break*/ , 12 ] ;
2020-11-14 11:45:32 -05:00
_a . label = 3 ;
case 3 :
2021-01-04 21:32:32 -05:00
_a . trys . push ( [ 3 , 5 , , 11 ] ) ;
2020-11-14 11:45:32 -05:00
// just keep overwriting attempts output
core _1 . setOutput ( OUTPUT _TOTAL _ATTEMPTS _KEY , attempt ) ;
return [ 4 /*yield*/ , runCmd ( ) ] ;
case 4 :
_a . sent ( ) ;
core _1 . info ( "Command completed after " + attempt + " attempt(s)." ) ;
2021-01-04 21:32:32 -05:00
return [ 3 /*break*/ , 12 ] ;
2020-11-14 11:45:32 -05:00
case 5 :
2021-01-04 21:32:32 -05:00
error _2 = _a . sent ( ) ;
if ( ! ( attempt === MAX _ATTEMPTS ) ) return [ 3 /*break*/ , 6 ] ;
throw new Error ( "Final attempt failed. " + error _2 . message ) ;
case 6 :
if ( ! ( ! done && RETRY _ON === 'error' ) ) return [ 3 /*break*/ , 7 ] ;
// error: timeout
throw error _2 ;
case 7 :
if ( ! ( exit > 0 && RETRY _ON === 'timeout' ) ) return [ 3 /*break*/ , 8 ] ;
// error: error
throw error _2 ;
case 8 : return [ 4 /*yield*/ , runRetryCmd ( ) ] ;
case 9 :
_a . sent ( ) ;
if ( WARNING _ON _RETRY ) {
core _1 . warning ( "Attempt " + attempt + " failed. Reason: " + error _2 . message ) ;
2020-11-14 11:45:32 -05:00
}
else {
2021-01-04 21:32:32 -05:00
core _1 . info ( "Attempt " + attempt + " failed. Reason: " + error _2 . message ) ;
2020-11-14 11:45:32 -05:00
}
2021-01-04 21:32:32 -05:00
_a . label = 10 ;
case 10 : return [ 3 /*break*/ , 11 ] ;
case 11 :
2020-11-14 11:45:32 -05:00
attempt ++ ;
return [ 3 /*break*/ , 2 ] ;
2021-01-04 21:32:32 -05:00
case 12 : return [ 2 /*return*/ ] ;
2020-11-14 11:45:32 -05:00
}
} ) ;
} ) ;
}
runAction ( )
. then ( function ( ) {
core _1 . setOutput ( OUTPUT _EXIT _CODE _KEY , 0 ) ;
process . exit ( 0 ) ; // success
} )
. catch ( function ( err ) {
2021-06-10 18:08:08 -04:00
// exact error code if available, otherwise just 1
var exitCode = exit > 0 ? exit : 1 ;
if ( CONTINUE _ON _ERROR ) {
core _1 . warning ( err . message ) ;
}
else {
core _1 . error ( err . message ) ;
}
2020-11-14 11:45:32 -05:00
// these can be helpful to know if continue-on-error is true
core _1 . setOutput ( OUTPUT _EXIT _ERROR _KEY , err . message ) ;
2021-06-10 18:08:08 -04:00
core _1 . setOutput ( OUTPUT _EXIT _CODE _KEY , exitCode ) ;
// if continue_on_error, exit with exact error code else exit gracefully
// mimics native continue-on-error that is not supported in composite actions
process . exit ( CONTINUE _ON _ERROR ? 0 : exitCode ) ;
2020-11-14 11:45:32 -05:00
} ) ;
2020-02-13 01:57:27 -05:00
/***/ } ) ,
/***/ 431 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
2021-06-10 18:08:08 -04:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
2020-02-13 01:57:27 -05:00
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
2021-06-10 18:08:08 -04:00
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
2020-02-13 01:57:27 -05:00
return result ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
2021-06-10 18:08:08 -04:00
exports . issue = exports . issueCommand = void 0 ;
2020-02-13 01:57:27 -05:00
const os = _ _importStar ( _ _webpack _require _ _ ( 87 ) ) ;
2020-11-14 11:45:32 -05:00
const utils _1 = _ _webpack _require _ _ ( 82 ) ;
2020-02-13 01:57:27 -05:00
/ * *
* Commands
*
* Command Format :
* : : name key = value , key = value : : message
*
* Examples :
* : : warning : : This is the message
* : : set - env name = MY _VAR : : some value
* /
function issueCommand ( command , properties , message ) {
const cmd = new Command ( command , properties , message ) ;
process . stdout . write ( cmd . toString ( ) + os . EOL ) ;
}
exports . issueCommand = issueCommand ;
function issue ( name , message = '' ) {
issueCommand ( name , { } , message ) ;
}
exports . issue = issue ;
const CMD _STRING = '::' ;
class Command {
constructor ( command , properties , message ) {
if ( ! command ) {
command = 'missing.command' ;
}
this . command = command ;
this . properties = properties ;
this . message = message ;
}
toString ( ) {
let cmdStr = CMD _STRING + this . command ;
if ( this . properties && Object . keys ( this . properties ) . length > 0 ) {
cmdStr += ' ' ;
let first = true ;
for ( const key in this . properties ) {
if ( this . properties . hasOwnProperty ( key ) ) {
const val = this . properties [ key ] ;
if ( val ) {
if ( first ) {
first = false ;
}
else {
cmdStr += ',' ;
}
cmdStr += ` ${ key } = ${ escapeProperty ( val ) } ` ;
}
}
}
}
cmdStr += ` ${ CMD _STRING } ${ escapeData ( this . message ) } ` ;
return cmdStr ;
}
}
function escapeData ( s ) {
2020-11-14 11:45:32 -05:00
return utils _1 . toCommandValue ( s )
2020-02-13 01:57:27 -05:00
. replace ( /%/g , '%25' )
. replace ( /\r/g , '%0D' )
. replace ( /\n/g , '%0A' ) ;
}
function escapeProperty ( s ) {
2020-11-14 11:45:32 -05:00
return utils _1 . toCommandValue ( s )
2020-02-13 01:57:27 -05:00
. replace ( /%/g , '%25' )
. replace ( /\r/g , '%0D' )
. replace ( /\n/g , '%0A' )
. replace ( /:/g , '%3A' )
. replace ( /,/g , '%2C' ) ;
}
//# sourceMappingURL=command.js.map
/***/ } ) ,
/***/ 470 :
/***/ ( function ( _ _unusedmodule , exports , _ _webpack _require _ _ ) {
"use strict" ;
2021-06-10 18:08:08 -04:00
var _ _createBinding = ( this && this . _ _createBinding ) || ( Object . create ? ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
Object . defineProperty ( o , k2 , { enumerable : true , get : function ( ) { return m [ k ] ; } } ) ;
} ) : ( function ( o , m , k , k2 ) {
if ( k2 === undefined ) k2 = k ;
o [ k2 ] = m [ k ] ;
} ) ) ;
var _ _setModuleDefault = ( this && this . _ _setModuleDefault ) || ( Object . create ? ( function ( o , v ) {
Object . defineProperty ( o , "default" , { enumerable : true , value : v } ) ;
} ) : function ( o , v ) {
o [ "default" ] = v ;
} ) ;
var _ _importStar = ( this && this . _ _importStar ) || function ( mod ) {
if ( mod && mod . _ _esModule ) return mod ;
var result = { } ;
if ( mod != null ) for ( var k in mod ) if ( k !== "default" && Object . hasOwnProperty . call ( mod , k ) ) _ _createBinding ( result , mod , k ) ;
_ _setModuleDefault ( result , mod ) ;
return result ;
} ;
2020-02-13 01:57:27 -05:00
var _ _awaiter = ( this && this . _ _awaiter ) || function ( thisArg , _arguments , P , generator ) {
function adopt ( value ) { return value instanceof P ? value : new P ( function ( resolve ) { resolve ( value ) ; } ) ; }
return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
function step ( result ) { result . done ? resolve ( result . value ) : adopt ( result . value ) . then ( fulfilled , rejected ) ; }
step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
} ) ;
} ;
Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
2021-06-10 18:08:08 -04:00
exports . getState = exports . saveState = exports . group = exports . endGroup = exports . startGroup = exports . info = exports . notice = exports . warning = exports . error = exports . debug = exports . isDebug = exports . setFailed = exports . setCommandEcho = exports . setOutput = exports . getBooleanInput = exports . getMultilineInput = exports . getInput = exports . addPath = exports . setSecret = exports . exportVariable = exports . ExitCode = void 0 ;
2020-02-13 01:57:27 -05:00
const command _1 = _ _webpack _require _ _ ( 431 ) ;
2020-11-14 11:45:32 -05:00
const file _command _1 = _ _webpack _require _ _ ( 102 ) ;
const utils _1 = _ _webpack _require _ _ ( 82 ) ;
2020-02-13 01:57:27 -05:00
const os = _ _importStar ( _ _webpack _require _ _ ( 87 ) ) ;
const path = _ _importStar ( _ _webpack _require _ _ ( 622 ) ) ;
/ * *
* The code to exit an action
* /
var ExitCode ;
( function ( ExitCode ) {
/ * *
* A code indicating that the action was successful
* /
ExitCode [ ExitCode [ "Success" ] = 0 ] = "Success" ;
/ * *
* A code indicating that the action was a failure
* /
ExitCode [ ExitCode [ "Failure" ] = 1 ] = "Failure" ;
} ) ( ExitCode = exports . ExitCode || ( exports . ExitCode = { } ) ) ;
//-----------------------------------------------------------------------
// Variables
//-----------------------------------------------------------------------
/ * *
* Sets env variable for this action and future actions in the job
* @ param name the name of the variable to set
2020-06-17 13:48:21 -04:00
* @ param val the value of the variable . Non - string values will be converted to a string via JSON . stringify
2020-02-13 01:57:27 -05:00
* /
2020-06-17 13:48:21 -04:00
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2020-02-13 01:57:27 -05:00
function exportVariable ( name , val ) {
2020-11-14 11:45:32 -05:00
const convertedVal = utils _1 . toCommandValue ( val ) ;
2020-06-17 13:48:21 -04:00
process . env [ name ] = convertedVal ;
2020-11-14 11:45:32 -05:00
const filePath = process . env [ 'GITHUB_ENV' ] || '' ;
if ( filePath ) {
const delimiter = '_GitHubActionsFileCommandDelimeter_' ;
const commandValue = ` ${ name } << ${ delimiter } ${ os . EOL } ${ convertedVal } ${ os . EOL } ${ delimiter } ` ;
file _command _1 . issueCommand ( 'ENV' , commandValue ) ;
}
else {
command _1 . issueCommand ( 'set-env' , { name } , convertedVal ) ;
}
2020-02-13 01:57:27 -05:00
}
exports . exportVariable = exportVariable ;
/ * *
* Registers a secret which will get masked from logs
* @ param secret value of the secret
* /
function setSecret ( secret ) {
command _1 . issueCommand ( 'add-mask' , { } , secret ) ;
}
exports . setSecret = setSecret ;
/ * *
* Prepends inputPath to the PATH ( for this action and future actions )
* @ param inputPath
* /
function addPath ( inputPath ) {
2020-11-14 11:45:32 -05:00
const filePath = process . env [ 'GITHUB_PATH' ] || '' ;
if ( filePath ) {
file _command _1 . issueCommand ( 'PATH' , inputPath ) ;
}
else {
command _1 . issueCommand ( 'add-path' , { } , inputPath ) ;
}
2020-02-13 01:57:27 -05:00
process . env [ 'PATH' ] = ` ${ inputPath } ${ path . delimiter } ${ process . env [ 'PATH' ] } ` ;
}
exports . addPath = addPath ;
/ * *
2021-06-10 18:08:08 -04:00
* Gets the value of an input .
* Unless trimWhitespace is set to false in InputOptions , the value is also trimmed .
* Returns an empty string if the value is not defined .
2020-02-13 01:57:27 -05:00
*
* @ param name name of the input to get
* @ param options optional . See InputOptions .
* @ returns string
* /
function getInput ( name , options ) {
const val = process . env [ ` INPUT_ ${ name . replace ( / /g , '_' ) . toUpperCase ( ) } ` ] || '' ;
if ( options && options . required && ! val ) {
throw new Error ( ` Input required and not supplied: ${ name } ` ) ;
}
2021-06-10 18:08:08 -04:00
if ( options && options . trimWhitespace === false ) {
return val ;
}
2020-02-13 01:57:27 -05:00
return val . trim ( ) ;
}
exports . getInput = getInput ;
2021-06-10 18:08:08 -04:00
/ * *
* Gets the values of an multiline input . Each value is also trimmed .
*
* @ param name name of the input to get
* @ param options optional . See InputOptions .
* @ returns string [ ]
*
* /
function getMultilineInput ( name , options ) {
const inputs = getInput ( name , options )
. split ( '\n' )
. filter ( x => x !== '' ) ;
return inputs ;
}
exports . getMultilineInput = getMultilineInput ;
/ * *
* Gets the input value of the boolean type in the YAML 1.2 "core schema" specification .
* Support boolean input list : ` true | True | TRUE | false | False | FALSE ` .
* The return value is also in boolean type .
* ref : https : //yaml.org/spec/1.2/spec.html#id2804923
*
* @ param name name of the input to get
* @ param options optional . See InputOptions .
* @ returns boolean
* /
function getBooleanInput ( name , options ) {
const trueValue = [ 'true' , 'True' , 'TRUE' ] ;
const falseValue = [ 'false' , 'False' , 'FALSE' ] ;
const val = getInput ( name , options ) ;
if ( trueValue . includes ( val ) )
return true ;
if ( falseValue . includes ( val ) )
return false ;
throw new TypeError ( ` Input does not meet YAML 1.2 "Core Schema" specification: ${ name } \n ` +
` Support boolean input list: \` true | True | TRUE | false | False | FALSE \` ` ) ;
}
exports . getBooleanInput = getBooleanInput ;
2020-02-13 01:57:27 -05:00
/ * *
* Sets the value of an output .
*
* @ param name name of the output to set
2020-06-17 13:48:21 -04:00
* @ param value value to store . Non - string values will be converted to a string via JSON . stringify
2020-02-13 01:57:27 -05:00
* /
2020-06-17 13:48:21 -04:00
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2020-02-13 01:57:27 -05:00
function setOutput ( name , value ) {
2021-06-10 18:08:08 -04:00
process . stdout . write ( os . EOL ) ;
2020-02-13 01:57:27 -05:00
command _1 . issueCommand ( 'set-output' , { name } , value ) ;
}
exports . setOutput = setOutput ;
2020-06-17 13:48:21 -04:00
/ * *
* Enables or disables the echoing of commands into stdout for the rest of the step .
* Echoing is disabled by default if ACTIONS _STEP _DEBUG is not set .
*
* /
function setCommandEcho ( enabled ) {
command _1 . issue ( 'echo' , enabled ? 'on' : 'off' ) ;
}
exports . setCommandEcho = setCommandEcho ;
2020-02-13 01:57:27 -05:00
//-----------------------------------------------------------------------
// Results
//-----------------------------------------------------------------------
/ * *
* Sets the action status to failed .
* When the action exits it will be with an exit code of 1
* @ param message add error issue message
* /
function setFailed ( message ) {
process . exitCode = ExitCode . Failure ;
error ( message ) ;
}
exports . setFailed = setFailed ;
//-----------------------------------------------------------------------
// Logging Commands
//-----------------------------------------------------------------------
2020-06-17 13:48:21 -04:00
/ * *
* Gets whether Actions Step Debug is on or not
* /
function isDebug ( ) {
return process . env [ 'RUNNER_DEBUG' ] === '1' ;
}
exports . isDebug = isDebug ;
2020-02-13 01:57:27 -05:00
/ * *
* Writes debug message to user log
* @ param message debug message
* /
function debug ( message ) {
command _1 . issueCommand ( 'debug' , { } , message ) ;
}
exports . debug = debug ;
/ * *
* Adds an error issue
2020-06-17 13:48:21 -04:00
* @ param message error issue message . Errors will be converted to string via toString ( )
2021-06-10 18:08:08 -04:00
* @ param properties optional properties to add to the annotation .
2020-02-13 01:57:27 -05:00
* /
2021-06-10 18:08:08 -04:00
function error ( message , properties = { } ) {
command _1 . issueCommand ( 'error' , utils _1 . toCommandProperties ( properties ) , message instanceof Error ? message . toString ( ) : message ) ;
2020-02-13 01:57:27 -05:00
}
exports . error = error ;
/ * *
2021-06-10 18:08:08 -04:00
* Adds a warning issue
2020-06-17 13:48:21 -04:00
* @ param message warning issue message . Errors will be converted to string via toString ( )
2021-06-10 18:08:08 -04:00
* @ param properties optional properties to add to the annotation .
2020-02-13 01:57:27 -05:00
* /
2021-06-10 18:08:08 -04:00
function warning ( message , properties = { } ) {
command _1 . issueCommand ( 'warning' , utils _1 . toCommandProperties ( properties ) , message instanceof Error ? message . toString ( ) : message ) ;
2020-02-13 01:57:27 -05:00
}
exports . warning = warning ;
2021-06-10 18:08:08 -04:00
/ * *
* Adds a notice issue
* @ param message notice issue message . Errors will be converted to string via toString ( )
* @ param properties optional properties to add to the annotation .
* /
function notice ( message , properties = { } ) {
command _1 . issueCommand ( 'notice' , utils _1 . toCommandProperties ( properties ) , message instanceof Error ? message . toString ( ) : message ) ;
}
exports . notice = notice ;
2020-02-13 01:57:27 -05:00
/ * *
* Writes info to log with console . log .
* @ param message info message
* /
function info ( message ) {
process . stdout . write ( message + os . EOL ) ;
}
exports . info = info ;
/ * *
* Begin an output group .
*
* Output until the next ` groupEnd ` will be foldable in this group
*
* @ param name The name of the output group
* /
function startGroup ( name ) {
command _1 . issue ( 'group' , name ) ;
}
exports . startGroup = startGroup ;
/ * *
* End an output group .
* /
function endGroup ( ) {
command _1 . issue ( 'endgroup' ) ;
}
exports . endGroup = endGroup ;
/ * *
* Wrap an asynchronous function call in a group .
*
* Returns the same type as the function itself .
*
* @ param name The name of the group
* @ param fn The function to wrap in the group
* /
function group ( name , fn ) {
return _ _awaiter ( this , void 0 , void 0 , function * ( ) {
startGroup ( name ) ;
let result ;
try {
result = yield fn ( ) ;
}
finally {
endGroup ( ) ;
}
return result ;
} ) ;
}
exports . group = group ;
//-----------------------------------------------------------------------
// Wrapper action state
//-----------------------------------------------------------------------
/ * *
* Saves state for current action , the state can only be retrieved by this action ' s post job execution .
*
* @ param name name of the state to store
2020-06-17 13:48:21 -04:00
* @ param value value to store . Non - string values will be converted to a string via JSON . stringify
2020-02-13 01:57:27 -05:00
* /
2020-06-17 13:48:21 -04:00
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2020-02-13 01:57:27 -05:00
function saveState ( name , value ) {
command _1 . issueCommand ( 'save-state' , { name } , value ) ;
}
exports . saveState = saveState ;
/ * *
* Gets the value of an state set by this action ' s main execution .
*
* @ param name name of the state to get
* @ returns string
* /
function getState ( name ) {
return process . env [ ` STATE_ ${ name } ` ] || '' ;
}
exports . getState = getState ;
//# sourceMappingURL=core.js.map
/***/ } ) ,
/***/ 622 :
/***/ ( function ( module ) {
module . exports = require ( "path" ) ;
/***/ } ) ,
2020-11-14 11:45:32 -05:00
/***/ 747 :
/***/ ( function ( module ) {
2020-02-13 01:57:27 -05:00
2020-11-14 11:45:32 -05:00
module . exports = require ( "fs" ) ;
2020-02-13 01:57:27 -05:00
/***/ } ) ,
/***/ 791 :
/***/ ( function ( module , _ _unusedexports , _ _webpack _require _ _ ) {
"use strict" ;
var childProcess = _ _webpack _require _ _ ( 129 ) ;
var spawn = childProcess . spawn ;
var exec = childProcess . exec ;
module . exports = function ( pid , signal , callback ) {
if ( typeof signal === 'function' && callback === undefined ) {
callback = signal ;
signal = undefined ;
}
pid = parseInt ( pid ) ;
if ( Number . isNaN ( pid ) ) {
if ( callback ) {
return callback ( new Error ( "pid must be a number" ) ) ;
} else {
throw new Error ( "pid must be a number" ) ;
}
}
var tree = { } ;
var pidsToProcess = { } ;
tree [ pid ] = [ ] ;
pidsToProcess [ pid ] = 1 ;
switch ( process . platform ) {
case 'win32' :
exec ( 'taskkill /pid ' + pid + ' /T /F' , callback ) ;
break ;
case 'darwin' :
buildProcessTree ( pid , tree , pidsToProcess , function ( parentPid ) {
return spawn ( 'pgrep' , [ '-P' , parentPid ] ) ;
} , function ( ) {
killAll ( tree , signal , callback ) ;
} ) ;
break ;
// case 'sunos':
// buildProcessTreeSunOS(pid, tree, pidsToProcess, function () {
// killAll(tree, signal, callback);
// });
// break;
default : // Linux
buildProcessTree ( pid , tree , pidsToProcess , function ( parentPid ) {
return spawn ( 'ps' , [ '-o' , 'pid' , '--no-headers' , '--ppid' , parentPid ] ) ;
} , function ( ) {
killAll ( tree , signal , callback ) ;
} ) ;
break ;
}
} ;
function killAll ( tree , signal , callback ) {
var killed = { } ;
try {
Object . keys ( tree ) . forEach ( function ( pid ) {
tree [ pid ] . forEach ( function ( pidpid ) {
if ( ! killed [ pidpid ] ) {
killPid ( pidpid , signal ) ;
killed [ pidpid ] = 1 ;
}
} ) ;
if ( ! killed [ pid ] ) {
killPid ( pid , signal ) ;
killed [ pid ] = 1 ;
}
} ) ;
} catch ( err ) {
if ( callback ) {
return callback ( err ) ;
} else {
throw err ;
}
}
if ( callback ) {
return callback ( ) ;
}
}
function killPid ( pid , signal ) {
try {
process . kill ( parseInt ( pid , 10 ) , signal ) ;
}
catch ( err ) {
if ( err . code !== 'ESRCH' ) throw err ;
}
}
function buildProcessTree ( parentPid , tree , pidsToProcess , spawnChildProcessesList , cb ) {
var ps = spawnChildProcessesList ( parentPid ) ;
var allData = '' ;
ps . stdout . on ( 'data' , function ( data ) {
var data = data . toString ( 'ascii' ) ;
allData += data ;
} ) ;
var onClose = function ( code ) {
delete pidsToProcess [ parentPid ] ;
if ( code != 0 ) {
// no more parent processes
if ( Object . keys ( pidsToProcess ) . length == 0 ) {
cb ( ) ;
}
return ;
}
allData . match ( /\d+/g ) . forEach ( function ( pid ) {
pid = parseInt ( pid , 10 ) ;
tree [ parentPid ] . push ( pid ) ;
tree [ pid ] = [ ] ;
pidsToProcess [ pid ] = 1 ;
buildProcessTree ( pid , tree , pidsToProcess , spawnChildProcessesList , cb ) ;
} ) ;
} ;
ps . on ( 'close' , onClose ) ;
}
/***/ } )
/******/ } ) ;