mirror of
https://github.com/jquery/jquery.git
synced 2024-11-23 02:54:22 +00:00
2646a8b07f
*Authors* - Checking and updating authors has been migrated to a custom script in the repo *Changelog* - changelogplease is no longer maintained - generate changelog in markdown for GitHub releases - generate changelog in HTML for blog posts - generate contributors list in HTML for blog posts *dist* - clone dist repo, copy files, and commit/push - commit tag with dist files on main branch; remove dist files from main branch after release *cdn* - clone cdn repo, copy files, and commit/push - create versioned and unversioned copies in cdn/ - generate md5 sums and archives for Google and MSFT *build* - implement reproducible builds and verify release builds * uses the last modified date for the latest commit * See https://reproducible-builds.org/ - the verify workflow also ensures all files were properly published to the CDN and npm *docs* - the new release workflow is documented at build/release/README.md *misc* - now that we don't need the jquery-release script and now that we no longer need to build on Node 10, we can use ESM in all files in the build folder - move dist wrappers to "wrappers" folders for easy removal of all built files - limit certain workflows to the main repo (not forks) - version in package.json has been set to beta.1 so that the next release will be beta.2 - release-it added the `preReleaseBase` option and we now always set it to `1` in the npm script. This is a noop for stable releases. Fixes jquery/jquery-release#114 Closes gh-5512
152 lines
3.7 KiB
JavaScript
152 lines
3.7 KiB
JavaScript
import fs from "node:fs/promises";
|
|
import util from "node:util";
|
|
import { exec as nodeExec } from "node:child_process";
|
|
|
|
const exec = util.promisify( nodeExec );
|
|
|
|
const allowedLibraryTypes = new Set( [ "regular", "factory" ] );
|
|
const allowedSourceTypes = new Set( [ "commonjs", "module", "dual" ] );
|
|
|
|
// Fire up all tests defined in test/node_smoke_tests/*.js in spawned sub-processes.
|
|
// All the files under test/node_smoke_tests/*.js are supposed to exit with 0 code
|
|
// on success or another one on failure. Spawning in sub-processes is
|
|
// important so that the tests & the main process don't interfere with
|
|
// each other, e.g. so that they don't share the `require` cache.
|
|
|
|
async function runTests( { libraryType, sourceType, module } ) {
|
|
if ( !allowedLibraryTypes.has( libraryType ) ||
|
|
!allowedSourceTypes.has( sourceType ) ) {
|
|
throw new Error( `Incorrect libraryType or sourceType value; passed: ${
|
|
libraryType
|
|
} ${ sourceType } "${ module }"` );
|
|
}
|
|
const dir = `./test/node_smoke_tests/${ sourceType }/${ libraryType }`;
|
|
const files = await fs.readdir( dir, { withFileTypes: true } );
|
|
const testFiles = files.filter( ( testFilePath ) => testFilePath.isFile() );
|
|
|
|
if ( !testFiles.length ) {
|
|
throw new Error( `No test files found for ${
|
|
libraryType
|
|
} ${ sourceType } "${ module }"` );
|
|
}
|
|
|
|
await Promise.all(
|
|
testFiles.map( ( testFile ) =>
|
|
exec( `node "${ dir }/${ testFile.name }" "${ module }"` )
|
|
)
|
|
);
|
|
console.log( `Node smoke tests passed for ${
|
|
libraryType
|
|
} ${ sourceType } "${ module }".` );
|
|
}
|
|
|
|
async function runDefaultTests() {
|
|
await Promise.all( [
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "commonjs",
|
|
module: "jquery"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "commonjs",
|
|
module: "jquery/slim"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "commonjs",
|
|
module: "./dist/jquery.js"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "commonjs",
|
|
module: "./dist/jquery.slim.js"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "module",
|
|
module: "jquery"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "module",
|
|
module: "jquery/slim"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "module",
|
|
module: "./dist-module/jquery.module.js"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "module",
|
|
module: "./dist-module/jquery.slim.module.js"
|
|
} ),
|
|
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "commonjs",
|
|
module: "jquery/factory"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "commonjs",
|
|
module: "jquery/factory-slim"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "commonjs",
|
|
module: "./dist/jquery.factory.js"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "commonjs",
|
|
module: "./dist/jquery.factory.slim.js"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "module",
|
|
module: "jquery/factory"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "module",
|
|
module: "jquery/factory-slim"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "module",
|
|
module: "./dist-module/jquery.factory.module.js"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "module",
|
|
module: "./dist-module/jquery.factory.slim.module.js"
|
|
} ),
|
|
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "dual",
|
|
module: "jquery"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "regular",
|
|
sourceType: "dual",
|
|
module: "jquery/slim"
|
|
} ),
|
|
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "dual",
|
|
module: "jquery/factory"
|
|
} ),
|
|
runTests( {
|
|
libraryType: "factory",
|
|
sourceType: "dual",
|
|
module: "jquery/factory-slim"
|
|
} )
|
|
] );
|
|
}
|
|
|
|
runDefaultTests();
|