Files
flipper/scripts/yarn-install.js
Daniel Büchele 696c73ebc1 fixing travis builds
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
2018-08-03 05:56:38 -07:00

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);
});