From 696c73ebc19741e4e7d3e49044c0bd4aa5e2a1b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20B=C3=BCchele?= Date: Fri, 3 Aug 2018 05:49:41 -0700 Subject: [PATCH] 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 --- .travis.yml | 18 ++---------- package.json | 2 +- scripts/yarn-install.js | 62 +++++++++++++++-------------------------- 3 files changed, 26 insertions(+), 56 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4eb88f60e..fcbb7a998 100644 --- a/.travis.yml +++ b/.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 diff --git a/package.json b/package.json index b3cae0e03..93b84b3cc 100644 --- a/package.json +++ b/package.json @@ -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*", diff --git a/scripts/yarn-install.js b/scripts/yarn-install.js index b991966eb..1157e8128 100644 --- a/scripts/yarn-install.js +++ b/scripts/yarn-install.js @@ -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); + });