@@ -77,7 +77,7 @@ const request_trigger_1 = __webpack_require__(830);
7777const run = ( ) => __awaiter ( this , void 0 , void 0 , function * ( ) {
7878 try {
7979 const config = load_config_1 . loadConfig ( ) ;
80- yield request_trigger_1 . triggerBuilds ( config ) ;
80+ request_trigger_1 . triggerBuilds ( config ) ;
8181 }
8282 catch ( error ) {
8383 core . setFailed ( error . message ) ;
@@ -1259,7 +1259,7 @@ const serviceNames = ['gh', 'gist', 'gl', 'git', 'zenodo', 'figshare'];
12591259exports . loadConfig = ( ) => {
12601260 const targetRepo = core . getInput ( 'target-repo' , { required : true } ) ;
12611261 const serviceName = core . getInput ( 'service-name' , {
1262- required : true
1262+ required : true ,
12631263 } ) ;
12641264 const targetState = core . getInput ( 'target-state' ) ;
12651265 const debug = core . getInput ( 'debug' ) === 'true' ;
@@ -1458,49 +1458,53 @@ module.exports = require("util");
14581458
14591459"use strict" ;
14601460
1461- var __awaiter = ( this && this . __awaiter ) || function ( thisArg , _arguments , P , generator ) {
1462- return new ( P || ( P = Promise ) ) ( function ( resolve , reject ) {
1463- function fulfilled ( value ) { try { step ( generator . next ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
1464- function rejected ( value ) { try { step ( generator [ "throw" ] ( value ) ) ; } catch ( e ) { reject ( e ) ; } }
1465- function step ( result ) { result . done ? resolve ( result . value ) : new P ( function ( resolve ) { resolve ( result . value ) ; } ) . then ( fulfilled , rejected ) ; }
1466- step ( ( generator = generator . apply ( thisArg , _arguments || [ ] ) ) . next ( ) ) ;
1467- } ) ;
1461+ var __importStar = ( this && this . __importStar ) || function ( mod ) {
1462+ if ( mod && mod . __esModule ) return mod ;
1463+ var result = { } ;
1464+ if ( mod != null ) for ( var k in mod ) if ( Object . hasOwnProperty . call ( mod , k ) ) result [ k ] = mod [ k ] ;
1465+ result [ "default" ] = mod ;
1466+ return result ;
14681467} ;
14691468var __importDefault = ( this && this . __importDefault ) || function ( mod ) {
14701469 return ( mod && mod . __esModule ) ? mod : { "default" : mod } ;
14711470} ;
14721471Object . defineProperty ( exports , "__esModule" , { value : true } ) ;
1472+ const core = __importStar ( __webpack_require__ ( 470 ) ) ;
14731473const eventsource_1 = __importDefault ( __webpack_require__ ( 136 ) ) ;
1474- exports . requestBuild = ( url , debug ) => __awaiter ( this , void 0 , void 0 , function * ( ) {
1474+ exports . requestBuild = ( url , debug ) => {
14751475 const timeOut = 30000 ;
14761476 const startTime = new Date ( ) . getTime ( ) ;
14771477 const source = new eventsource_1 . default ( url ) ;
1478- source . onmessage = ( ( event ) => {
1479- const eventData = JSON . parse ( event . data ) ;
1480- if ( debug ) {
1481- console . log ( `BuildServerResponse(${ url } ): \n${ eventData . message } \n` ) ;
1482- }
1483- if ( checkDone ( startTime , timeOut , eventData ) ) {
1484- if ( [ 'launching' , 'ready' ] . indexOf ( eventData . phase ) > - 1 ) {
1485- console . log ( `${ url } \nYour binder build is done.\n` ) ;
1486- }
1487- else if ( eventData . phase === 'building' ) {
1488- console . log ( `${ url } \nBinder build started.\nCheck back soon.\n` ) ;
1478+ return new Promise ( ( resolve , reject ) => {
1479+ source . onmessage = ( ( event ) => {
1480+ const eventData = JSON . parse ( event . data ) ;
1481+ if ( debug ) {
1482+ console . log ( `BuildServerResponse(${ url } ): \n${ eventData . message } \n` ) ;
14891483 }
1490- else {
1491- source . close ( ) ;
1492- throw new Error ( `${ url } \nYour binder build failed with the following
1484+ if ( checkDone ( startTime , timeOut , eventData ) ) {
1485+ if ( [ 'launching' , 'ready' ] . indexOf ( eventData . phase ) > - 1 ) {
1486+ console . log ( `${ url } \nYour binder build is done.\n` ) ;
1487+ resolve ( 'success' ) ;
1488+ }
1489+ else if ( eventData . phase === 'building' ) {
1490+ console . log ( `${ url } \nBinder build started.\nCheck back soon.\n` ) ;
1491+ resolve ( 'success' ) ;
1492+ }
1493+ else {
1494+ source . close ( ) ;
1495+ reject ( `Build Error ${ url } \nYour binder build failed with the following
14931496 message:\n${ eventData . message } ` ) ;
1497+ }
1498+ source . close ( ) ;
14941499 }
1500+ } ) ;
1501+ source . onerror = ( event ) => {
14951502 source . close ( ) ;
1496- }
1497- } ) ;
1498- source . onerror = ( event ) => {
1499- source . close ( ) ;
1500- throw new Error ( `${ url } \nAn Error occurred requesting a binder build:\n
1503+ reject ( `Request Error ${ url } \nAn Error occurred requesting a binder build:\n
15011504 ${ event . data } ` ) ;
1502- } ;
1503- } ) ;
1505+ } ;
1506+ } ) ;
1507+ } ;
15041508const checkDone = ( startTime , timeOut , eventData ) => {
15051509 if ( new Date ( ) . getTime ( ) - startTime > timeOut &&
15061510 eventData . phase === 'building' ) {
@@ -1515,23 +1519,34 @@ const checkDone = (startTime, timeOut, eventData) => {
15151519} ;
15161520exports . triggerBuilds = ( config ) => {
15171521 const baseUrls = [
1522+ 'https://mybinder.org/build' ,
15181523 'https://gke.mybinder.org/build' ,
1519- 'https://ovh.mybinder.org/build'
1520- // 'http://localhost:8000'
1524+ 'https://ovh.mybinder.org/build' ,
1525+ 'https://gesis.mybinder.org/build' ,
1526+ 'https://turing.mybinder.org/build' ,
15211527 ] ;
15221528 const targetRepo = config . targetRepo ;
15231529 const targetState = config . targetState ;
15241530 const serviceName = config . serviceName ;
1531+ const responses = [ ] ;
15251532 for ( let baseUrl of baseUrls ) {
15261533 let url = `${ baseUrl } /${ serviceName } /${ targetRepo } ` ;
15271534 if ( targetState !== '' ) {
15281535 url += '/' + targetState ;
15291536 }
1530- console . log ( url ) ;
1531- exports . requestBuild ( url , config . debug ) . catch ( reason => {
1532- console . error ( reason ) ;
1533- } ) ;
1537+ responses . push ( exports . requestBuild ( url , config . debug )
1538+ . then ( ( ) => true )
1539+ . catch ( reason => {
1540+ core . error ( `Error for ${ url } :\n${ reason } \n` ) ;
1541+ return false ;
1542+ } ) ) ;
15341543 }
1544+ // tslint:disable-next-line no-floating-promises
1545+ Promise . all ( responses ) . then ( values => {
1546+ if ( values . indexOf ( true ) === - 1 ) {
1547+ throw new Error ( 'All requests to build the binder image have failed.' ) ;
1548+ }
1549+ } ) ;
15351550} ;
15361551
15371552
0 commit comments