Skip to content

Commit

Permalink
Testing and build changes
Browse files Browse the repository at this point in the history
- Use Headless Chrome instead of PhantomJS
- Reconfigure TravisCI
- Remove lodash and use native functions instead
- Remove redundant packages
- Start partial migration to npm scripts instead of Grunt
  • Loading branch information
kamilogorek committed Sep 7, 2017
1 parent b91df1f commit 4f57fd9
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 60 deletions.
10 changes: 8 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
sudo: false
language: node_js
node_js:
- "4"
- "8"
dist: trusty
addons:
chrome: stable
cache:
directories:
- node_modules
script:
- npm test
- npm test
63 changes: 14 additions & 49 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
'use strict';

module.exports = function(grunt) {
var _ = require('lodash');
var path = require('path');
var os = require('os');
var through = require('through2');
Expand All @@ -14,7 +13,7 @@ module.exports = function(grunt) {

var plugins = grunt.option('plugins');
// Create plugin paths and verify they exist
plugins = _.map(plugins ? plugins.split(',') : [], function(plugin) {
plugins = (plugins ? plugins.split(',') : []).map(function(plugin) {
var p = 'plugins/' + plugin + '.js';

if (!grunt.file.exists(p))
Expand Down Expand Up @@ -51,12 +50,12 @@ module.exports = function(grunt) {
}
};

var excluded = _.map(excludedPlugins, function(plugin) {
var excluded = excludedPlugins.map(function(plugin) {
return 'plugins/' + plugin + '.js';
});

// Remove the plugins that we don't want to build
a = _.filter(a, function(n) {
a = a.filter(function(n) {
return excluded.indexOf(n) === -1;
});

Expand Down Expand Up @@ -88,21 +87,17 @@ module.exports = function(grunt) {
});

var pluginCombinations = combine(plugins);
var pluginConcatFiles = _.reduce(
pluginCombinations,
function(dict, comb) {
var key = _.map(comb, function(plugin) {
return path.basename(plugin, '.js');
});
key.sort();
var pluginConcatFiles = pluginCombinations.reduce(function(dict, comb) {
var key = comb.map(function(plugin) {
return path.basename(plugin, '.js');
});
key.sort();

var dest = path.join('build/', key.join(','), '/raven.js');
dict[dest] = ['src/singleton.js'].concat(comb);
var dest = path.join('build/', key.join(','), '/raven.js');
dict[dest] = ['src/singleton.js'].concat(comb);

return dict;
},
{}
);
return dict;
}, {});

var browserifyConfig = {
options: {
Expand Down Expand Up @@ -202,30 +197,6 @@ module.exports = function(grunt) {
}
},

eslint: {
target: ['.']
},

mocha: {
options: {
mocha: {
ignoreLeaks: true,
grep: grunt.option('grep')
},
log: true,
reporter: 'Dot',
run: true
},
unit: {
src: ['test/index.html'],
nonull: true
},
integration: {
src: ['test/integration/index.html'],
nonull: true
}
},

release: {
options: {
npm: false,
Expand Down Expand Up @@ -338,12 +309,10 @@ module.exports = function(grunt) {

// 3rd party Grunt tasks
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-mocha');
grunt.loadNpmTasks('grunt-release');
grunt.loadNpmTasks('grunt-s3');
grunt.loadNpmTasks('grunt-gitinfo');
grunt.loadNpmTasks('grunt-sri');
grunt.loadNpmTasks('grunt-eslint');

// Build tasks
grunt.registerTask('_prep', ['clean', 'gitinfo', 'version']);
Expand All @@ -355,7 +324,7 @@ module.exports = function(grunt) {
'_prep',
'browserify:plugins-combined'
]);
grunt.registerTask('build.test', ['_prep', 'browserify:test']);
grunt.registerTask('build.test', ['_prep', 'browserify.core', 'browserify:test']);
grunt.registerTask('build.core', ['browserify.core', 'uglify', 'sri:dist']);
grunt.registerTask('build.plugins-combined', [
'browserify.plugins-combined',
Expand All @@ -366,13 +335,9 @@ module.exports = function(grunt) {
grunt.registerTask('build', ['build.plugins-combined']);
grunt.registerTask('dist', ['build.core', 'copy:dist']);

// Test task
grunt.registerTask('test', ['eslint', 'browserify.core', 'browserify:test', 'mocha']);

// Webserver tasks
grunt.registerTask('run:test', ['connect:test']);
grunt.registerTask('run:docs', ['connect:docs']);

grunt.registerTask('publish', ['test', 'build.plugins-combined', 's3']);
grunt.registerTask('default', ['test']);
grunt.registerTask('publish', ['build.plugins-combined', 's3']);
};
16 changes: 7 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@
"scripts": {
"lint": "eslint .",
"precommit": "lint-staged",
"pretest": "npm install",
"test": "grunt test && npm run-script test-typescript",
"test-typescript": "node_modules/typescript/bin/tsc --noEmit --noImplicitAny typescript/raven-tests.ts"
"publish": "npm run test && grunt publish",
"test": "npm run lint && grunt build.test && npm run test:unit && npm run test:integration && npm run test:typescript",
"test:unit": "mocha-chrome test/index.html",
"test:integration": "mocha-chrome test/integration/index.html --chrome-flags '[\"--disable-web-security\"]' --ignore-resource-errors --ignore-exceptions",
"test:typescript": "tsc --noEmit --noImplicitAny typescript/raven-tests.ts"
},
"devDependencies": {
"bluebird": "^3.4.1",
Expand All @@ -28,27 +30,23 @@
"chai": "2.3.0",
"derequire": "2.0.3",
"es6-promise": "^4.0.5",
"eslint": "^4.6.1",
"eslint-config-prettier": "^2.3.0",
"grunt": "^0.4.5",
"grunt-browserify": "^4.0.1",
"grunt-cli": "^0.1.13",
"grunt-contrib-clean": "^0.7.0",
"grunt-contrib-concat": "^0.5.1",
"grunt-contrib-connect": "^0.11.2",
"grunt-contrib-copy": "^0.8.2",
"grunt-contrib-jshint": "^0.11.3",
"grunt-contrib-uglify": "^0.11.0",
"grunt-eslint": "^20.0.0",
"grunt-gitinfo": "^0.1.7",
"grunt-mocha": "1.0.4",
"grunt-release": "^0.13.0",
"grunt-s3": "0.2.0-alpha.3",
"grunt-sri": "mattrobenolt/grunt-sri#pretty",
"husky": "^0.14.3",
"jquery": "^2.1.4",
"lint-staged": "^4.0.4",
"lodash": "^3.10.1",
"mocha": "2.5.3",
"mocha-chrome": "^0.2.1",
"prettier": "^1.6.1",
"proxyquireify": "^3.0.2",
"sinon": "1.7.3",
Expand Down

0 comments on commit 4f57fd9

Please sign in to comment.