From e813fb4716e67f806119dff659aca152da238b08 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Wed, 2 Nov 2016 16:16:35 -0700 Subject: [PATCH] chore: fix firebase.json; check-deploy to active firebase project Remove project name from firebase.json, since that is deprecated. The `check-deploy` gulp task now checks that an active project is defined at the start of `check-deploy`. To set the active project use: `firebase use `. Fixes #2576 --- .firebaserc | 4 +- firebase.json | 149 +++++++++++++++++++++++++------------------------- gulpfile.js | 21 +++++-- 3 files changed, 95 insertions(+), 79 deletions(-) diff --git a/.firebaserc b/.firebaserc index 2ef123c5bd..77c09fb883 100644 --- a/.firebaserc +++ b/.firebaserc @@ -1,6 +1,8 @@ { "projects": { "live": "angular-io", - "ngdocsdev": "ngdocsdev" + "ngdocsdev": "ngdocsdev", + "kw-dev": "kw-angular-io", + "dev": "angular-io-dev" } } \ No newline at end of file diff --git a/firebase.json b/firebase.json index 90419f857a..3b5a956478 100644 --- a/firebase.json +++ b/firebase.json @@ -1,75 +1,76 @@ { - "firebase": "angular-io", - "public": "www", - "rewrites": [ - { - "source": "/docs/dart/latest/testing", - "destination":"/docs/dart/latest/guide/testing.html" - }, - { - "source": "/docs/dart/latest/tutorial", - "destination": "/docs/dart/latest/index.html" - }, - { - "source": "/docs/js/latest/testing", - "destination": "/docs/js/latest/guide/testing.html" - }, - { - "source": "/docs/js/latest/tutorial", - "destination": "/docs/js/latest/index.html" - }, - { - "source": "/docs/ts/latest/guide/setup.html", - "destination": "/docs/ts/latest/index.html" - }, - { - "source": "/docs/ts/latest/testing", - "destination": "/docs/ts/latest/guide/testing.html" - }, - { - "source": "/cheatsheet", - "destination": "/docs/ts/latest/guide/cheatsheet.html" - }, - { - "source": "/cheatsheet.json", - "destination": "/docs/ts/latest/guide/cheatsheet.json" - }, - { - "source": "/AngularCheatSheet_Letter.pdf", - "destination": "/docs/ts/latest/guide/AngularCheatSheet_Letter.pdf" - }, - { - "source": "/AngularCheatSheet_Poster.pdf", - "destination": "/docs/ts/latest/guide/AngularCheatSheet_Poster.pdf" - }, - { - "source": "/cardboard", - "destination": "/cardboard/index.html" - }, - { - "source": "/license", - "destination": "/license.txt" - }, - { - "source": "/events", - "destination": "/events.html" - }, - { - "source": "/survey", - "destination": "/survey.html" - }, - { - "source": "/dart", - "destination": "/docs/dart/latest/index.html" - }, - { - "source": "/styleguide", - "destination": "/docs/ts/latest/guide/style-guide.html" - } - ], - "ignore": [ - "firebase.json", - "**/.*", - "**/node_modules/**" - ] -} + "hosting": { + "public": "www", + "rewrites": [ + { + "source": "/docs/dart/latest/testing", + "destination": "/docs/dart/latest/guide/testing.html" + }, + { + "source": "/docs/dart/latest/tutorial", + "destination": "/docs/dart/latest/index.html" + }, + { + "source": "/docs/js/latest/testing", + "destination": "/docs/js/latest/guide/testing.html" + }, + { + "source": "/docs/js/latest/tutorial", + "destination": "/docs/js/latest/index.html" + }, + { + "source": "/docs/ts/latest/guide/setup.html", + "destination": "/docs/ts/latest/index.html" + }, + { + "source": "/docs/ts/latest/testing", + "destination": "/docs/ts/latest/guide/testing.html" + }, + { + "source": "/cheatsheet", + "destination": "/docs/ts/latest/guide/cheatsheet.html" + }, + { + "source": "/cheatsheet.json", + "destination": "/docs/ts/latest/guide/cheatsheet.json" + }, + { + "source": "/AngularCheatSheet_Letter.pdf", + "destination": "/docs/ts/latest/guide/AngularCheatSheet_Letter.pdf" + }, + { + "source": "/AngularCheatSheet_Poster.pdf", + "destination": "/docs/ts/latest/guide/AngularCheatSheet_Poster.pdf" + }, + { + "source": "/cardboard", + "destination": "/cardboard/index.html" + }, + { + "source": "/license", + "destination": "/license.txt" + }, + { + "source": "/events", + "destination": "/events.html" + }, + { + "source": "/survey", + "destination": "/survey.html" + }, + { + "source": "/dart", + "destination": "/docs/dart/latest/index.html" + }, + { + "source": "/styleguide", + "destination": "/docs/ts/latest/guide/style-guide.html" + } + ], + "ignore": [ + "firebase.json", + "**/.*", + "**/node_modules/**" + ] + } +} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index eb1b04cc7b..01f192a37f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -14,6 +14,7 @@ var fsExtra = require('fs-extra'); var fs = fsExtra; var exec = require('child_process').exec; var execPromise = Q.denodeify(exec); +var execSync = require('child_process').execSync; // cross platform version of spawn that also works on windows. var xSpawn = require('cross-spawn'); var prompt = require('prompt'); @@ -744,7 +745,7 @@ gulp.task('build-compile', ['build-docs'], function() { return harpCompile(); }); -gulp.task('check-deploy', ['build-docs'], function() { +gulp.task('check-deploy', ['firebase-use-proj-check', 'build-docs'], () => { return harpCompile().then(function() { gutil.log('compile ok'); gutil.log('running live server ...'); @@ -753,7 +754,7 @@ gulp.task('check-deploy', ['build-docs'], function() { }).then(function(shouldDeploy) { if (shouldDeploy) { gutil.log('deploying...'); - return execPromise('firebase deploy'); + return execPromise(`firebase deploy -p ${WWW}`); } else { return ['Not deploying']; } @@ -764,6 +765,17 @@ gulp.task('check-deploy', ['build-docs'], function() { }); }); +gulp.task('firebase-use-proj-check', cb => { + try { + execSync('firebase use'); + } catch (e) { + // Rerun command so user gets project + alias info + execSync('firebase use', {stdio:[0,1,2]}); + throw `\nAborting: no firebase project selected. Run:\n\n firebase use \n\n`; + } + return cb(); +}); + gulp.task('test-api-builder', function (cb) { execCommands(['npm run test-api-builder'], {}, cb); }); @@ -1071,7 +1083,6 @@ function backupApiHtmlFilesExist(folderName) { } function harpJsonSetJade2NgTo(v) { - const execSync = require('child_process').execSync; const harpJsonPath = path.join(ANGULAR_IO_PROJECT_PATH, 'harp.json'); execSync(`perl -pi -e 's/("jade2ng": *)\\w+/$1${v}/' ${harpJsonPath}`); const harpJson = require(harpJsonPath); @@ -1204,10 +1215,12 @@ function watchAndSync(options, cb) { // returns a promise; function askDeploy() { + // Show user what the currently active firebase project is: + execSync('firebase use', {stdio:[0,1,2]}); prompt.start(); var schema = { name: 'shouldDeploy', - description: 'Deploy to Firebase? (y/n)', + description: `Deploy ${WWW} to firebase? (y/n)`, type: 'string', pattern: /Y|N|y|n/, message: "Respond with either a 'y' or 'n'",