WordPress.org

Make WordPress Core

Ticket #44600: 44600.diff

File 44600.diff, 2.5 KB (added by pento, 14 months ago)

Gruntfile precommit format job

  • Gruntfile.js

    diff --git a/Gruntfile.js b/Gruntfile.js
    index 0dc8b7fa50..6a27f1281e 100644
    a b module.exports = function(grunt) { 
    2525                        'wp-content/plugins/hello.php',
    2626                        'wp-content/plugins/akismet/**'
    2727                ],
    28                 cleanFiles = [];
     28                cleanFiles = [],
     29                changedFiles = {
     30                        php: [],
     31                };
    2932
    3033        buildFiles.forEach( function( buildFile ) {
    3134                cleanFiles.push( BUILD_DIR + buildFile );
    module.exports = function(grunt) { 
    12181221                        grunt.log.writeln( 'Cannot determine which files are modified as SVN and GIT are not available.' );
    12191222                        grunt.log.writeln( 'Running all tasks and all tests.' );
    12201223                        grunt.task.run([
     1224                                'format:php',
    12211225                                'precommit:js',
    12221226                                'precommit:css',
    12231227                                'precommit:image',
    module.exports = function(grunt) { 
    12701274                                                        grunt.log.writeln( 'twemoji.js has updated. Running `precommit:emoji.' );
    12711275                                                        taskList.push( 'precommit:emoji' );
    12721276                                                }
     1277
     1278                                                if ( testExtension( 'php' ) ) {
     1279                                                        grunt.log.writeln( 'PHP files modified. Code formatting will be run.' );
     1280                                                        var PHPfiles = result.stdout.split( "\n" );
     1281
     1282                                                        // Find .php files that have been modified or added.
     1283                                                        PHPfiles = PHPfiles.filter( function( file ) {
     1284                                                                return /^\s*[MA]\s*.*\.php$/.test( file );
     1285                                                        } );
     1286
     1287                                                        PHPfiles = PHPfiles.map( function( file ) {
     1288                                                                return file.replace( /^\s*[MA]\s*/, '' );
     1289                                                        } );
     1290
     1291                                                        changedFiles = {
     1292                                                                php: PHPfiles,
     1293                                                        };
     1294
     1295                                                        taskList.push( 'format:php' );
     1296                                                }
    12731297                                        }
    12741298
    12751299                                        grunt.task.run( taskList );
    module.exports = function(grunt) { 
    13401364        ] );
    13411365
    13421366        grunt.registerTask( 'prerelease', [
     1367                'format:php:error',
    13431368                'precommit:php',
    13441369                'precommit:js',
    13451370                'precommit:css',
    module.exports = function(grunt) { 
    13601385
    13611386        grunt.registerTask('test', 'Runs all QUnit and PHPUnit tasks.', ['qunit:compiled', 'phpunit']);
    13621387
     1388        grunt.registerTask( 'format:php', 'Runs the code formatter on changed files.', function() {
     1389                var done = this.async();
     1390                grunt.util.spawn( {
     1391                        cmd: 'composer',
     1392                        args: [ 'format', ...changedFiles.php ],
     1393                        opts: { stdio: 'inherit' }
     1394                }, function( error ) {
     1395                        if ( this.flags.error && error ) {
     1396                                done( false );
     1397                        } else {
     1398                                done( true );
     1399                        }
     1400                } );
     1401        } );
     1402
    13631403        // Travis CI tasks.
    13641404        grunt.registerTask('travis:js', 'Runs Javascript Travis CI tasks.', [ 'jshint:corejs', 'qunit:compiled' ]);
    13651405        grunt.registerTask('travis:phpunit', 'Runs PHPUnit Travis CI tasks.', [ 'build', 'phpunit' ]);