Skip to content

Commit

Permalink
Gulp Cleanup (#808)
Browse files Browse the repository at this point in the history
* Replace the deprecated gulp-util

The replacements came from https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5

* Fail fast when building iOS on non-mac machines

Adresses #750

* Macos also requires darwin

* s/preFlightValidation/validateBuildEnvironment

* Use a string template instead of array.join()

* Remove debugging log statement
  • Loading branch information
Jonathan Cohen committed Jun 18, 2020
1 parent 8a7d54c commit 5746652
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 197 deletions.
38 changes: 26 additions & 12 deletions gulpfile.js
Expand Up @@ -21,7 +21,9 @@ const child_process = require('child_process');
const generateRtlCss = require('./scripts/generate_rtl_css.js');
const gulp = require('gulp');
const gulpif = require('gulp-if');
const gutil = require('gulp-util');
const log = require('fancy-log');
const minimist = require('minimist');
const os = require('os');
const polymer_build = require('polymer-build');
const source = require('vinyl-source-stream');

Expand All @@ -32,9 +34,9 @@ const source = require('vinyl-source-stream');
//
//////////////////
//////////////////

const platform = gutil.env.platform || 'android';
const isRelease = gutil.env.release;
const args = minimist(process.argv, {boolean: true});
const platform = args.platform || 'android';
const isRelease = args.release;

//////////////////
//////////////////
Expand Down Expand Up @@ -161,12 +163,14 @@ function cordovaCompile() {
// Use flag -UseModernBuildSystem=0 as a workaround for Xcode 10 compatibility until upgrading to
// cordova-ios@5.0.0. See https://github.com/apache/cordova-ios/issues/404.
const compileArgs = platform === 'ios' ? '--device --buildFlag="-UseModernBuildSystem=0"' : '';
const releaseArgs = isRelease ? platform === 'android' ?
`--release -- --keystore=${gutil.env.KEYSTORE} ` +
`--storePassword=${gutil.env.STOREPASS} --alias=${gutil.env.KEYALIAS} ` +
`--password=${gutil.env.KEYPASS}` :
'--release' :
'';
let releaseArgs = '';
if (isRelease) {
releaseArgs = '--release';
if (platform === 'android') {
releaseArgs += ` -- --keystore=${args.KEYSTORE} --storePassword=${args.STOREPASS} --alias=${
args.KEYALIAS} --password=${args.KEYPASS}`;
}
}
return runCommand(`cordova compile ${platform} ${compileArgs} ${releaseArgs} -- ${platformArgs}`);
}

Expand All @@ -182,12 +186,22 @@ const setupCordova = gulp.series(cordovaPlatformAdd, cordovaPrepare, xcode);
//////////////////
//////////////////

function validateBuildEnvironment(cb) {
if (os.platform() !== 'darwin' && (platform === 'ios' || platform === 'macos')) {
log.error(
'\x1b[31m%s\x1b[0m', // Red text
'Building the ios client requires xcodebuild and can only be done on MacOS');
process.exit(1);
}
cb();
}

// Writes a JSON file accessible to environment.ts containing environment variables.
function writeEnvJson() {
// bash for Windows' (Cygwin's) benefit (sh can *not* run this script, at least on Alpine).
return runCommand(`bash scripts/environment_json.sh -p ${platform} ${isRelease ? '-r' : ''} > ${
WEBAPP_OUT}/environment.json`);
}

exports.build = gulp.series(setupWebApp, setupCordova, cordovaCompile);
exports.setup = gulp.series(setupWebApp, setupCordova);
exports.build = gulp.series(validateBuildEnvironment, setupWebApp, setupCordova, cordovaCompile);
exports.setup = gulp.series(validateBuildEnvironment, setupWebApp, setupCordova);
5 changes: 3 additions & 2 deletions package.json
Expand Up @@ -51,14 +51,15 @@
"electron": "^7.0.0",
"electron-builder": "^21.2.0",
"electron-icon-maker": "^0.0.4",
"fancy-log": "^1.3.3",
"gulp": "^4.0.0",
"gulp-babel": "^7.0.0",
"gulp-if": "^2.0.2",
"gulp-posthtml": "^3.0.4",
"gulp-replace": "^0.6.1",
"gulp-util": "^3.0.8",
"husky": "^1.3.1",
"jasmine": "^3.0.0",
"minimist": "^1.2.5",
"polymer-build": "^2.1.1",
"postcss-rtl": "^1.2.3",
"posthtml-postcss": "^0.2.6",
Expand Down Expand Up @@ -98,4 +99,4 @@
"trailingComma": "es5",
"printWidth": 120
}
}
}
4 changes: 2 additions & 2 deletions scripts/generate_rtl_css.js
Expand Up @@ -13,15 +13,15 @@
// limitations under the License.

const gulp = require('gulp');
const gutil = require('gulp-util');
const log = require('fancy-log');
const posthtml = require('gulp-posthtml');
const posthtmlcss = require('posthtml-postcss');
const rtl = require('postcss-rtl');
const replace = require('gulp-replace');

// Generates inline CSS RTL mirroring rules for Polymer components.
module.exports = function(src, dest) {
gutil.log('Generating RTL CSS');
log('Generating RTL CSS');
const plugins = [rtl()];
const options = {from: undefined, sync: true};
const filterType = /\/css$/;
Expand Down

0 comments on commit 5746652

Please sign in to comment.