Select Git revision
Gruntfile.js
Gruntfile.js 19.58 KiB
'use strict';
module.exports = function(grunt) {
const isTravis = Boolean(process.env.TRAVIS);
grunt.registerTask('default', [
'clean',
'bower',
'bower_concat',
'copy',
'uglify',
'cssmin'
]);
grunt.registerTask('auto_update_trans', 'Update translations on master and push to master & develop', function() {
if (!isTravis) {
grunt.fatal('This task is only for Travis-CI!');
return false;
}
grunt.log.writeln('Running grunt and updating translations...'.magenta);
grunt.task.run([
'exec:git:checkout:master',
'default', // Run default task
'update_trans', // Update translations
'exec:commit_changed_files:yes', // Determine what we need to commit if needed, stop if nothing to commit.
'exec:git:reset --hard', // Reset unstaged changes (to allow for a rebase)
'exec:git:checkout:develop', 'exec:git:rebase:master', // FF develop to the updated master
'exec:git_push:origin:master develop' // Push master and develop
]);
});
grunt.registerTask('update_trans', 'Update translations', function() {
grunt.log.writeln('Updating translations...'.magenta);
var tasks = [
'exec:babel_extract',
'exec:babel_update',
// + crowdin
'exec:babel_compile',
'po2json'
];
if (process.env.CROWDIN_API_KEY) {
tasks.splice(2, 0, 'exec:crowdin_upload', 'exec:crowdin_download'); // insert items at index 2
} else {
grunt.log.warn('Environment variable `CROWDIN_API_KEY` is not set, not syncing with Crowdin.'.bold);
}
grunt.task.run(tasks);
});
/****************************************
* Admin only tasks *
****************************************/
grunt.registerTask('publish', 'ADMIN: Create a new release tag and generate new CHANGES.md', [
'exec:test', // Run tests
'newrelease', // Pull and merge develop to master, create and push a new release
'genchanges' // Update CHANGES.md
]);
grunt.registerTask('newrelease', "Pull and merge develop to master, create and push a new release", [
'exec:git:checkout:develop', 'exec:git:pull', // Pull develop
'exec:git:checkout:master', 'exec:git:pull', // Pull master
'exec:git:merge:develop', // Merge develop into master
'exec:git_get_last_tag', 'exec:git_list_changes', // List changes from since last tag
'_get_next_tag', 'exec:git_tag_new', // Create new release tag
'exec:git_push:origin:master:tags', // Push master + tags
'exec:git:checkout:develop' // Go back to develop
]);
grunt.registerTask('genchanges', "Generate CHANGES.md file", function() {
var file = grunt.option('file'); // --file=path/to/sickrage.github.io/sickrage-news/CHANGES.md