diff options
author | Timmy Willison <timmywil@users.noreply.github.com> | 2023-09-18 12:39:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 12:39:00 -0400 |
commit | 2bdecf8b7bd10864e5337a4e24e39476c78cf23a (patch) | |
tree | 4685fc5ca912e368c294a3949c7ef5b663fec980 /build/grunt-tasks | |
parent | f75daab09102a4dd5107deadb55d4a169f86254a (diff) | |
download | jquery-2bdecf8b7bd10864e5337a4e24e39476c78cf23a.tar.gz jquery-2bdecf8b7bd10864e5337a4e24e39476c78cf23a.zip |
Build: migrate most grunt tasks off of grunt
Updated tasks include:
- lint
- npmcopy
- build, minify, and process for distribution.
- new custom build command using yargs
- compare size of minified/gzip built files
- pretest scripts, including qunit-fixture, babel transpilation, and npmcopy
- node smoke tests
- promises aplus tests
- new watch task using `rollup.watch` directly
Also:
- upgraded husky and added the new lint command
- updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new
- Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556
- committed package-lock.json
- updated all test scripts to use the new build
- added an express test server that uses middleware-mockserver (this can be used to run tests without karma)
- build-all-variants is now build:all
Close gh-5318
Diffstat (limited to 'build/grunt-tasks')
-rw-r--r-- | build/grunt-tasks/testswarm.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/build/grunt-tasks/testswarm.js b/build/grunt-tasks/testswarm.js new file mode 100644 index 000000000..d2653e0e0 --- /dev/null +++ b/build/grunt-tasks/testswarm.js @@ -0,0 +1,62 @@ +"use strict"; + +module.exports = function( grunt ) { + grunt.registerTask( "testswarm", function( commit, configFile, projectName, browserSets, + timeout, testMode ) { + var jobName, config, tests, + testswarm = require( "testswarm" ), + runs = {}, + done = this.async(), + pull = /PR-(\d+)/.exec( commit ); + + projectName = projectName || "jquery"; + config = grunt.file.readJSON( configFile )[ projectName ]; + browserSets = browserSets || config.browserSets; + if ( browserSets[ 0 ] === "[" ) { + + // We got an array, parse it + browserSets = JSON.parse( browserSets ); + } + timeout = timeout || 1000 * 60 * 15; + tests = grunt.config( [ this.name, "tests" ] ); + + if ( pull ) { + jobName = "Pull <a href='https://github.com/jquery/jquery/pull/" + + pull[ 1 ] + "'>#" + pull[ 1 ] + "</a>"; + } else { + jobName = "Commit <a href='https://github.com/jquery/jquery/commit/" + + commit + "'>" + commit.substr( 0, 10 ) + "</a>"; + } + + if ( testMode === "basic" ) { + runs.basic = config.testUrl + commit + "/test/index.html?module=basic"; + } else { + tests.forEach( function( test ) { + runs[ test ] = config.testUrl + commit + "/test/index.html?module=" + test; + } ); + } + + testswarm.createClient( { + url: config.swarmUrl + } ) + .addReporter( testswarm.reporters.cli ) + .auth( { + id: config.authUsername, + token: config.authToken + } ) + .addjob( + { + name: jobName, + runs: runs, + runMax: config.runMax, + browserSets: browserSets, + timeout: timeout + }, function( err, passed ) { + if ( err ) { + grunt.log.error( err ); + } + done( passed ); + } + ); + } ); +}; |