/** * This configuration file defines custom commands for the "rush" command-line. * More documentation is available on the Rush website: https://rushjs.io */ { "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", "phases": [ { "name": "_phase:build", "dependencies": { "upstream": ["_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:validate", "dependencies": { "self": ["_phase:build"], "upstream": ["_phase:validate", "_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:bundle", "dependencies": { "self": ["_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:test", "dependencies": { "self": ["_phase:build"], "upstream": ["_phase:validate"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": true } ], "commands": [ { "commandKind": "global", "name": "coverage", "summary": "Run tests, merge LCOV and generate HTML coverage", "description": "Run 'rush test', then merge per-package LCOV files and generate HTML coverage in coverage/html", "safeForSimultaneousRushProcesses": true, "shellCommand": "rush test && node scripts/merge-coverage.js && node scripts/generate-coverage-html.js coverage/lcov.info coverage/html" }, { "commandKind": "phased", "summary": "Do testing", "name": "test", "phases": ["_phase:build", "_phase:test"], "enableParallelism": true, "incremental": true }, { "commandKind": "phased", "name": "build", "summary": "build", "phases": ["_phase:build"], "enableParallelism": true, "incremental": true, "watchOptions": { "alwaysWatch": false, "watchPhases": ["_phase:build"] } }, { "commandKind": "phased", "name": "validate", "phases": ["_phase:validate"], "summary": "validate", "enableParallelism": true, "incremental": true }, { "commandKind": "bulk", "name": "format", "summary": "Format", "description": "Perform a formatting", "enableParallelism": true, "incremental": false, "ignoreMissingScript": true, "safeForSimultaneousRushProcesses": true, "disableBuildCache": true }, { "commandKind": "bulk", "name": "lint", "summary": "Lint", "description": "Linting", "enableParallelism": true, "incremental": false, "ignoreMissingScript": true, "safeForSimultaneousRushProcesses": true, "disableBuildCache": true }, { "commandKind": "bulk", "name": "lint:fix", "summary": "Lint & fix", "description": "Linting and fixing", "enableParallelism": true, "incremental": false, "ignoreMissingScript": true, "safeForSimultaneousRushProcesses": true, "disableBuildCache": true }, { "commandKind": "global", "name": "bump-changes", "summary": "Bump changes from tag", "description": "Bump changes from previous tag", "safeForSimultaneousRushProcesses": true, "shellCommand": "./common/scripts/node_modules/.bin/bump-changes-from-tag" } ], /** * Custom "parameters" introduce new parameters for specified Rush command-line commands. * For example, you might define a "--production" parameter for the "rush build" command. */ "parameters": [ { "parameterKind": "flag", "longName": "--lite", "shortName": "-l", "description": "Enable Heft lite building option, will skip some phases.", "associatedCommands": ["build"] }, { "parameterKind": "flag", "longName": "--clean", "description": "Enable Heft clean building option", "associatedCommands": ["build"] } // { // /** // * (Required) Determines the type of custom parameter. // * A "flag" is a custom command-line parameter whose presence acts as an on/off switch. // */ // "parameterKind": "flag", // // /** // * (Required) The long name of the parameter. It must be lower-case and use dash delimiters. // */ // "longName": "--my-flag", // // /** // * An optional alternative short name for the parameter. It must be a dash followed by a single // * lower-case or upper-case letter, which is case-sensitive. // * // * NOTE: The Rush developers recommend that automation scripts should always use the long name // * to improve readability. The short name is only intended as a convenience for humans. // * The alphabet letters run out quickly, and are difficult to memorize, so *only* use // * a short name if you expect the parameter to be needed very often in everyday operations. // */ // "shortName": "-m", // // /** // * (Required) A long description to be shown in the command-line help. // * // * Whenever you introduce commands/parameters, taking a little time to write meaningful // * documentation can make a big difference for the developer experience in your repo. // */ // "description": "A custom flag parameter that is passed to the scripts that are invoked when building projects", // // /** // * (Required) A list of custom commands and/or built-in Rush commands that this parameter may // * be used with. The parameter will be appended to the shell command that Rush invokes. // */ // "associatedCommands": ["build", "rebuild"] // }, // // { // /** // * (Required) Determines the type of custom parameter. // * A "string" is a custom command-line parameter whose value is a simple text string. // */ // "parameterKind": "string", // "longName": "--my-string", // "description": "A custom string parameter for the \"my-global-command\" custom command", // // "associatedCommands": ["my-global-command"], // // /** // * The name of the argument, which will be shown in the command-line help. // * // * For example, if the parameter name is '--count" and the argument name is "NUMBER", // * then the command-line help would display "--count NUMBER". The argument name must // * be comprised of upper-case letters, numbers, and underscores. It should be kept short. // */ // "argumentName": "SOME_TEXT", // // /** // * If true, this parameter must be included with the command. The default is false. // */ // "required": false // }, // // { // /** // * (Required) Determines the type of custom parameter. // * A "choice" is a custom command-line parameter whose argument must be chosen from a list of // * allowable alternatives. // */ // "parameterKind": "choice", // "longName": "--my-choice", // "description": "A custom choice parameter for the \"my-global-command\" custom command", // // "associatedCommands": ["my-global-command"], // // /** // * If true, this parameter must be included with the command. The default is false. // */ // "required": false, // // /** // * Normally if a parameter is omitted from the command line, it will not be passed // * to the shell command. this value will be inserted by default. Whereas if a "defaultValue" // * is defined, the parameter will always be passed to the shell command, and will use the // * default value if unspecified. The value must be one of the defined alternatives. // */ // "defaultValue": "vanilla", // // /** // * (Required) A list of alternative argument values that can be chosen for this parameter. // */ // "alternatives": [ // { // /** // * A token that is one of the alternatives that can be used with the choice parameter, // * e.g. "vanilla" in "--flavor vanilla". // */ // "name": "vanilla", // // /** // * A detailed description for the alternative that can be shown in the command-line help. // * // * Whenever you introduce commands/parameters, taking a little time to write meaningful // * documentation can make a big difference for the developer experience in your repo. // */ // "description": "Use the vanilla flavor (the default)" // }, // // { // "name": "chocolate", // "description": "Use the chocolate flavor" // }, // // { // "name": "strawberry", // "description": "Use the strawberry flavor" // } // ] // } ] }