Skip to content
Snippets Groups Projects
Select Git revision
  • teachers-ies
  • homologa protected
  • development protected
  • instruction_level_fix2
  • enrollment_rate
  • master default protected
  • hotfix-enrollment-aggregate
  • instruction_level_fixes
  • docentes-ies-ente-federativo
  • receita-potencial
  • #974-receita-potencial
  • db-conn
  • years-of-study-mean
  • new-indicators
  • issue_935
  • instruction_number
  • issue_958
  • issue_953
  • issues_indicadores_agregados
  • courseAggregate
  • v1.16.0
  • v1.15.1
  • v1.14.2
  • v1.14.1
  • v1.14.0
  • v1.14
  • v1.9.0
  • v1.8.3
  • v1.8.2
  • v1.8.1
  • v1.8.0
  • v1.7.0
  • v1.6.1
  • v1.6.0
  • v1.5.0
  • v1.4.2
  • v1.4.1
  • v1.4.0
  • v1.3.3
  • v1.3.2
40 results

gulpfile.babel.js

Blame
  • gulpfile.babel.js 2.52 KiB
    require('babel-core/register');
    
    const gulp = require('gulp');
    
    const babel = require('gulp-babel');
    
    const eslint = require('gulp-eslint');
    
    const mocha = require('gulp-mocha');
    
    const istanbul = require('gulp-istanbul');
    
    const nodemon = require('gulp-nodemon');
    
    const Cache = require('gulp-file-cache');
    
    const docco = require('gulp-docco');
    
    const mkdirp = require('mkdirp');
    
    const cache = new Cache();
    
    function createLogDir() {
        const logDirPath = 'build/logs';
        mkdirp(logDirPath, (err) => {
            if(err) console.error(err);
        });
    }
    
    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(gulp.dest('build'));  // move compiled files to build directory
    });
    
    gulp.task('build', ['compile'], () => {
        var filesToCopy = [ 'config.json', 'package.json', '.eslintignore', '.eslintrc.json' ];
        // copy configuration file to build directory
        gulp.src(filesToCopy)
        .pipe(gulp.dest('build'));
    
        createLogDir();
    });
    
    gulp.task('docco', () => {
        gulp.src('./src/**/*.js')
            .pipe(docco())
            .pipe(gulp.dest('./docs'));
    });
    
    gulp.task('doc', ['docco']);
    
    gulp.task('pre-test', () => {
        return gulp.src(['build/**/*.js', '!build/{test,test/**}'])
            .pipe(istanbul())
            .pipe(istanbul.hookRequire());
    });
    
    gulp.task('test', ['pre-test'], () => {
        process.chdir('build');
        gulp.src(['test/**/*.js'], {read: false})
        .pipe(mocha({timeout: 60000}))
        .pipe(istanbul.writeReports())
        .pipe(istanbul.enforceThresholds({
            thresholds: {
                global: {
                    statements: 80,
                    branches: 70,
                    lines: 80,
                    functions: 80
                }
            }
        }))
        .on('error', () => {
            process.exit(1);
        })
        .on('end', () => {
            process.exit();
        });
    });
    
    gulp.task('watch', () => {
        console.log('Watching source directory for changes');
        return gulp.watch('src/**/*.js').on('change', () => {
            console.log('Recompiling source');
            gulp.start('compile');
            console.log('Source recompilation done');
        });
    });
    
    gulp.task('default', () => {
        console.log("Não execuatar apenas gulp, execute da forma:");
        console.log("\t\tgulp <task>");
    });