/** * 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:test", "dependencies": { "self": ["_phase:build"], "upstream": ["_phase:validate"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": true }, { "name": "_phase:lint", "dependencies": { "self": ["_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:bundle", "dependencies": { "self": ["_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:format", "dependencies": { "self": ["_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:svelte-check", "dependencies": { "self": ["_phase:build"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": true }, { "name": "_phase:package", "dependencies": { "self": ["_phase:build"], "upstream": ["_phase:package"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": false }, { "name": "_phase:docker-build", "dependencies": { "self": ["_phase:build", "_phase:package", "_phase:bundle"], "upstream": ["_phase:build", "_phase:bundle", "_phase:package"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": true }, { "name": "_phase:docker-staging", "dependencies": { "self": ["_phase:build", "_phase:package", "_phase:bundle"] }, "ignoreMissingScript": true, "allowWarningsOnSuccess": true } ], "commands": [ { "commandKind": "bulk", "name": "format", "summary": "Format", "description": "Perform a formatting", "enableParallelism": true, "incremental": false, "ignoreMissingScript": true, "safeForSimultaneousRushProcesses": true, "disableBuildCache": true }, { "commandKind": "phased", "name": "build:watch", "summary": "Build and watch", "phases": ["_phase:build", "_phase:validate"], "description": "Perform build with tsc and watch for changes with rush", "enableParallelism": true, "incremental": true, "safeForSimultaneousRushProcesses": true, "watchOptions": { "alwaysWatch": true, "watchPhases": ["_phase:build", "_phase:validate"] } }, { "summary": "svelte-check", "commandKind": "phased", "name": "svelte-check", "phases": ["_phase:build", "_phase:svelte-check"], "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": "phased", "name": "rebuild", "summary": "ReBuild and test all projects.", "phases": ["_phase:build"], "enableParallelism": true, "incremental": false }, { "commandKind": "phased", "name": "revalidate", "phases": ["_phase:validate"], "summary": "revalidate", "enableParallelism": true, "incremental": false }, { "commandKind": "phased", "summary": "Do testing", "name": "test", "phases": ["_phase:build", "_phase:test"], "enableParallelism": true, "incremental": true }, { "commandKind": "phased", "name": "retest", "summary": "Build and test all projects.", "phases": ["_phase:build", "_phase:test"], "enableParallelism": true, "incremental": false }, { "commandKind": "phased", "summary": "Do bundle", "name": "bundle", "phases": ["_phase:build", "_phase:bundle"], "enableParallelism": true, "incremental": true }, { "commandKind": "phased", "summary": "Do packaging", "name": "package", "phases": ["_phase:build", "_phase:package"], "enableParallelism": true, "incremental": true }, { "summary": "docker:build", "commandKind": "phased", "name": "docker:build", "phases": ["_phase:build", "_phase:bundle", "_phase:package", "_phase:docker-build"], "enableParallelism": true, "incremental": true }, { "summary": "docker:rebuild", "commandKind": "phased", "name": "docker:rebuild", "phases": ["_phase:build", "_phase:bundle", "_phase:package", "_phase:docker-build"], "enableParallelism": true, "incremental": false }, { "summary": "docker:staging", "commandKind": "phased", "name": "docker:staging", "phases": ["_phase:build", "_phase:bundle", "_phase:package", "_phase:docker-staging"], "enableParallelism": true, "incremental": true }, { "commandKind": "bulk", "name": "docker:push", "summary": "docker:push", "description": "Push docker release images", "enableParallelism": true, "incremental": false, "ignoreDependencyOrder": false, "ignoreMissingScript": true, "disableBuildCache": true, "allowWarningsInSuccessfulBuild": true }, { "commandKind": "global", "name": "docker", "summary": "Build docker with platform", "description": "use to build all docker containers required for platform", "safeForSimultaneousRushProcesses": true, "shellCommand": "rush docker:build -p 20 --to @hcengineering/pod-server --to @hcengineering/pod-front --to @hcengineering/prod --to @hcengineering/pod-account --to @hcengineering/pod-collaborator --to @hcengineering/tool --to @hcengineering/pod-print --to @hcengineering/pod-sign --to @hcengineering/pod-analytics-collector --to @hcengineering/rekoni-service" }, { "commandKind": "global", "name": "docker:up", "summary": "Up development build", "description": "Up development build", "safeForSimultaneousRushProcesses": true, "shellCommand": "cd ./dev && docker compose up -d --force-recreate" }, { "commandKind": "global", "name": "tool:upgrade", "summary": "Upgrade all local models", "description": "Upgrade all local models", "safeForSimultaneousRushProcesses": true, "shellCommand": "cd ./dev/tool && rushx run-local upgrade -f" }, { "commandKind": "global", "name": "apply-templates", "summary": "Update all package.json according to templates matched from templates folder", "description": "Use to update all projects to templates", "safeForSimultaneousRushProcesses": true, "shellCommand": "node templates/apply.js" }, { "commandKind": "global", "name": "ts-clean", "summary": "Clean tsconfig.tsbuildinfo", "description": "Clean typescript incremental cache", "safeForSimultaneousRushProcesses": true, "shellCommand": "find .|grep tsconfig.tsbuildinfo | xargs rm | pwd" }, { "commandKind": "global", "name": "model-version", "summary": "show model version", "description": "show model version", "safeForSimultaneousRushProcesses": true, "shellCommand": "npx node ./common/scripts/show_version.js" }, { "commandKind": "global", "name": "deps-clean", "summary": "Clean package-deps-*.json files", "description": "Clean package-deps-*.json files", "safeForSimultaneousRushProcesses": true, "shellCommand": "find .|grep .rush/temp/package-deps_ | xargs rm" }, { "commandKind": "global", "name": "fast-format", "summary": "Format changed projects", "description": "Format and autofix linting issues in changed projects", "safeForSimultaneousRushProcesses": true, "shellCommand": "./common/scripts/each-diff.sh rushx format --force" } ], /** * 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", "rebuild"] }, { "parameterKind": "flag", "longName": "--clean", "description": "Enable Heft clean building option", "associatedCommands": ["build", "rebuild"] }, { "parameterKind": "flag", "longName": "--force", "shortName": "-f", "description": "Force formatting", "associatedCommands": ["format"] } // { // /** // * (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" // } // ] // } ] }