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
This commit is contained in:
committed by
Facebook Github Bot
parent
092484e255
commit
696c73ebc1
18
.travis.yml
18
.travis.yml
@@ -4,19 +4,13 @@ osx_image: xcode9.4
|
||||
matrix:
|
||||
include:
|
||||
- language: node_js
|
||||
os: linux
|
||||
node_js:
|
||||
- "8"
|
||||
|
||||
install:
|
||||
- yarn
|
||||
- cd website
|
||||
- yarn
|
||||
- cd ..
|
||||
- "10"
|
||||
|
||||
script:
|
||||
- yarn lint
|
||||
- yarn build --mac --version=$TRAVIS_BUILD_NUMBER
|
||||
- cd website
|
||||
- yarn
|
||||
- yarn build
|
||||
- cd ..
|
||||
|
||||
@@ -35,16 +29,10 @@ matrix:
|
||||
|
||||
install:
|
||||
- yarn
|
||||
- cd website
|
||||
- yarn
|
||||
- cd ..
|
||||
|
||||
script:
|
||||
- yarn lint
|
||||
- yarn build --mac --version=$TRAVIS_BUILD_NUMBER
|
||||
- cd website
|
||||
- yarn build
|
||||
- cd ..
|
||||
|
||||
- language: objective-c
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
"yargs": "^11.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"postinstall": "node node_modules/electron/install.js && node scripts/yarn-install.js",
|
||||
"postinstall": "node scripts/yarn-install.js",
|
||||
"rm-dist": "rm -rf dist",
|
||||
"rm-modules": "rm -rf node_modules static/node_modules",
|
||||
"rm-temp": "rm -rf $TMPDIR/jest* $TMPDIR/react-native-packager*",
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
* @format
|
||||
*/
|
||||
|
||||
const glob = require('glob');
|
||||
const path = require('path');
|
||||
const {exec} = require('child_process');
|
||||
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 =
|
||||
@@ -16,44 +17,25 @@ const YARN_PATH =
|
||||
: 'yarn' + (WINDOWS ? '.cmd' : '');
|
||||
|
||||
Promise.all(
|
||||
PACKAGES.map(
|
||||
pattern =>
|
||||
new Promise((resolve, reject) => {
|
||||
glob(
|
||||
path.join(__dirname, '..', pattern, 'package.json'),
|
||||
(err, matches) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(matches);
|
||||
}
|
||||
},
|
||||
);
|
||||
}),
|
||||
PACKAGES.map(pattern =>
|
||||
glob(path.join(__dirname, '..', pattern, 'package.json')),
|
||||
),
|
||||
)
|
||||
.then(packages =>
|
||||
Promise.all(
|
||||
packages.reduce((acc, cv) => acc.concat(cv), []).map(
|
||||
pkg =>
|
||||
new Promise((resolve, reject) => {
|
||||
const cwd = pkg.replace('/package.json', '');
|
||||
exec(
|
||||
YARN_PATH,
|
||||
{
|
||||
cwd,
|
||||
},
|
||||
(err, stderr, stdout) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(0);
|
||||
}
|
||||
},
|
||||
);
|
||||
}),
|
||||
),
|
||||
),
|
||||
)
|
||||
.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 dependencies!'));
|
||||
.then(() => console.log('📦 Installed all plugin dependencies!'))
|
||||
.catch(err => {
|
||||
console.error('❌ Installing plugin dependencies failed.');
|
||||
console.error(err);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user