Initial commit
This commit is contained in:
@@ -0,0 +1,215 @@
|
||||
|
||||
/**
|
||||
* Grunfile runner file for CartoDB.js
|
||||
* framework
|
||||
*
|
||||
*/
|
||||
module.exports = function(grunt) {
|
||||
|
||||
require('load-grunt-tasks')(grunt);
|
||||
require('time-grunt')(grunt);
|
||||
var semver = require('semver');
|
||||
|
||||
var pkg = grunt.file.readJSON('package.json');
|
||||
|
||||
if (!pkg.version || !semver.valid(pkg.version)) {
|
||||
grunt.fail.fatal('package.json version is not valid' , 1);
|
||||
}
|
||||
|
||||
var version = pkg.version.split('.');
|
||||
var VERSION_OBJ = {
|
||||
major: version[0],
|
||||
minor: version[0] + '.' + version[1],
|
||||
bugfixing: pkg.version
|
||||
}
|
||||
|
||||
var config = {
|
||||
dist: 'dist',
|
||||
app: 'www',
|
||||
version: {
|
||||
major: version[0],
|
||||
minor: version[0] + '.' + version[1],
|
||||
bugfixing: pkg.version
|
||||
},
|
||||
pkg: pkg
|
||||
};
|
||||
|
||||
grunt.initConfig({
|
||||
secrets: {},
|
||||
config: config,
|
||||
dist: 'dist',
|
||||
app: 'www',
|
||||
version: {
|
||||
major: version[0],
|
||||
minor: version[0] + '.' + version[1],
|
||||
bugfixing: pkg.version
|
||||
},
|
||||
pkg: pkg,
|
||||
gitinfo: {},
|
||||
s3: require('./grunt/tasks/s3').task(grunt, config),
|
||||
prompt: require('./grunt/tasks/prompt').task(grunt, config),
|
||||
replace: require('./grunt/tasks/replace').task(grunt, config),
|
||||
fastly: require('./grunt/tasks/fastly').task(grunt, config),
|
||||
watch: require('./grunt/tasks/watch').task(),
|
||||
connect: require('./grunt/tasks/connect').task(config),
|
||||
clean: require('./grunt/tasks/clean').task(),
|
||||
compass: require('./grunt/tasks/compass').task(),
|
||||
autoprefixer: require('./grunt/tasks/autoprefixer').task(),
|
||||
useminPrepare: require('./grunt/tasks/useminPrepare').task(),
|
||||
usemin: require('./grunt/tasks/usemin').task(),
|
||||
htmlmin: require('./grunt/tasks/htmlmin').task(),
|
||||
concat: require('./grunt/tasks/concat').task(grunt, config),
|
||||
uglify: require('./grunt/tasks/uglify').task(),
|
||||
cssmin: require('./grunt/tasks/cssmin').task(),
|
||||
imagemin: require('./grunt/tasks/imagemin').task(),
|
||||
svgmin: require('./grunt/tasks/svgmin').task(),
|
||||
copy: require('./grunt/tasks/copy').task(grunt, config),
|
||||
filerev: require('./grunt/tasks/filerev').task(),
|
||||
buildcontrol: require('./grunt/tasks/buildcontrol').task(),
|
||||
jshint: require('./grunt/tasks/jshint').task(),
|
||||
csslint: require('./grunt/tasks/csslint').task(),
|
||||
concurrent: require('./grunt/tasks/concurrent').task(),
|
||||
jasmine: require('./grunt/tasks/jasmine').task()
|
||||
});
|
||||
|
||||
|
||||
/* TASKS */
|
||||
|
||||
grunt.registerTask('serve', function (target) {
|
||||
if (target === 'dist') {
|
||||
return grunt.task.run(['build', 'connect:dist:keepalive']);
|
||||
}
|
||||
|
||||
grunt.task.run([
|
||||
'clean:server',
|
||||
'concurrent:server',
|
||||
'autoprefixer:server',
|
||||
'copy:stageStatic',
|
||||
'connect:livereload',
|
||||
'watch'
|
||||
]);
|
||||
});
|
||||
|
||||
grunt.registerTask('server', function (target) {
|
||||
grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.');
|
||||
grunt.task.run([target ? ('serve:' + target) : 'serve']);
|
||||
});
|
||||
|
||||
grunt.registerTask('check', [
|
||||
'clean:server',
|
||||
'compass:server',
|
||||
'jshint:all',
|
||||
'csslint:check'
|
||||
]);
|
||||
|
||||
grunt.registerTask('test', [ 'jasmine' ]);
|
||||
|
||||
grunt.registerTask('release', [
|
||||
'prompt:bump',
|
||||
'build'
|
||||
]);
|
||||
|
||||
grunt.registerTask('publish', function (target) {
|
||||
|
||||
if (!grunt.file.exists('secrets.json')) {
|
||||
grunt.fail.fatal('secrets.json file does not exist, copy secrets.example.json and rename it' , 1);
|
||||
}
|
||||
|
||||
// Read secrets
|
||||
grunt.config.set('secrets', grunt.file.readJSON('secrets.json'));
|
||||
|
||||
if (
|
||||
!grunt.config('secrets') ||
|
||||
!grunt.config('secrets').S3_KEY ||
|
||||
!grunt.config('secrets').S3_SECRET ||
|
||||
!grunt.config('secrets').S3_BUCKET
|
||||
) {
|
||||
grunt.fail.fatal('S3 keys not specified in secrets.json' , 1);
|
||||
}
|
||||
|
||||
grunt.task.run([
|
||||
'jasmine', // Don't comment this line unless you have a GOOD REASON
|
||||
's3'
|
||||
]);
|
||||
});
|
||||
|
||||
grunt.registerTask('set_current_version', function() {
|
||||
var version = pkg.version;
|
||||
var minor = version.split('.');
|
||||
minor.pop()
|
||||
minor = minor.join('.');
|
||||
var options = {
|
||||
version: version,
|
||||
minor: minor,
|
||||
increment: 'build',
|
||||
bugfixing: version
|
||||
};
|
||||
|
||||
// Check if version was set via prompt, and
|
||||
// use that version and not the package version
|
||||
var bump = grunt.config.get('bump');
|
||||
if (bump) {
|
||||
options = bump;
|
||||
options.bugfixing = bump.version;
|
||||
}
|
||||
|
||||
grunt.config.set('bump', options);
|
||||
});
|
||||
|
||||
grunt.registerTask('invalidate', function(){
|
||||
if (!grunt.file.exists('secrets.json')) {
|
||||
grunt.fail.fatal('secrets.json file does not exist, copy secrets.example.json and rename it' , 1);
|
||||
}
|
||||
|
||||
// Read secrets
|
||||
grunt.config.set('secrets', grunt.file.readJSON('secrets.json'));
|
||||
|
||||
if (!grunt.config('secrets') ||
|
||||
!grunt.config('secrets').FASTLY_API_KEY ||
|
||||
!grunt.config('secrets').FASTLY_CARTODB_SERVICE
|
||||
) {
|
||||
grunt.fail.fatal('Fastly keys not specified in secrets.json' , 1);
|
||||
}
|
||||
|
||||
grunt.task.run([
|
||||
'fastly'
|
||||
]);
|
||||
});
|
||||
|
||||
grunt.registerTask('pages', [ 'buildcontrol:pages' ]);
|
||||
|
||||
grunt.registerTask('build', [
|
||||
'dist_js',
|
||||
'useminPrepare',
|
||||
'cssmin',
|
||||
'imagemin',
|
||||
'svgmin',
|
||||
'filerev',
|
||||
'usemin',
|
||||
'htmlmin',
|
||||
'uglify'
|
||||
]);
|
||||
|
||||
grunt.registerTask('dist_js', [
|
||||
'set_current_version',
|
||||
'js'
|
||||
])
|
||||
|
||||
grunt.registerTask('js', [
|
||||
'replace',
|
||||
'gitinfo',
|
||||
'clean:dist',
|
||||
'concurrent:dist',
|
||||
'concat',
|
||||
'autoprefixer:dist'
|
||||
]);
|
||||
|
||||
grunt.registerTask('dist', [
|
||||
'set_current_version',
|
||||
'build'
|
||||
]);
|
||||
|
||||
grunt.registerTask('default', [
|
||||
'dist'
|
||||
]);
|
||||
}
|
||||
Reference in New Issue
Block a user