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 <project-or-alias-name>`.

Fixes #2576
This commit is contained in:
Patrice Chalin 2016-11-02 16:16:35 -07:00 committed by Kathy Walrath
parent 83faca0f94
commit e813fb4716
3 changed files with 95 additions and 79 deletions

View File

@ -1,6 +1,8 @@
{ {
"projects": { "projects": {
"live": "angular-io", "live": "angular-io",
"ngdocsdev": "ngdocsdev" "ngdocsdev": "ngdocsdev",
"kw-dev": "kw-angular-io",
"dev": "angular-io-dev"
} }
} }

View File

@ -1,75 +1,76 @@
{ {
"firebase": "angular-io", "hosting": {
"public": "www", "public": "www",
"rewrites": [ "rewrites": [
{ {
"source": "/docs/dart/latest/testing", "source": "/docs/dart/latest/testing",
"destination":"/docs/dart/latest/guide/testing.html" "destination": "/docs/dart/latest/guide/testing.html"
}, },
{ {
"source": "/docs/dart/latest/tutorial", "source": "/docs/dart/latest/tutorial",
"destination": "/docs/dart/latest/index.html" "destination": "/docs/dart/latest/index.html"
}, },
{ {
"source": "/docs/js/latest/testing", "source": "/docs/js/latest/testing",
"destination": "/docs/js/latest/guide/testing.html" "destination": "/docs/js/latest/guide/testing.html"
}, },
{ {
"source": "/docs/js/latest/tutorial", "source": "/docs/js/latest/tutorial",
"destination": "/docs/js/latest/index.html" "destination": "/docs/js/latest/index.html"
}, },
{ {
"source": "/docs/ts/latest/guide/setup.html", "source": "/docs/ts/latest/guide/setup.html",
"destination": "/docs/ts/latest/index.html" "destination": "/docs/ts/latest/index.html"
}, },
{ {
"source": "/docs/ts/latest/testing", "source": "/docs/ts/latest/testing",
"destination": "/docs/ts/latest/guide/testing.html" "destination": "/docs/ts/latest/guide/testing.html"
}, },
{ {
"source": "/cheatsheet", "source": "/cheatsheet",
"destination": "/docs/ts/latest/guide/cheatsheet.html" "destination": "/docs/ts/latest/guide/cheatsheet.html"
}, },
{ {
"source": "/cheatsheet.json", "source": "/cheatsheet.json",
"destination": "/docs/ts/latest/guide/cheatsheet.json" "destination": "/docs/ts/latest/guide/cheatsheet.json"
}, },
{ {
"source": "/AngularCheatSheet_Letter.pdf", "source": "/AngularCheatSheet_Letter.pdf",
"destination": "/docs/ts/latest/guide/AngularCheatSheet_Letter.pdf" "destination": "/docs/ts/latest/guide/AngularCheatSheet_Letter.pdf"
}, },
{ {
"source": "/AngularCheatSheet_Poster.pdf", "source": "/AngularCheatSheet_Poster.pdf",
"destination": "/docs/ts/latest/guide/AngularCheatSheet_Poster.pdf" "destination": "/docs/ts/latest/guide/AngularCheatSheet_Poster.pdf"
}, },
{ {
"source": "/cardboard", "source": "/cardboard",
"destination": "/cardboard/index.html" "destination": "/cardboard/index.html"
}, },
{ {
"source": "/license", "source": "/license",
"destination": "/license.txt" "destination": "/license.txt"
}, },
{ {
"source": "/events", "source": "/events",
"destination": "/events.html" "destination": "/events.html"
}, },
{ {
"source": "/survey", "source": "/survey",
"destination": "/survey.html" "destination": "/survey.html"
}, },
{ {
"source": "/dart", "source": "/dart",
"destination": "/docs/dart/latest/index.html" "destination": "/docs/dart/latest/index.html"
}, },
{ {
"source": "/styleguide", "source": "/styleguide",
"destination": "/docs/ts/latest/guide/style-guide.html" "destination": "/docs/ts/latest/guide/style-guide.html"
} }
], ],
"ignore": [ "ignore": [
"firebase.json", "firebase.json",
"**/.*", "**/.*",
"**/node_modules/**" "**/node_modules/**"
] ]
}
} }

View File

@ -14,6 +14,7 @@ var fsExtra = require('fs-extra');
var fs = fsExtra; var fs = fsExtra;
var exec = require('child_process').exec; var exec = require('child_process').exec;
var execPromise = Q.denodeify(exec); var execPromise = Q.denodeify(exec);
var execSync = require('child_process').execSync;
// cross platform version of spawn that also works on windows. // cross platform version of spawn that also works on windows.
var xSpawn = require('cross-spawn'); var xSpawn = require('cross-spawn');
var prompt = require('prompt'); var prompt = require('prompt');
@ -744,7 +745,7 @@ gulp.task('build-compile', ['build-docs'], function() {
return harpCompile(); return harpCompile();
}); });
gulp.task('check-deploy', ['build-docs'], function() { gulp.task('check-deploy', ['firebase-use-proj-check', 'build-docs'], () => {
return harpCompile().then(function() { return harpCompile().then(function() {
gutil.log('compile ok'); gutil.log('compile ok');
gutil.log('running live server ...'); gutil.log('running live server ...');
@ -753,7 +754,7 @@ gulp.task('check-deploy', ['build-docs'], function() {
}).then(function(shouldDeploy) { }).then(function(shouldDeploy) {
if (shouldDeploy) { if (shouldDeploy) {
gutil.log('deploying...'); gutil.log('deploying...');
return execPromise('firebase deploy'); return execPromise(`firebase deploy -p ${WWW}`);
} else { } else {
return ['Not deploying']; 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 <project-or-alias-name>\n\n`;
}
return cb();
});
gulp.task('test-api-builder', function (cb) { gulp.task('test-api-builder', function (cb) {
execCommands(['npm run test-api-builder'], {}, cb); execCommands(['npm run test-api-builder'], {}, cb);
}); });
@ -1071,7 +1083,6 @@ function backupApiHtmlFilesExist(folderName) {
} }
function harpJsonSetJade2NgTo(v) { function harpJsonSetJade2NgTo(v) {
const execSync = require('child_process').execSync;
const harpJsonPath = path.join(ANGULAR_IO_PROJECT_PATH, 'harp.json'); const harpJsonPath = path.join(ANGULAR_IO_PROJECT_PATH, 'harp.json');
execSync(`perl -pi -e 's/("jade2ng": *)\\w+/$1${v}/' ${harpJsonPath}`); execSync(`perl -pi -e 's/("jade2ng": *)\\w+/$1${v}/' ${harpJsonPath}`);
const harpJson = require(harpJsonPath); const harpJson = require(harpJsonPath);
@ -1204,10 +1215,12 @@ function watchAndSync(options, cb) {
// returns a promise; // returns a promise;
function askDeploy() { function askDeploy() {
// Show user what the currently active firebase project is:
execSync('firebase use', {stdio:[0,1,2]});
prompt.start(); prompt.start();
var schema = { var schema = {
name: 'shouldDeploy', name: 'shouldDeploy',
description: 'Deploy to Firebase? (y/n)', description: `Deploy ${WWW} to firebase? (y/n)`,
type: 'string', type: 'string',
pattern: /Y|N|y|n/, pattern: /Y|N|y|n/,
message: "Respond with either a 'y' or 'n'", message: "Respond with either a 'y' or 'n'",