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": {
"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",
"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/**"
]
}
}

View File

@ -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 <project-or-alias-name>\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'",