'use strict'; /* globals module */ var out_app_engine_dir = 'out/app_engine'; var app_engine_path = 'temp/google-cloud-sdk/platform/google_appengine' // Check if running on travis, if so do not install in User due to using // pythonEnv. var isTravis = ('TRAVIS' in process.env && 'CI' in process.env) ? '' : '--user'; module.exports = function(grunt) { require('load-grunt-tasks')(grunt); // configure project grunt.initConfig({ // make node configurations available pkg: grunt.file.readJSON('package.json'), csslint: { options: { csslintrc: 'build/.csslintrc' }, strict: { options: { import: 2 }, src: ['src/**/*.css' ] }, lax: { options: { import: false }, src: ['src/**/*.css' ] } }, htmllint: { all: { src: [ 'src/**/*_template.html' ] } }, eslint: { options: { configFile: 'build/.eslintrc' }, target: ['src/**/*.js', '!src/**/enums.js', '!src/**/adapter.js' ] }, shell: { pipInstall : { command: ['pip install', isTravis, '--requirement requirements.txt'] .join(' ') }, ensureGcloudSDKIsInstalled: { command: 'python build/ensure_gcloud_sdk_is_installed.py' }, runPythonTests: { command: ['python', 'build/run_python_tests.py', app_engine_path, out_app_engine_dir].join(' ') }, buildAppEnginePackage: { command: ['python', './build/build_app_engine_package.py', 'src', out_app_engine_dir].join(' ') }, buildAppEnginePackageWithTests: { command: ['python', './build/build_app_engine_package.py', 'src', out_app_engine_dir, '--include-tests'].join(' ') }, removePythonTestsFromOutAppEngineDir: { command: ['python', './build/remove_python_tests.py', out_app_engine_dir].join(' ') }, genJsEnums: { command: ['python', './build/gen_js_enums.py', 'src', 'src/web_app/js'].join(' ') }, copyAdapter: { command: ['python', './build/copy_portable.py', 'node_modules/webrtc-adapter/out/adapter.js', 'src/web_app/js/adapter.js'].join(' ') }, copyJsFiles: { command: ['python', './build/copy_js_files.py', 'src/web_app/js', out_app_engine_dir + '/js'].join(' ') }, runUnitTests: { command: 'bash ./build/start-tests.sh' }, }, karma: { unit: { configFile: 'karma.conf.js' } } }); // Set default tasks to run when grunt is called without parameters. grunt.registerTask('default', ['runLinting', 'runPythonTests', 'build', 'runUnitTests']); grunt.registerTask('runLinting', ['csslint', 'eslint']); grunt.registerTask('runPythonTests', ['shell:pipInstall', 'shell:ensureGcloudSDKIsInstalled', 'shell:buildAppEnginePackageWithTests', 'shell:runPythonTests', 'shell:removePythonTestsFromOutAppEngineDir']); grunt.registerTask('runUnitTests', [ 'shell:genJsEnums', 'shell:copyAdapter', 'shell:runUnitTests']), grunt.registerTask('build', ['shell:buildAppEnginePackage', 'shell:genJsEnums', 'shell:copyAdapter', 'shell:copyJsFiles']); };