Skip to content

Commit

Permalink
Travis and build improvements
Browse files Browse the repository at this point in the history
1. Run non-webgl tests as part of travis using Electron.  They run in both
module and release form.

2. Run cloc as part of the build process

3. jsHint no longer fails the gulp task when you run `npm run jsHint`,
since that behavior was really annoying.  It still fails under travis or
when passed the `--failTaskOnError` option.

4. Improve log output by using travis folding commands. Each part of the
build is now collapsed into its own section.

5. Added `--suppressPassed` option to avoid showing passed tests in output.
Our travis log got too big and travis refused to show it (even with the
folding) unless you looked at raw test.
  • Loading branch information
mramato committed Mar 2, 2016
1 parent 2cf0e06 commit c322ecc
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 36 deletions.
25 changes: 23 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,28 @@
language: node_js
node_js:
- "0.12"
- '0.12'
sudo: false
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
script:
- npm run jsHint
- echo 'cloc' && echo -en 'travis_fold:start:script.cloc\\r'
- npm run cloc
- echo -en 'travis_fold:end:script.cloc\\r'

- echo 'jsHint' && echo -en 'travis_fold:start:script.jsHint\\r'
- npm run jsHint --failTaskOnError
- echo -en 'travis_fold:end:script.jsHint\\r'

- echo 'test non-webgl' && echo -en 'travis_fold:start:script.test\\r'
- npm run test -- --exclude WebGL --browsers Electron --failTaskOnError --suppressPassed
- echo -en 'travis_fold:end:script.test\\r'

- echo 'makeZipFile' && echo -en 'travis_fold:start:script.makeZipFile\\r'
- npm run clean
- npm run makeZipFile
- echo -en 'travis_fold:end:script.makeZipFile\\r'

- echo 'test non-webgl release' && echo -en 'travis_fold:start:script test.release\\r'
- npm run test -- --exclude WebGL --browsers Electron --failTaskOnError --release --suppressPassed
- echo -en 'travis_fold:end:script test.release\\r'
60 changes: 26 additions & 34 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -203,11 +203,15 @@ gulp.task('instrumentForCoverage', ['build'], function(done) {
});

gulp.task('jsHint', ['build'], function() {
return gulp.src(jsHintFiles)
var stream = gulp.src(jsHintFiles)
.pipe(jshint.extract('auto'))
.pipe(jshint())
.pipe(jshint.reporter('jshint-stylish'))
.pipe(jshint.reporter('fail'));
.pipe(jshint.reporter('jshint-stylish'));

if (yargs.argv.failTaskOnError) {
stream = stream.pipe(jshint.reporter('fail'));
}
return stream;
});

gulp.task('jsHint-watch', function() {
Expand Down Expand Up @@ -281,59 +285,47 @@ gulp.task('release', ['combine', 'minifyRelease', 'generateDocumentation']);
gulp.task('test', function(done) {
var argv = yargs.argv;

var enableAllBrowsers = false;
var includeCategory = '';
var excludeCategory = '';
var webglValidation = false;
var release = false;
var browsers;

if (argv.all) {
enableAllBrowsers = true;
}

if (argv.include) {
includeCategory = argv.include;
}

if (argv.exclude) {
excludeCategory = argv.exclude;
}

if (argv.webglValidation) {
webglValidation = true;
}

if (argv.release) {
release = true;
}
var enableAllBrowsers = argv.all ? true : false;
var includeCategory = argv.include ? argv.include : '';
var excludeCategory = argv.exclude ? argv.exclude : '';
var webglValidation = argv.webglValidation ? argv.webglValidation : false;
var release = argv.release ? argv.release : false;
var failTaskOnError = argv.failTaskOnError ? argv.failTaskOnError : false;
var suppressPassed = argv.suppressPassed ? argv.suppressPassed : false;

var browsers;
if (argv.browsers) {
browsers = argv.browsers.split(',');
}

var files = [
'Specs/karma-main.js',
{pattern: 'Source/**', included: false},
{pattern: 'Specs/**', included: false}
{pattern : 'Source/**', included : false},
{pattern : 'Specs/**', included : false}
];

if (release) {
files.push({pattern: 'Build/**', included: false});
files.push({pattern : 'Build/**', included : false});
}

karma.start({
configFile: karmaConfigFile,
browsers : browsers,
specReporter: {
suppressErrorSummary: false,
suppressFailed: false,
suppressPassed: suppressPassed,
suppressSkipped: true
},
detectBrowsers : {
enabled: enableAllBrowsers
},
files: files,
client: {
args: [includeCategory, excludeCategory, webglValidation, release]
}
}, function() {
return done();
}, function(e) {
return done(failTaskOnError ? e : undefined);
});
});

Expand Down

0 comments on commit c322ecc

Please sign in to comment.