Add revision to build manifest
Summary: Package up the current repository's revision when building a release. This will then be used to write it into exported traces so we can find a compatible version when opening it up again. Reviewed By: danielbuechele Differential Revision: D14406684 fbshipit-source-id: 761a51e69adbcab1d541c2daa78c9827ea299e79
This commit is contained in:
committed by
Facebook Github Bot
parent
f2627dbc8b
commit
1b1d349dba
@@ -31,7 +31,15 @@ function generateManifest(versionNumber) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function modifyPackageManifest(buildFolder, versionNumber) {
|
// Asynchronously determine current mercurial revision as string or `null` in case of any error.
|
||||||
|
function genMercurialRevision() {
|
||||||
|
return cp
|
||||||
|
.spawn('hg', ['log', '-r', '.', '-T', '{node}'])
|
||||||
|
.catch(err => null)
|
||||||
|
.then(res => (res && res.stdout) || null);
|
||||||
|
}
|
||||||
|
|
||||||
|
function modifyPackageManifest(buildFolder, versionNumber, hgRevision) {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.log('Creating package.json manifest');
|
console.log('Creating package.json manifest');
|
||||||
const manifest = require('../package.json');
|
const manifest = require('../package.json');
|
||||||
@@ -43,6 +51,9 @@ function modifyPackageManifest(buildFolder, versionNumber) {
|
|||||||
manifest.dependencies = manifestStatic.dependencies;
|
manifest.dependencies = manifestStatic.dependencies;
|
||||||
manifest.main = 'index.js';
|
manifest.main = 'index.js';
|
||||||
manifest.version = versionNumber;
|
manifest.version = versionNumber;
|
||||||
|
if (hgRevision != null) {
|
||||||
|
manifest.revision = hgRevision;
|
||||||
|
}
|
||||||
fs.writeFileSync(
|
fs.writeFileSync(
|
||||||
path.join(buildFolder, 'package.json'),
|
path.join(buildFolder, 'package.json'),
|
||||||
JSON.stringify(manifest, null, ' '),
|
JSON.stringify(manifest, null, ' '),
|
||||||
@@ -116,7 +127,8 @@ function copyStaticFolder(buildFolder) {
|
|||||||
await compileDefaultPlugins(path.join(dir, 'defaultPlugins'));
|
await compileDefaultPlugins(path.join(dir, 'defaultPlugins'));
|
||||||
await compile(dir, path.join(__dirname, '..', 'src', 'init.js'));
|
await compile(dir, path.join(__dirname, '..', 'src', 'init.js'));
|
||||||
const versionNumber = getVersionNumber();
|
const versionNumber = getVersionNumber();
|
||||||
modifyPackageManifest(dir, versionNumber);
|
const hgRevision = await genMercurialRevision();
|
||||||
|
modifyPackageManifest(dir, versionNumber, hgRevision);
|
||||||
generateManifest(versionNumber);
|
generateManifest(versionNumber);
|
||||||
await buildDist(dir);
|
await buildDist(dir);
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
|
|||||||
Reference in New Issue
Block a user