From a061894e4374763330e28379f011435294909a60 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Thu, 29 Sep 2016 09:59:29 -0300 Subject: [PATCH 01/11] Fixed gulp test rule: chdir to build to test Related: simcaq/SCRUM#68 --- gulpfile.babel.js | 43 ++++++++++++++++++++++--------------------- src/test/test.js | 4 +++- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 986652cc..beb0e25f 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -29,25 +29,25 @@ function createLogDir() { } /** - * Compile source files - */ +* Compile source files +*/ gulp.task('compile', () => { createLogDir(); // run ESLint gulp.src('src/**/*.js') - .pipe(eslint()) - .pipe(eslint.format()); + .pipe(eslint()) + .pipe(eslint.format()); // compile source to ES5 gulp.src('src/**/*.js') - .pipe(cache.filter()) // cache source files - .pipe(babel()) // compile only modified files - .pipe(cache.cache()) // cache compiled files - .pipe(gulp.dest('build')); // move compiled files to build directory + .pipe(cache.filter()) // cache source files + .pipe(babel()) // compile only modified files + .pipe(cache.cache()) // cache compiled files + .pipe(gulp.dest('build')); // move compiled files to build directory // copy configuration file to build directory gulp.src('config.json') - .pipe(gulp.dest('build')); + .pipe(gulp.dest('build')); }); gulp.task('build', ['compile']); @@ -55,17 +55,18 @@ gulp.task('build', ['compile']); gulp.task('doc', (cb) => { let config = require('./jsdoc.json'); gulp.src(['README.md', './src/**/*.js'], {read: false}) - .pipe(jsdoc(config, cb)); + .pipe(jsdoc(config, cb)); }); gulp.task('test', ['build'], () => { - gulp.src('test/test.js', {read: false}) + process.chdir('build'); + gulp.src('test/test.js', {read: false}) .pipe(mocha()) .once('error', () => { - process.exit(1); + process.exit(1); }) .once('end', () => { - process.exit(); + process.exit(); }); }); @@ -79,14 +80,14 @@ gulp.task('watch', ['compile'], () => { }); gulp.task('run', () => { - process.chdir('build'); - nodemon({ - script: 'server.js', - tasks: ['watch'], - ignore: ["test/test.js", "gulpfile.babel.js"], - ext: 'js html json', - env: { 'NODE_ENV': 'development' } - }); + process.chdir('build'); + nodemon({ + script: 'server.js', + tasks: ['watch'], + ignore: ["test/test.js", "gulpfile.babel.js"], + ext: 'js html json', + env: { 'NODE_ENV': 'development' } + }); }); gulp.task('default', ['run']); diff --git a/src/test/test.js b/src/test/test.js index e6bdd1fd..f06f837e 100644 --- a/src/test/test.js +++ b/src/test/test.js @@ -12,7 +12,9 @@ const expect = chai.expect; const should = chai.should(); // actually call the function -const server = require('../libs/app'); +const libs = `${process.cwd()}/libs`; + +const server = require(`${libs}/app`); chai.use(chaiHttp); -- GitLab From e6e1d06911749db969a8871fcd55cccc201278ad Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Thu, 29 Sep 2016 10:16:42 -0300 Subject: [PATCH 02/11] Fixed error in gulp task test Closes: simcaq/SCRUM#68 --- .gitlab-ci.yml | 1 + gulpfile.babel.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b3949c4f..f76c7b37 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ before_script: run_tests: stage: test script: + - gulp build - gulp test tags: - node diff --git a/gulpfile.babel.js b/gulpfile.babel.js index beb0e25f..9f3ea07e 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -58,7 +58,7 @@ gulp.task('doc', (cb) => { .pipe(jsdoc(config, cb)); }); -gulp.task('test', ['build'], () => { +gulp.task('test', () => { process.chdir('build'); gulp.src('test/test.js', {read: false}) .pipe(mocha()) -- GitLab From 0df7b0417bc3dfbf70f2e47e1baa2b6d130225f7 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Thu, 29 Sep 2016 11:04:20 -0300 Subject: [PATCH 03/11] Add mkdirp to fix creating logs directory --- gulpfile.babel.js | 27 ++++++++++++++------------- package.json | 4 +++- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index 9f3ea07e..5073c55a 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -14,40 +14,41 @@ const Cache = require('gulp-file-cache'); const jsdoc = require('gulp-jsdoc3'); +const mkdirp = require('mkdirp'); + const cache = new Cache(); function createLogDir() { const logDirPath = 'build/logs'; - fs.access(logDirPath, fs.F_OK, (err) => { - if (err) { - console.info(`Logs directory not found, creating it.`); - fs.mkdir(logDirPath, 0o700, (dirErr) => { - console.error(`Failed to create logs directory.\n\tError: ${dirErr}`); - }); - } + mkdirp(logDirPath, (err) => { + if(err) console.error(err); }); } -/** -* Compile source files -*/ -gulp.task('compile', () => { - createLogDir(); +gulp.task('lint', () => { // run ESLint gulp.src('src/**/*.js') .pipe(eslint()) .pipe(eslint.format()); +}) + +/** +* Compile source files +*/ +gulp.task('compile', ['lint'], () => { // compile source to ES5 gulp.src('src/**/*.js') .pipe(cache.filter()) // cache source files .pipe(babel()) // compile only modified files - .pipe(cache.cache()) // cache compiled files + // .pipe(cache.cache()) // cache compiled files .pipe(gulp.dest('build')); // move compiled files to build directory // copy configuration file to build directory gulp.src('config.json') .pipe(gulp.dest('build')); + + createLogDir(); }); gulp.task('build', ['compile']); diff --git a/package.json b/package.json index 87652e4a..2249eef5 100644 --- a/package.json +++ b/package.json @@ -50,12 +50,14 @@ "gulp-cli": "^1.2.2", "gulp-eslint": "^3.0.1", "gulp-file-cache": "0.0.1", + "gulp-function": "^1.3.6", "gulp-jsdoc3": "^0.3.0", "gulp-mocha": "^3.0.1", "gulp-nodemon": "^2.1.0", "gulp-plumber": "^1.1.0", "gulp-rename": "^1.2.2", "gulp-uglify": "^2.0.0", - "jsdoc": "^3.4.1" + "jsdoc": "^3.4.1", + "mkdirp": "^0.5.1" } } -- GitLab From b9efdcc2af801031f405180609bcbdf8baab4e26 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:20:58 -0300 Subject: [PATCH 04/11] Add more dependencies to npm install --global --- .gitlab-ci.yml | 5 ++++- README.md | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f76c7b37..7f7f2cca 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,7 +2,7 @@ stages: - test before_script: - - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha + - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint - npm install run_tests: @@ -12,3 +12,6 @@ run_tests: - gulp test tags: - node + cache: + paths: + - node_modules/ diff --git a/README.md b/README.md index 12530fa1..38e66ae5 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ Previous versions of Node.js do not support ECMAScript6, it is recommended to us 4) Install babel and gulp globally -> npm install -g gulp gulp-cli babel babel-cli babel-core babel-register mocha +> npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint 5) Install project dependencies -- GitLab From c78181b417b0d3f0e3c564ccc103e89f18f95002 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:25:50 -0300 Subject: [PATCH 05/11] Add cd and mocha commands to CI file --- .gitlab-ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 7f7f2cca..5f3d3cc7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -9,7 +9,8 @@ run_tests: stage: test script: - gulp build - - gulp test + - cd build/ + - mocha tags: - node cache: -- GitLab From 03a709c7c55abbbba975304b5529436a3cb580b1 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:29:07 -0300 Subject: [PATCH 06/11] Add config.json to CI file --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5f3d3cc7..b00b0860 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ before_script: run_tests: stage: test script: + - mv config.json.example config.json - gulp build - cd build/ - mocha -- GitLab From 9d7f83e2d92f9a72c8fd139bbc5be58e4d95f4e9 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:37:04 -0300 Subject: [PATCH 07/11] Add monog_uri and mongo service do CI --- .gitlab-ci.yml | 8 ++++++++ src/libs/app.js | 2 -- src/libs/db/mongoose.js | 2 +- src/server.js | 2 ++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b00b0860..72057c13 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,13 @@ stages: - test +services: + - mongo:latest + +variables: + MONGO_URI: 'mongodb://mongo/app_name' + NODE_ENV: 'test' + before_script: - npm install --global gulp gulp-cli babel babel-cli babel-core babel-register mocha gulp-mocha gulp-eslint - npm install @@ -8,6 +15,7 @@ before_script: run_tests: stage: test script: + - ping -W1 -c1 mongo - mv config.json.example config.json - gulp build - cd build/ diff --git a/src/libs/app.js b/src/libs/app.js index b0390720..68a814f8 100644 --- a/src/libs/app.js +++ b/src/libs/app.js @@ -20,8 +20,6 @@ const mongoose = require(`${libs}/db/mongoose`); const db = mongoose(); -process.env.NODE_ENV = process.env.NODE_ENV || 'development'; - app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); diff --git a/src/libs/db/mongoose.js b/src/libs/db/mongoose.js index 13b3950d..948ca833 100644 --- a/src/libs/db/mongoose.js +++ b/src/libs/db/mongoose.js @@ -7,7 +7,7 @@ const log = require(`${libs}/log`)(module); const mongoose = require('mongoose'); module.exports = () => { - const mongoUri = config.get('mongodb:uri'); + const mongoUri = process.env.MONGO_URI || config.get('mongodb:uri'); log.debug(`Connecting to MongDB on URI ${mongoUri}`); const db = mongoose.connect(mongoUri); diff --git a/src/server.js b/src/server.js index 4dde9b8e..ea465734 100644 --- a/src/server.js +++ b/src/server.js @@ -8,6 +8,8 @@ const log = require(`${libs}/log`)(module); const app = require(`${libs}/app`); +process.env.NODE_ENV = process.env.NODE_ENV || 'development'; + app.set('port', process.env.PORT || config.get('port') || 3000); app.set('ip', process.env.IP || config.get('ip') || '127.0.0.1'); -- GitLab From 6bc1f0dd558e29ee94aee8600ad1a253cf4e97b5 Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:43:38 -0300 Subject: [PATCH 08/11] Add sed that enables debug --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 72057c13..5d174a0f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,6 +17,7 @@ run_tests: script: - ping -W1 -c1 mongo - mv config.json.example config.json + - sed -i -e 's/"debug" : false/"debug" : true/g' config.json - gulp build - cd build/ - mocha -- GitLab From 35395901afa175bbad99016ecac9ec6bab0d0e3b Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:49:00 -0300 Subject: [PATCH 09/11] Fix sed in CI file --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5d174a0f..23c45f10 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -17,7 +17,7 @@ run_tests: script: - ping -W1 -c1 mongo - mv config.json.example config.json - - sed -i -e 's/"debug" : false/"debug" : true/g' config.json + - sed -i -e 's/false/true/g' config.json - gulp build - cd build/ - mocha -- GitLab From ca57500abff9bd90744c3713491c18e5128dc5db Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 11:53:28 -0300 Subject: [PATCH 10/11] Change debug log level --- src/libs/log.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libs/log.js b/src/libs/log.js index ee975b8d..fbe7b139 100644 --- a/src/libs/log.js +++ b/src/libs/log.js @@ -38,7 +38,7 @@ function logger(module) { }), new winston.transports.Console({ name: 'debug-log', - level: 'debug', + level: (process.env.NODE_ENV === 'development') ? 'debug' : 'error', label: getFilePath(module), handleException: true, json: false, -- GitLab From 1963365b10799e5b2cdbcb037ac8093ae7468f7c Mon Sep 17 00:00:00 2001 From: Vytor Calixto <vytorcalixto@gmail.com> Date: Mon, 3 Oct 2016 12:00:31 -0300 Subject: [PATCH 11/11] Fix typo in gulpfile --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index bbd47eee..10fd314a 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -61,7 +61,7 @@ gulp.task('docco', () => { gulp.task('doc', ['docco']); -ulp.task('test', () => { +gulp.task('test', () => { process.chdir('build'); gulp.src('test/test.js', {read: false}) .pipe(mocha()) -- GitLab