@@ -88,7 +88,7 @@ const deployToHosting = async (
88
88
type : 'confirm' ,
89
89
name : 'deployProject' ,
90
90
message : 'Would you like to deploy your application to Firebase Hosting?'
91
- } ) ;
91
+ } ) as { deployProject : boolean } ;
92
92
93
93
if ( ! deployProject ) { return ; }
94
94
@@ -253,11 +253,11 @@ export const deployToFunction = async (
253
253
projectRoot : workspaceRoot ,
254
254
} ) ;
255
255
256
- const { deployProject} = await inquirer . prompt ( {
256
+ const { deployProject } = await inquirer . prompt ( {
257
257
type : 'confirm' ,
258
258
name : 'deployProject' ,
259
259
message : 'Would you like to deploy your application to Firebase Hosting & Cloud Functions?'
260
- } ) ;
260
+ } ) as { deployProject : boolean } ;
261
261
262
262
if ( ! deployProject ) { return ; }
263
263
}
@@ -390,52 +390,50 @@ export default async function deploy(
390
390
options : DeployBuilderOptions ,
391
391
firebaseToken ?: string ,
392
392
) {
393
- if ( ! firebaseToken ) {
393
+ if ( ! firebaseToken && ! process . env . GOOGLE_APPLICATION_CREDENTIALS ) {
394
394
await firebaseTools . login ( ) ;
395
395
const user = await firebaseTools . login ( { projectRoot : context . workspaceRoot } ) ;
396
396
console . log ( `Logged into Firebase as ${ user . email } .` ) ;
397
397
}
398
398
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
+ }
412
403
413
- } else {
404
+ if ( prerenderBuildTarget ) {
405
+ const run = await context . scheduleTarget (
406
+ targetFromTargetString ( prerenderBuildTarget . name ) ,
407
+ prerenderBuildTarget . options
408
+ ) ;
409
+ await run . result ;
414
410
415
- if ( ! context . target ) {
416
- throw new Error ( 'Cannot execute the build target' ) ;
417
- }
411
+ } else {
418
412
419
- context . logger . info ( `📦 Building "${ context . target . project } "` ) ;
413
+ if ( ! context . target ) {
414
+ throw new Error ( 'Cannot execute the build target' ) ;
415
+ }
420
416
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 } "` ) ;
427
418
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
+ ] ;
434
425
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 ) ) ;
436
431
}
432
+
433
+ await Promise . all ( builders ) ;
437
434
}
438
435
436
+
439
437
try {
440
438
await firebaseTools . use ( firebaseProject , {
441
439
project : firebaseProject ,
0 commit comments