forked from CodeJobs/StudioVictory
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Gruntfile.js
102 lines (99 loc) · 2.42 KB
/
Gruntfile.js
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
'use strict';
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-stylus');
grunt.loadNpmTasks('grunt-jscs');
grunt.loadNpmTasks('grunt-githooks');
grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-mocha-test');
grunt.loadNpmTasks('grunt-shell');
grunt.loadTasks('grunt');
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
jscs: {
options: {
config: '.jscsrc',
reporter: 'checkstyle'
},
src: [
'Gruntfile.js',
'src/**/*.js',
'!src/public/bower_components/**'
]
},
jshint: {
options: {
jshintrc: '.jshintrc',
reporter: 'checkstyle'
},
src: [
'Gruntfile.js',
'src/**/*.js',
'!src/public/bower_components/**'
]
},
githooks: {
all: {
options: {
endMarker: ''
},
'pre-commit': 'analyze',
'pre-push': 'test',
'post-checkout': 'shell:gitLog',
'post-commit': 'shell:gitLog',
'post-merge': 'shell:gitLog shell:npmInstall'
}
},
shell: {
gitLog: {
command: 'git log -1 > git-info.txt'
},
npmInstall: {
command: 'npm install'
},
vagrantLogs: {
command: 'vagrant ssh -c "cd /vagrant && pm2 logs"'
},
vagrantStatus: {
command: 'vagrant ssh -c "cd /vagrant && pm2 list"'
},
vagrantStop: {
command: 'vagrant ssh -c "cd /vagrant && pm2 kill"'
},
vagrantDelete: {
command: 'vagrant ssh -c "cd /vagrant && pm2 delete pm2.json"'
},
vagrantStart: {
command: 'vagrant ssh -c "cd /vagrant && pm2 start pm2.json"'
}
},
mochaTest: {
all: {
options: {
reporter: 'spec'
},
src: ['test/**/*Test.js', '!test/public/js/**/*Test.js']
}
},
karma: {
client: {
configFile: 'karma.conf.js'
}
},
stylus: {
compile: {
options: {
compress: true,
paths: ['source/stylus']
},
files: {
'src/public/css/stylus.css': 'src/stylus/style.styl'
}
}
}
});
// Code tasks
grunt.registerTask('default', ['test']);
grunt.registerTask('test', 'Runs unit tests', ['mochaTest', 'karma:client']);
grunt.registerTask('analyze', 'Validates code style', ['jshint', 'jscs']);
};