forked from bergie/hallo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.coffee
136 lines (121 loc) · 3.2 KB
/
Gruntfile.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
module.exports = ->
banner = """/* Hallo <%= pkg.version %> - rich text editor for jQuery UI
* by Henri Bergius and contributors. Available under the MIT license.
* See http://hallojs.org for more information
*/"""
# Project configuration
@initConfig
pkg: @file.readJSON 'package.json'
# Install dependencies
'bower-install-simple':
deps:
options:
interactive: false
forceLatest: false
directory: 'bower_components'
# CoffeeScript complication
coffee:
core:
expand: true
src: ['**.coffee']
dest: 'tmp'
cwd: 'src'
ext: '.js'
toolbar:
expand: true
src: ['**.coffee']
dest: 'tmp/toolbar'
cwd: 'src/toolbar'
ext: '.js'
widgets:
expand: true
src: ['**.coffee']
dest: 'tmp/widgets'
cwd: 'src/widgets'
ext: '.js'
plugins:
expand: true
src: ['**.coffee']
dest: 'tmp/plugins'
cwd: 'src/plugins'
ext: '.js'
plugins_image:
expand: true
src: ['**.coffee']
dest: 'tmp/plugins/image'
cwd: 'src/plugins/image'
ext: '.js'
# Build setup: concatenate source files
concat:
options:
stripBanners: true
banner: banner
full:
src: [
'tmp/*.js'
'tmp/**/*.js'
'tmp/**/**/*.js'
]
dest: 'dist/hallo.js'
# Remove tmp directory once builds are complete
clean: ['tmp']
# JavaScript minification
uglify:
options:
banner: banner
report: 'min'
full:
files:
'dist/hallo-min.js': ['dist/hallo.js']
# Coding standards verification
coffeelint:
full: [
'src/*.coffee'
'src/**/*.coffee'
]
options:
'max_line_length':
'level': 'ignore'
# Unit tests
qunit:
all: ['test/*.html']
# Cross-browser testing
connect:
server:
options:
base: ''
port: 9999
'saucelabs-qunit':
all:
options:
urls: ['http://127.0.0.1:9999/test/index.html']
browsers: [
browserName: 'chrome'
,
browserName: 'safari'
platform: 'OS X 10.9'
version: '7'
]
build: process.env.TRAVIS_JOB_ID
testname: 'hallo.js cross-browser tests'
tunnelTimeout: 5
concurrency: 3
detailedError: true
# Dependency installation
@loadNpmTasks 'grunt-bower-install-simple'
# Build dependencies
@loadNpmTasks 'grunt-contrib-coffee'
@loadNpmTasks 'grunt-contrib-concat'
@loadNpmTasks 'grunt-contrib-clean'
@loadNpmTasks 'grunt-contrib-uglify'
# Testing dependencies
@loadNpmTasks 'grunt-coffeelint'
@loadNpmTasks 'grunt-contrib-jshint'
@loadNpmTasks 'grunt-contrib-qunit'
# Cross-browser testing
@loadNpmTasks 'grunt-contrib-connect'
@loadNpmTasks 'grunt-saucelabs'
# Local tasks
@registerTask 'build', ['bower-install-simple', 'coffee', 'concat', 'clean', 'uglify']
@registerTask 'test', ['coffeelint', 'build', 'qunit']
@registerTask 'crossbrowser', ['test', 'connect', 'saucelabs-qunit']