-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathGruntfile.js
116 lines (97 loc) · 2.39 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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
module.exports = function(grunt) {
'use strict';
const packageJson = grunt.file.readJSON("package.json");
const srcFiles = ["src/*.js"];
const specFiles = [
"spec/SpecHelper.js",
"spec/*Spec.js",
"!spec/SpecBundle.js"
];
const allFiles = srcFiles.concat(specFiles);
const browserifyOpts = {
browserifyOptions: {
debug: true,
watch: true,
paths: ["."]
}
};
const scpOpts = {
host: "arthaey.com",
username: grunt.option("release-username") || process.env["USER"]
};
const sshKeyPath = process.env["HOME"] + "/.ssh/id_dsa";
if (grunt.file.exists(sshKeyPath)) {
scpOpts["privateKey"] = grunt.file.read(sshKeyPath);
} else {
scpOpts["password"] = grunt.option("release-password");
}
grunt.initConfig({
pkg: packageJson,
browserify: {
dist: {
options: browserifyOpts,
files: {
"dist/src.js": srcFiles
}
},
test: {
options: browserifyOpts,
files: {
"spec/SpecBundle.js": specFiles
}
}
},
clean: [
"dist/",
"spec/coverage/",
"spec/SpecBundle.js"
],
karma: {
unit: {
configFile: "karma.conf.js"
}
},
coveralls: {
options: {
debug: true,
coverageDir: "spec/coverage",
force: true,
recursive: true
}
},
eslint: {
target: allFiles
},
nsp: {
package: packageJson
},
scp: {
options: scpOpts,
dist: {
files: [{
src: "src.js",
cwd: "dist",
dest: "www/arthaey.com/live/tech/programming/webwords",
}]
}
},
watch: {
files: allFiles,
tasks: ["build"]
}
});
grunt.loadNpmTasks("grunt-browserify");
grunt.loadNpmTasks("grunt-contrib-clean");
grunt.loadNpmTasks("grunt-contrib-watch");
grunt.loadNpmTasks("grunt-eslint");
grunt.loadNpmTasks("grunt-karma");
grunt.loadNpmTasks("grunt-karma-coveralls");
grunt.loadNpmTasks("grunt-nsp");
grunt.loadNpmTasks("@kyleramirez/grunt-scp");
grunt.registerTask("default", ["test", "build"]);
grunt.registerTask("build", ["browserify"]);
grunt.registerTask("build:test", ["browserify:test"]);
grunt.registerTask("dev", ["build", "watch"]);
grunt.registerTask("test", ["eslint", "build:test", "karma"]);
grunt.registerTask("release", ["clean", "build", "nsp", "scp"]);
}