Jonas Kress (WMDE) has uploaded a new change for review. https://gerrit.wikimedia.org/r/294509
Change subject: [WIP] Introduce grunt deploy ...................................................................... [WIP] Introduce grunt deploy Change-Id: Icd62f69f06ea4cff9ecbc769905373fac2017a4e --- M Gruntfile.js M package.json 2 files changed, 161 insertions(+), 131 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/gui refs/changes/09/294509/1 diff --git a/Gruntfile.js b/Gruntfile.js index 8ee9c0c..259163a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,135 +1,159 @@ /* jshint node:true */ module.exports = function( grunt ) { 'use strict'; - grunt.loadNpmTasks( 'grunt-banana-checker' ); - grunt.loadNpmTasks( 'grunt-contrib-jshint' ); - grunt.loadNpmTasks( 'grunt-contrib-qunit' ); - grunt.loadNpmTasks( 'grunt-jsonlint' ); - grunt.loadNpmTasks( 'grunt-jscs' ); - grunt.loadNpmTasks( 'grunt-usemin' ); - grunt.loadNpmTasks( 'grunt-filerev' ); - grunt.loadNpmTasks( 'grunt-contrib-clean' ); - grunt.loadNpmTasks( 'grunt-contrib-concat' ); - grunt.loadNpmTasks( 'grunt-contrib-uglify' ); - grunt.loadNpmTasks( 'grunt-contrib-copy' ); - grunt.loadNpmTasks( 'grunt-contrib-cssmin' ); - + require( 'load-grunt-tasks' )( grunt ); var pkg = grunt.file.readJSON( 'package.json' ); + var dist = 'dist' - grunt.initConfig( { - pkg: pkg, - jshint: { - options: { - jshintrc: true - }, - all: [ - '**/*.js', '!dist/**' - ] - }, - jscs: { - src: '<%= jshint.all %>' - }, - jsonlint: { - all: [ - '**/*.json', '!node_modules/**', '!vendor/**', '!dist/**' - ] - }, - qunit: { - all: [ - 'wikibase/tests/*.html' - ] - }, - banana: { - all: 'i18n/' - }, - clean: { - release: [ - 'dist' - ] - }, - useminPrepare: { - html: ['index.html', 'embed.html'], - options: { - dest: 'dist' - } - }, - concat: {}, - uglify: {}, - copy: { - release: { - files: [ - {//bootstrap icons - expand: true, - flatten: true, - src: [ - '**/*.{eot,ttf,woff,woff2}' - ], - dest: 'dist/fonts/', - filter: 'isFile' - }, - {// uls images - expand: true, - flatten: true, - src: [ - '**/jquery.uls/images/*.{png,jpg,svg}' - ], - dest: 'dist/images/', - filter: 'isFile' - }, - {// leaflet fullscreen images - expand: true, - flatten: true, - src: [ - '**/leaflet-fullscreen/**/*.png' - ], - dest: 'dist/css/', - filter: 'isFile' - }, - { - expand: true, - cwd: './', - src: [ - 'i18n/**', 'vendor/jquery.uls/**', '*.html', 'logo.svg', - 'robots.txt' - ], - dest: 'dist' - } - ] - } - }, - cssmin: { - options: { - debug: true - } - }, - filerev: { - options: { - encoding: 'utf8', - algorithm: 'md5', - length: 20 - }, - release: { - files: [ - { - src: [ - 'dist/js/*.js', 'dist/css/*.css' + grunt + .initConfig( { + pkg: pkg, + + jshint: { + options: { + jshintrc: true + }, + all: [ + '**/*.js', '!dist/**' + ] + }, + jscs: { + src: '<%= jshint.all %>' + }, + jsonlint: { + all: [ + '**/*.json', '!node_modules/**', '!vendor/**', '!dist/**' + ] + }, + qunit: { + all: [ + 'wikibase/tests/*.html' + ] + }, + banana: { + all: 'i18n/' + }, + clean: { + release: [ + dist + ], + deploy: [ + dist + '/*', dist + "!.git/**" + ] + }, + useminPrepare: { + html: [ + 'index.html', 'embed.html' + ], + options: { + dest: dist + } + }, + concat: {}, + uglify: {}, + copy: { + release: { + files: [ + {// bootstrap icons + expand: true, + flatten: true, + src: [ + '**/*.{eot,ttf,woff,woff2}' + ], + dest: dist + '/fonts/', + filter: 'isFile' + }, + {// uls images + expand: true, + flatten: true, + src: [ + '**/jquery.uls/images/*.{png,jpg,svg}' + ], + dest: dist + '/images/', + filter: 'isFile' + }, + {// leaflet fullscreen images + expand: true, + flatten: true, + src: [ + '**/leaflet-fullscreen/**/*.png' + ], + dest: dist + '/css/', + filter: 'isFile' + }, + { + expand: true, + cwd: './', + src: [ + 'i18n/**', 'vendor/jquery.uls/**', '*.html', + 'logo.svg', 'robots.txt' + ], + dest: dist + } ] } - ] - } - }, - usemin: { - html: [ - 'dist/index.html', 'dist/embed.html' - ] - } - } ); + }, + cssmin: { + options: { + debug: true + } + }, + filerev: { + options: { + encoding: 'utf8', + algorithm: 'md5', + length: 20 + }, + release: { + files: [ + { + src: [ + dist + '/js/*.js', dist + '/css/*.css' + ] + } + ] + } + }, + usemin: { + html: [ + dist + '/index.html', dist + '/embed.html' + ] + }, + shell: { + update: { + command: [ + 'git remote update', 'git pull' + ].join( '&&' ) + }, + cloneDeploy: { + command: [ + 'git clone --branch <%= pkg.repository.deploy.branch %> --single-branch <%= pkg.repository.deploy.url %> ' + + dist + ].join( '&&' ) + }, + commitDeploy: { + command: [ + 'lastrev=$(git rev-parse HEAD)', + 'message=$(git log -1 --pretty=%B)', + 'newmessage=$(cat <<END\nMerging from $lastrev:\n\n$message\nEND\n)', + 'cd ' + dist, 'git add -A', 'git commit -m "$newmessage"', + 'echo "$newmessage"', 'git review' + ].join( '&&' ) + } + } + } ); grunt.registerTask( 'test', [ 'jshint', 'jscs', 'jsonlint', 'banana', 'qunit' ] ); grunt.registerTask( 'build', [ - 'clean', 'copy', 'useminPrepare', 'concat', 'cssmin', 'uglify', 'filerev', 'usemin' + 'clean', 'build_dist' + ] ); + grunt.registerTask( 'build_dist', [ + 'copy', 'useminPrepare', 'concat', 'cssmin', 'uglify', 'filerev', 'usemin' + ] ); + grunt.registerTask( 'deploy', [ + 'clean', 'shell:cloneDeploy', 'clean:deploy', 'build_dist', 'shell:commitDeploy' ] ); grunt.registerTask( 'default', 'test' ); }; diff --git a/package.json b/package.json index 70f84a0..3a71963 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,11 @@ }, "repository": { "type": "git", - "url": "https://gerrit.wikimedia.org/r/p/wikidata/query/gui.git" + "url": "https://gerrit.wikimedia.org/r/p/wikidata/query/gui.git", + "deploy": { + "url": "https://gerrit.wikimedia.org/r/wikidata/query/gui-deploy", + "branch": "production" + } }, "dependencies": { "jquery": "^1.12.0", @@ -29,21 +33,23 @@ }, "devDependencies": { "grunt": "0.4.5", + "grunt-banana-checker": "~0.5.0", "grunt-cli": "0.1.13", + "grunt-contrib-clean": "^1.0.0", + "grunt-contrib-concat": "^1.0.1", + "grunt-contrib-copy": "^1.0.0", + "grunt-contrib-cssmin": "^1.0.1", "grunt-contrib-jshint": "0.11.2", "grunt-contrib-qunit": ">=0.2.1", - "grunt-jscs": "2.1.0", + "grunt-contrib-uglify": "^1.0.1", + "grunt-filerev": "^2.3.1", + "grunt-jscs": "^2.1.0", "grunt-jsonlint": "1.0.4", - "sinon": "~1.17.3", + "grunt-shell": "^1.3.0", + "grunt-usemin": "^3.1.1", "karma-qunit": "0.1.9", + "load-grunt-tasks": "^3.5.0", "qunitjs": "1.23.1", - "grunt-banana-checker": "~0.5.0", - "grunt-contrib-copy": "", - "grunt-contrib-clean": "", - "grunt-usemin": "", - "grunt-filerev": "", - "grunt-contrib-concat": "", - "grunt-contrib-uglify": "", - "grunt-contrib-cssmin": "" + "sinon": "~1.17.3" } } -- To view, visit https://gerrit.wikimedia.org/r/294509 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Icd62f69f06ea4cff9ecbc769905373fac2017a4e Gerrit-PatchSet: 1 Gerrit-Project: wikidata/query/gui Gerrit-Branch: master Gerrit-Owner: Jonas Kress (WMDE) <jonas.kr...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits