@@ -88,7 +88,7 @@ const deployToHosting = async (
8888 type : 'confirm' ,
8989 name : 'deployProject' ,
9090 message : 'Would you like to deploy your application to Firebase Hosting?'
91- } ) ;
91+ } ) as { deployProject : boolean } ;
9292
9393 if ( ! deployProject ) { return ; }
9494
@@ -253,11 +253,11 @@ export const deployToFunction = async (
253253 projectRoot : workspaceRoot ,
254254 } ) ;
255255
256- const { deployProject} = await inquirer . prompt ( {
256+ const { deployProject } = await inquirer . prompt ( {
257257 type : 'confirm' ,
258258 name : 'deployProject' ,
259259 message : 'Would you like to deploy your application to Firebase Hosting & Cloud Functions?'
260- } ) ;
260+ } ) as { deployProject : boolean } ;
261261
262262 if ( ! deployProject ) { return ; }
263263 }
@@ -390,52 +390,50 @@ export default async function deploy(
390390 options : DeployBuilderOptions ,
391391 firebaseToken ?: string ,
392392) {
393- if ( ! firebaseToken ) {
393+ if ( ! firebaseToken && ! process . env . GOOGLE_APPLICATION_CREDENTIALS ) {
394394 await firebaseTools . login ( ) ;
395395 const user = await firebaseTools . login ( { projectRoot : context . workspaceRoot } ) ;
396396 console . log ( `Logged into Firebase as ${ user . email } .` ) ;
397397 }
398398
399- if ( options . version && options . version >= 2 ) {
400- if ( lt ( firebaseTools . cli . version ( ) , '12.2.0' ) ) {
401- throw new SchematicsException ( 'firebase-tools version 12.2+ is required.' ) ;
402- }
403- process . env . FIREBASE_FRAMEWORK_BUILD_TARGET = ( prerenderBuildTarget || serverBuildTarget || staticBuildTarget ) . name ;
404- } else {
405- if ( prerenderBuildTarget ) {
406-
407- const run = await context . scheduleTarget (
408- targetFromTargetString ( prerenderBuildTarget . name ) ,
409- prerenderBuildTarget . options
410- ) ;
411- await run . result ;
399+ if ( ! firebaseToken && process . env . GOOGLE_APPLICATION_CREDENTIALS ) {
400+ await spawnAsync ( `gcloud auth activate-service-account --key-file ${ process . env . GOOGLE_APPLICATION_CREDENTIALS } ` ) ;
401+ console . log ( `Using Google Application Credentials.` ) ;
402+ }
412403
413- } else {
404+ if ( prerenderBuildTarget ) {
405+ const run = await context . scheduleTarget (
406+ targetFromTargetString ( prerenderBuildTarget . name ) ,
407+ prerenderBuildTarget . options
408+ ) ;
409+ await run . result ;
414410
415- if ( ! context . target ) {
416- throw new Error ( 'Cannot execute the build target' ) ;
417- }
411+ } else {
418412
419- context . logger . info ( `📦 Building "${ context . target . project } "` ) ;
413+ if ( ! context . target ) {
414+ throw new Error ( 'Cannot execute the build target' ) ;
415+ }
420416
421- const builders = [
422- context . scheduleTarget (
423- targetFromTargetString ( staticBuildTarget . name ) ,
424- staticBuildTarget . options
425- ) . then ( run => run . result )
426- ] ;
417+ context . logger . info ( `📦 Building "${ context . target . project } "` ) ;
427418
428- if ( serverBuildTarget ) {
429- builders . push ( context . scheduleTarget (
430- targetFromTargetString ( serverBuildTarget . name ) ,
431- serverBuildTarget . options
432- ) . then ( run => run . result ) ) ;
433- }
419+ const builders = [
420+ context . scheduleTarget (
421+ targetFromTargetString ( staticBuildTarget . name ) ,
422+ staticBuildTarget . options
423+ ) . then ( run => run . result )
424+ ] ;
434425
435- await Promise . all ( builders ) ;
426+ if ( serverBuildTarget ) {
427+ builders . push ( context . scheduleTarget (
428+ targetFromTargetString ( serverBuildTarget . name ) ,
429+ serverBuildTarget . options
430+ ) . then ( run => run . result ) ) ;
436431 }
432+
433+ await Promise . all ( builders ) ;
437434 }
438435
436+
439437 try {
440438 await firebaseTools . use ( firebaseProject , {
441439 project : firebaseProject ,
0 commit comments