| # Building |
| |
| Building the project is not usually needed for local development. |
| However, for exports to WPT, NodeJS, [or deployment](https://gpuweb.github.io/cts/), |
| files can be pre-generated. |
| |
| ## Build types |
| |
| The project can be built several different ways, each with a different output directory: |
| |
| ### 0. on-the-fly builds (no output directory) |
| |
| Use `npm run start` to launch a server that live-compiles everything as needed. |
| Use `tools/run_node` and other tools to run under `ts-node` which compiles at runtime. |
| |
| ### 1. `out` directory |
| |
| **Built with**: `npm run standalone` |
| |
| **Serve locally with**: `npx grunt serve` |
| |
| **Used for**: Static deployment of the CTS, primarily for [gpuweb.github.io/cts](https://gpuweb.github.io/cts/). |
| |
| ### 2. `out-wpt` directory |
| |
| **Built with**: `npm run wpt` |
| |
| **Used for**: Deploying into [Web Platform Tests](https://web-platform-tests.org/). See [below](#export-to-wpt) for more information. |
| |
| Contains: |
| |
| - An adapter for running WebGPU CTS tests under WPT |
| - A copy of the needed files from `out/` |
| - A copy of any `.html` test cases from `src/` |
| |
| ### 3. `out-node` directory |
| |
| **Built with**: `npm run node` |
| |
| **Used for**: Running NodeJS tools, if you want to specifically avoid the live-compilation overhead of the `tools/` versions, or are running on a deployment which no longer has access to `ts-node` (which is a build-time dependency). For example: |
| |
| - `node out-node/common/runtime/cmdline.js` ([source](../src/common/runtime/cmdline.ts)) - A command line interface test runner |
| - `node out-node/common/runtime/server.js` ([source](../src/common/runtime/server.ts)) - An HTTP server for executing CTS tests with a REST interface |
| |
| ## Testing |
| |
| To build and run all pre-submit checks (including type and lint checks and |
| unittests), use: |
| |
| ```sh |
| npm test |
| ``` |
| |
| For checks only: |
| |
| ```sh |
| npm run check |
| ``` |
| |
| |
| ## Export to WPT |
| |
| Run `npm run wpt`. |
| |
| Copy (or symlink) the `out-wpt/` directory as the `webgpu/` directory in your |
| WPT checkout or your browser's "internal" WPT test directory. |