diff --git a/.gitignore b/.gitignore index 4b30c3e5..7210ba6c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,5 @@ build/ release/ npm-debug.log +test-results.xml test_config.json diff --git a/circle.yml b/circle.yml index e3f1f86f..efe52f38 100644 --- a/circle.yml +++ b/circle.yml @@ -1,10 +1,11 @@ machine: node: version: 4.2.2 + services: + - docker dependencies: post: - - sudo service docker start - docker build -t $CIRCLE_USERNAME/em-builder docker - docker run --rm -it -v `pwd`:/home/xclient/electron-mattermost $CIRCLE_USERNAME/em-builder ./electron-mattermost/docker/package_in_docker.sh - mv release/electron-mattermost-win32-ia32 release/electron-mattermost-win32 @@ -16,6 +17,12 @@ dependencies: - tar zcvf $CIRCLE_ARTIFACTS/electron-mattermost-linux-ia32.tar.gz -C release electron-mattermost-linux-ia32 - tar zcvf $CIRCLE_ARTIFACTS/electron-mattermost-linux-x64.tar.gz -C release electron-mattermost-linux-x64 +test: + override: + - node_modules/.bin/mocha --reporter mocha-circleci-reporter + post: + - mv test-results.xml $CIRCLE_TEST_REPORTS/ + deployment: release: tag: /v[0-9]+(\.[0-9]+)*/ diff --git a/docker/package_in_docker.sh b/docker/package_in_docker.sh index 09c7b87e..1349b767 100755 --- a/docker/package_in_docker.sh +++ b/docker/package_in_docker.sh @@ -2,4 +2,4 @@ # This script should be executed in docker container. set -ex cd electron-mattermost -./node_modules/gulp/bin/gulp.js package:all +npm run package:all diff --git a/gulpfile.js b/gulpfile.js index a342c529..874a10a9 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -42,7 +42,7 @@ gulp.task('prettify:jsx', function() { plugins: ['esformatter-jsx'] })) .pipe(gulp.dest(app_root)); -}) +}); gulp.task('build', ['build:jsx']); @@ -57,13 +57,15 @@ gulp.task('build:jsx', function() { .pipe(gulp.dest('src/browser/build')); }); -gulp.task('serve', function() { +gulp.task('serve', ['build'], function() { var options = ['--livereload']; electron.start(options); - gulp.watch(sources, function() { - electron.broadcast('stop'); + gulp.watch(['src/**', '!src/browser/**', '!src/node_modules/**'], function() { electron.restart(options); }); + gulp.watch('src/browser/**/*.jsx', ['build:jsx']); + gulp.watch(['src/browser/**', '!src/browser/**/*.jsx'], electron.reload); + gulp.watch('gulpfile.js', process.exit); }); function makePackage(platform, arch, callback) { diff --git a/package.json b/package.json index 22d5b09d..95dc7350 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,18 @@ "author": "Yuya Ochiai", "license": "MIT", "scripts": { - "postinstall": "cd src && npm install", - "start": "gulp build && electron src", - "test": "gulp build && mocha" + "install": "cd src && npm install", + "postinstall": "npm run build", + "build": "gulp build", + "start": "electron src", + "serve": "gulp serve", + "test": "gulp build && mocha", + "package": "gulp package", + "package:windows": "gulp package:windows", + "package:osx": "gulp package:osx", + "package:linux": "gulp package:linux", + "package:all": "gulp package:all", + "prettify": "gulp prettify" }, "devDependencies": { "babel-preset-react": "^6.3.13", @@ -25,6 +34,7 @@ "gulp-esformatter": "^5.0.0", "gulp-jsbeautifier": "^1.0.1", "mocha": "^2.3.4", + "mocha-circleci-reporter": "0.0.1", "should": "^8.0.1", "webdriverio": "^3.3.0" } diff --git a/src/main.js b/src/main.js index 1dc0bbeb..7c3ad83f 100644 --- a/src/main.js +++ b/src/main.js @@ -16,8 +16,8 @@ var argv = require('yargs').argv; var client = null; if (argv.livereload) { client = require('electron-connect').client.create(); - client.on('stop', function() { - app.quit(); + client.on('reload', function() { + mainWindow.reload(); }); }