aboutsummaryrefslogtreecommitdiffstats
path: root/build/grunt-tasks
diff options
context:
space:
mode:
authorTimmy Willison <timmywil@users.noreply.github.com>2023-09-18 12:39:00 -0400
committerGitHub <noreply@github.com>2023-09-18 12:39:00 -0400
commit2bdecf8b7bd10864e5337a4e24e39476c78cf23a (patch)
tree4685fc5ca912e368c294a3949c7ef5b663fec980 /build/grunt-tasks
parentf75daab09102a4dd5107deadb55d4a169f86254a (diff)
downloadjquery-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.js62
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 );
+ }
+ );
+ } );
+};