Summary: - making website deployment and desktop app builds two different travis jobs, so if one fails, the other is still working - running website builds on linux, because, we don't need macOS for this - making dependency installs serial instead of parallel to avoid problems of multiple yarn instances running at the same time - removing duplicate postinstall script which breaks for electron 3 builds Reviewed By: passy Differential Revision: D9148342 fbshipit-source-id: 22f3a0fe59aff066c04fb964621604efc46aab8a
42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright 2018-present Facebook.
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
* @format
|
|
*/
|
|
|
|
const path = require('path');
|
|
const util = require('util');
|
|
const glob = util.promisify(require('glob'));
|
|
const exec = util.promisify(require('child_process').exec);
|
|
const PACKAGES = ['static', 'src/plugins/*', 'src/fb/plugins/*'];
|
|
const WINDOWS = /^win/.test(process.platform);
|
|
const YARN_PATH =
|
|
process.argv.length > 2
|
|
? path.join(__dirname, process.argv[2])
|
|
: 'yarn' + (WINDOWS ? '.cmd' : '');
|
|
|
|
Promise.all(
|
|
PACKAGES.map(pattern =>
|
|
glob(path.join(__dirname, '..', pattern, 'package.json')),
|
|
),
|
|
)
|
|
.then(async packages => {
|
|
for (const pkg of packages.reduce((acc, cv) => acc.concat(cv), [])) {
|
|
const {stderr} = await exec(YARN_PATH, {
|
|
cwd: pkg.replace('/package.json', ''),
|
|
});
|
|
if (stderr) {
|
|
console.warn(stderr);
|
|
} else {
|
|
console.log(`Installed dependencies for ${pkg}`);
|
|
}
|
|
}
|
|
})
|
|
// eslint-disable-next-line
|
|
.then(() => console.log('📦 Installed all plugin dependencies!'))
|
|
.catch(err => {
|
|
console.error('❌ Installing plugin dependencies failed.');
|
|
console.error(err);
|
|
});
|