aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/Gruntfile.coffee
diff options
context:
space:
mode:
authorStas Vilchik <vilchiks@gmail.com>2015-10-02 15:51:15 +0200
committerStas Vilchik <vilchiks@gmail.com>2015-10-14 10:28:59 +0200
commit15b2160babc5c35ede960b7d0e133acbec8c6c51 (patch)
tree6475ad0602bbe4d6dae895aae43d331726ab8c33 /server/sonar-web/Gruntfile.coffee
parente51e9c9eb0145ea5e9d40453554c456585b79936 (diff)
downloadsonarqube-15b2160babc5c35ede960b7d0e133acbec8c6c51.tar.gz
sonarqube-15b2160babc5c35ede960b7d0e133acbec8c6c51.zip
improve the web build system, introduce gulp and browserify
Diffstat (limited to 'server/sonar-web/Gruntfile.coffee')
-rw-r--r--server/sonar-web/Gruntfile.coffee383
1 files changed, 0 insertions, 383 deletions
diff --git a/server/sonar-web/Gruntfile.coffee b/server/sonar-web/Gruntfile.coffee
deleted file mode 100644
index 2c60d3da7f7..00000000000
--- a/server/sonar-web/Gruntfile.coffee
+++ /dev/null
@@ -1,383 +0,0 @@
-module.exports = (grunt) ->
- require('jit-grunt')(grunt, {
- unzip: 'grunt-zip'
- replace: 'grunt-text-replace'
- });
- require('time-grunt')(grunt);
-
- useBrowserStack = !!process.env['BROWSERSTACK_USERNAME'] && !!process.env['BROWSERSTACK_ACCESS_KEY']
- expressPort = '<%= grunt.option("port") || 3000 %>'
- internPort = '<%= grunt.option("internPort") || 9100 %>'
-
- grunt.initConfig
- pkg: grunt.file.readJSON('package.json')
-
- SOURCE_PATH: './src/main'
- ASSETS_PATH: grunt.option("assetsDir") || './src/main/webapp'
- BUILD_PATH: './build'
-
- less:
- build:
- options:
- cleancss: true
- files:
- '<%= BUILD_PATH %>/css/sonar.css': [
- '<%= SOURCE_PATH %>/less/jquery-ui.less'
- '<%= SOURCE_PATH %>/less/select2.less'
- '<%= SOURCE_PATH %>/less/select2-sonar.less'
-
- '<%= SOURCE_PATH %>/less/init.less'
- '<%= SOURCE_PATH %>/less/components.less'
- '<%= SOURCE_PATH %>/less/pages.less'
-
- '<%= SOURCE_PATH %>/less/style.less'
-
- '<%= SOURCE_PATH %>/less/*.less'
- ]
-
-
- babel:
- build:
- options:
- modules: 'amd'
- files: [
- expand: true
- cwd: '<%= SOURCE_PATH %>/js'
- src: [
- '**/*.jsx'
- '**/api/**/*.js'
- '**/apps/**/*.js'
- '**/components/**/*.js'
- ]
- dest: '<%= BUILD_PATH %>/js'
- ext: '.js'
- ]
-
-
- concat:
- build:
- files:
- '<%= BUILD_PATH %>/js/sonar.js': [
- '<%= BUILD_PATH %>/js/libs/translate.js'
- '<%= BUILD_PATH %>/js/libs/third-party/jquery.js'
- '<%= BUILD_PATH %>/js/libs/third-party/jquery-ui.js'
- '<%= BUILD_PATH %>/js/libs/third-party/d3.js'
- '<%= BUILD_PATH %>/js/libs/third-party/latinize.js'
- '<%= BUILD_PATH %>/js/libs/third-party/underscore.js'
- '<%= BUILD_PATH %>/js/libs/third-party/backbone.js'
- '<%= BUILD_PATH %>/js/libs/third-party/backbone-super.js'
- '<%= BUILD_PATH %>/js/libs/third-party/backbone.marionette.js'
- '<%= BUILD_PATH %>/js/libs/third-party/handlebars.js'
- '<%= BUILD_PATH %>/js/libs/third-party/select2.js'
- '<%= BUILD_PATH %>/js/libs/third-party/keymaster.js'
- '<%= BUILD_PATH %>/js/libs/third-party/moment.js'
- '<%= BUILD_PATH %>/js/libs/third-party/numeral.js'
- '<%= BUILD_PATH %>/js/libs/third-party/numeral-languages.js'
- '<%= BUILD_PATH %>/js/libs/third-party/bootstrap/tooltip.js'
- '<%= BUILD_PATH %>/js/libs/third-party/bootstrap/dropdown.js'
- '<%= BUILD_PATH %>/js/libs/third-party/md5.js'
- '<%= BUILD_PATH %>/js/libs/select2-jquery-ui-fix.js'
-
- '<%= BUILD_PATH %>/js/libs/widgets/base.js'
- '<%= BUILD_PATH %>/js/libs/widgets/widget.js'
- '<%= BUILD_PATH %>/js/libs/widgets/bubble-chart.js'
- '<%= BUILD_PATH %>/js/libs/widgets/timeline.js'
- '<%= BUILD_PATH %>/js/libs/widgets/stack-area.js'
- '<%= BUILD_PATH %>/js/libs/widgets/pie-chart.js'
- '<%= BUILD_PATH %>/js/libs/widgets/histogram.js'
- '<%= BUILD_PATH %>/js/libs/widgets/word-cloud.js'
- '<%= BUILD_PATH %>/js/libs/widgets/tag-cloud.js'
- '<%= BUILD_PATH %>/js/libs/widgets/treemap.js'
-
- '<%= BUILD_PATH %>/js/libs/graphics/pie-chart.js'
- '<%= BUILD_PATH %>/js/libs/graphics/barchart.js'
- '<%= BUILD_PATH %>/js/libs/sortable.js'
-
- '<%= BUILD_PATH %>/js/libs/inputs.js'
- '<%= BUILD_PATH %>/js/libs/dialogs.js'
- '<%= BUILD_PATH %>/js/libs/processes.js'
- '<%= BUILD_PATH %>/js/libs/jquery-isolated-scroll.js'
- '<%= BUILD_PATH %>/js/libs/handlebars-extensions.js'
-
- '<%= BUILD_PATH %>/js/libs/application.js'
- '<%= BUILD_PATH %>/js/libs/csv.js'
- '<%= BUILD_PATH %>/js/libs/dashboard.js'
- '<%= BUILD_PATH %>/js/libs/recent-history.js'
- '<%= BUILD_PATH %>/js/libs/third-party/require.js'
- ]
-
-
- requirejs:
- options:
- baseUrl: '<%= BUILD_PATH %>/js/'
- preserveLicenseComments: false
- paths:
- 'react': 'libs/third-party/react.min'
- 'underscore': 'libs/third-party/shim/underscore-shim'
- 'jquery': 'libs/third-party/shim/jquery-shim'
- 'backbone': 'libs/third-party/shim/backbone-shim'
- 'backbone.marionette': 'libs/third-party/shim/marionette-shim'
- 'moment': 'libs/third-party/shim/moment-shim'
-
- issuesContext: options:
- name: 'apps/issues/app-context'
- out: '<%= ASSETS_PATH %>/js/apps/issues/app-context.js'
-
- selectList: options:
- name: 'components/common/select-list'
- out: '<%= ASSETS_PATH %>/js/components/common/select-list.js'
-
- app: options:
- name: 'apps/<%= grunt.option("app") %>/app'
- out: '<%= ASSETS_PATH %>/js/apps/<%= grunt.option("app") %>/app.js'
-
- widget: options:
- name: 'widgets/<%= grunt.option("widget") %>/widget'
- out: '<%= ASSETS_PATH %>/js/widgets/<%= grunt.option("widget") %>/widget.js'
-
-
- concurrent:
- build:
- tasks: [
- 'uglify:build'
- # apps
- 'build-app:account'
- 'build-app:api-documentation'
- 'build-app:background-tasks'
- 'build-app:coding-rules'
- 'build-app:custom-measures'
- 'build-app:drilldown'
- 'build-app:global-permissions'
- 'build-app:groups'
- 'build-app:issues'
- 'build-app:maintenance'
- 'build-app:markdown'
- 'build-app:measures'
- 'build-app:metrics'
- 'build-app:nav'
- 'build-app:permission-templates'
- 'build-app:projects'
- 'build-app:project-permissions'
- 'build-app:quality-gates'
- 'build-app:quality-profiles'
- 'build-app:source-viewer'
- 'build-app:system'
- 'build-app:users'
- 'build-app:update-center'
- # widgets
- 'build-widget:issue-filter'
- # other
- 'requirejs:issuesContext'
- 'requirejs:selectList'
- ]
-
-
- handlebars:
- options:
- namespace: 'Templates'
- processName: (name) ->
- pieces = name.split '/'
- fileName = pieces[pieces.length - 1]
- fileName.split('.')[0]
- processPartialName: (name) ->
- pieces = name.split '/'
- fileName = pieces[pieces.length - 1]
- fileName.split('.')[0]
- build:
- files:
- '<%= BUILD_PATH %>/js/components/navigator/templates.js': [
- '<%= SOURCE_PATH %>/js/components/navigator/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/coding-rules/templates.js': [
- '<%= SOURCE_PATH %>/js/components/common/templates/**/*.hbs'
- '<%= SOURCE_PATH %>/js/apps/coding-rules/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/quality-gates/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/quality-gates/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/quality-profiles/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/quality-profiles/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/components/source-viewer/templates.js': [
- '<%= SOURCE_PATH %>/js/components/source-viewer/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/components/issue/templates.js': [
- '<%= SOURCE_PATH %>/js/components/common/templates/**/*.hbs'
- '<%= SOURCE_PATH %>/js/components/issue/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/issues/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/issues/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/api-documentation/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/api-documentation/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/nav/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/nav/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/widgets/issue-filter/templates.js': [
- '<%= SOURCE_PATH %>/js/widgets/issue-filter/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/components/workspace/templates.js': [
- '<%= SOURCE_PATH %>/js/components/workspace/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/markdown/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/markdown/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/users/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/users/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/groups/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/groups/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/metrics/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/metrics/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/maintenance/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/maintenance/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/account/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/account/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/update-center/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/update-center/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/custom-measures/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/custom-measures/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/global-permissions/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/global-permissions/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/project-permissions/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/project-permissions/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/permission-templates/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/permission-templates/templates/**/*.hbs'
- ]
- '<%= BUILD_PATH %>/js/apps/projects/templates.js': [
- '<%= SOURCE_PATH %>/js/apps/projects/templates/**/*.hbs'
- ]
-
-
- clean:
- options:
- force: true
- css: ['<%= ASSETS_PATH %>/css']
- js: ['<%= ASSETS_PATH %>/js']
- build: ['<%= BUILD_PATH %>']
-
-
- copy:
- js:
- expand: true, cwd: '<%= SOURCE_PATH %>/js', src: ['**/*.js'], dest: '<%= BUILD_PATH %>/js'
- 'assets-js':
- src: '<%= BUILD_PATH %>/js/sonar.js', dest: '<%= ASSETS_PATH %>/js/sonar.js'
- 'assets-all-js':
- expand: true, cwd: '<%= BUILD_PATH %>/js', src: ['**/*.js'], dest: '<%= ASSETS_PATH %>/js'
- 'assets-css':
- src: '<%= BUILD_PATH %>/css/sonar.css', dest: '<%= ASSETS_PATH %>/css/sonar.css'
-
-
- uglify:
- build:
- src: '<%= ASSETS_PATH %>/js/sonar.js'
- dest: '<%= ASSETS_PATH %>/js/sonar.js'
-
-
- replace:
- lcov:
- src: 'target/web-tests/lcov.info'
- dest: 'target/web-tests/lcov.info'
- replacements: [
- { from: '/build/', to: '/src/main/' }
- ]
-
-
- rename:
- lcov:
- src: 'lcov.info'
- dest: 'target/web-tests/lcov.info'
-
-
- intern:
- test:
- options:
- runType: 'runner'
- config: 'test/intern'
- proxyPort: expressPort
- proxyUrl: 'http://localhost:' + expressPort + '/'
- useBrowserStack: useBrowserStack
-
-
- watch:
- options:
- spawn: false
-
- less:
- files: '<%= SOURCE_PATH %>/less/**/*.less'
- tasks: ['less:build', 'copy:assets-css']
-
- js:
- files: ['<%= SOURCE_PATH %>/js/**/*.js', '<%= SOURCE_PATH %>/js/**/*.jsx']
- tasks: ['copy:js', 'babel:build', 'concat:build', 'copy:assets-all-js']
-
- handlebars:
- files: '<%= SOURCE_PATH %>/**/*.hbs'
- tasks: ['handlebars:build', 'copy:assets-all-js']
-
-
- # Basic tasks
- grunt.registerTask 'prepare',
- ['clean:css', 'clean:js', 'clean:build', 'less:build', 'handlebars:build', 'copy:js', 'babel:build', 'concat:build']
-
- grunt.registerTask 'build-fast-suffix',
- ['copy:assets-css', 'copy:assets-all-js']
-
- grunt.registerTask 'build-suffix',
- ['copy:assets-css', 'copy:assets-js', 'concurrent:build']
-
- grunt.registerTask 'test-suffix',
- ['intern:test', 'rename:lcov', 'replace:lcov']
-
- grunt.registerTask 'coverage-suffix',
- ['test-suffix']
-
- grunt.registerTask 'build-app', (app) ->
- grunt.option 'app', app
- grunt.task.run 'requirejs:app'
-
- grunt.registerTask 'build-widget', (widget) ->
- grunt.option 'widget', widget
- grunt.task.run 'requirejs:widget'
-
- # Output tasks
- grunt.registerTask 'build-fast',
- ['prepare', 'build-fast-suffix']
-
- grunt.registerTask 'build',
- ['prepare', 'build-suffix']
-
- grunt.registerTask 'build-test',
- ['prepare', 'build-suffix', 'test-suffix']
-
- grunt.registerTask 'build-coverage',
- ['prepare', 'build-suffix', 'coverage-suffix']
-
- grunt.registerTask 'test',
- ['prepare', 'test-suffix']
-
- grunt.registerTask 'coverage',
- ['prepare', 'coverage-suffix']
-
- grunt.registerTask 'default',
- ['build']
-
- # Development
- grunt.registerTask 'dw',
- ['build-fast', 'watch']
-
- # tasks used by Maven build (see pom.xml)
- grunt.registerTask 'maven-quick-build',
- ['build-fast']
-
- grunt.registerTask 'maven-build',
- ['build']