Make WordPress Core


Ignore:
Timestamp:
03/26/2021 06:20:24 PM (5 years ago)
Author:
desrosj
Message:

Build/Test Tools: Backport GitHub Action and build improvements to the 5.4 branch.

This backports several build and test tool improvements to the 5.4 branch. Most notably, this includes:

  • The changes required to allow each workflow to be triggered by the workflow_dispatch event so that tests can be run on a schedule [50590].
  • The ability to run PHPUnit tests from src instead of build [50441-50443].
  • Splitting single site and multisite tests into parallel jobs [50379].
  • Split slow tests into separate, parallel jobs for PHP 5.6 [50444].
  • Better branch and path scoping for GitHub Action workflows when running on pull_request [50432,50479].
  • Several devDependency updates.

Merges [50267,50299,50379,50387,50413,50416,50432,50435-50436,50441-50444,50446,50473-50474,50476,50479,50485-50487,50545,50579,50590,50598] to the 5.4 branch.
See #50401, #51734, #51801, #51802, #52548, #52608, #52612, #52623, #52624, #52625, #52645, #52653, #52658, #52660, #52667.

Location:
branches/5.4
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/5.4

  • branches/5.4/tests/phpunit/tests/oembed/template.php

    r47198 r50604  
    2323
    2424                $this->assertQueryTrue( 'is_single', 'is_singular', 'is_embed' );
     25
     26                // `print_embed_scripts()` assumes `wp-includes/js/wp-embed-template.js` is present:
     27                self::touch( ABSPATH . WPINC . '/js/wp-embed-template.js' );
    2528
    2629                ob_start();
     
    291294
    292295        /**
     296         * Confirms that no ampersands exist in src/wp-includes/js/wp-embed.js.
     297         *
     298         * See also the `verify:wp-embed` Grunt task for verifying the built file.
     299         *
    293300         * @ticket 34698
    294301         */
     
    296303                $this->assertNotContains( '&', file_get_contents( ABSPATH . WPINC . '/js/wp-embed.js' ) );
    297304        }
    298 
    299         /**
    300          * @ticket 34698
    301          *
    302          * @depends test_js_no_ampersands
    303          *
    304          * The previous test confirms that no ampersands exist in src/wp-includes/js/wp-embed.js.
    305          * However, we must also confirm that UglifyJS does not add ampersands during its
    306          * optimizations (which we tweak to avoid, but indirectly -- understandably, there's
    307          * no "don't add ampersands to my JavaScript file" option).
    308          *
    309          * So this test checks for ampersands in build/wp-includes/js/wp-embed.min.js.
    310          * In many cases, this file will not exist; in those cases, we simply skip the test.
    311          *
    312          * So when would it be run? We have Travis CI run `npm run test` which then runs, in order,
    313          * `qunit:compiled` (which runs the build) and then `phpunit`. Thus, this test will at least be
    314          * run during continuous integration.
    315          *
    316          * However, we need to verify that `qunit:compiled` runs before `phpunit`. So this test also
    317          * does a cheap check for a registered Grunt task called `test` that contains both
    318          * `qunit:compiled` and `phpunit`, in that order.
    319          *
    320          * One final failsafe: The Gruntfile.js assertion takes place before checking for the existence
    321          * of wp-embed.min.js. If the Grunt tasks are significantly refactored later, it could indicate
    322          * that wp-embed.min.js doesn't exist anymore. We wouldn't want the test to silently become one
    323          * that is always skipped, and thus useless.
    324          */
    325         function test_js_no_ampersands_in_compiled() {
    326                 $gruntfile = file_get_contents( dirname( ABSPATH ) . '/Gruntfile.js' );
    327 
    328                 // Confirm this file *should* exist, otherwise this test will always be skipped.
    329                 $test = '/grunt.registerTask\(\s*\'test\',.*\'qunit:compiled\'.*\'phpunit\'/';
    330                 $this->assertTrue( (bool) preg_match( $test, $gruntfile ) );
    331 
    332                 $file = dirname( ABSPATH ) . '/build/' . WPINC . '/js/wp-embed.min.js';
    333                 if ( ! file_exists( $file ) ) {
    334                         return;
    335                 }
    336                 $this->assertNotContains( '&', file_get_contents( $file ) );
    337         }
    338 
    339305}
Note: See TracChangeset for help on using the changeset viewer.