diff --git a/build/benchmark.yml b/build/benchmark.yml index 137a1380..bf3d5aa8 100644 --- a/build/benchmark.yml +++ b/build/benchmark.yml @@ -41,6 +41,10 @@ resources: type: github endpoint: Microsoft name: microsoft/TypeScript + - repository: typescript-go + type: github + endpoint: Microsoft + name: microsoft/typescript-go # https://stackoverflow.com/a/63276774 pipelines: @@ -85,6 +89,10 @@ parameters: displayName: Exhaustive list of agents type: string default: 'any,ts-perf1,ts-perf2,ts-perf3,ts-perf4,ts-perf5,ts-perf6,ts-perf7,ts-perf8,ts-perf9,ts-perf10,ts-perf11,ts-perf12' + - name: TS_GO + displayName: boolean to describe if building ts-go + type: boolean + default: false variables: Codeql.Enabled: false @@ -95,7 +103,15 @@ variables: azureSubscription: 'TypeScript Public CI' KeyVaultName: 'jststeam-passwords' - REF: $[ resources.repositories['TypeScript'].ref ] + ${{ if eq(parameters.TS_GO, true) }}: + REPO: 'typescript-go' + REF: $[ replace(resources.repositories['typescript-go'].ref, 'heads/../', '') ] + TSGOFLAG: '--tsgo' + ${{ else }}: + REPO: 'TypeScript' + REF: $[ replace(resources.repositories['TypeScript'].ref, 'heads/../', '') ] + TSGOFLAG: '' + PRETTY_REF: $[ replace(replace(replace(replace(variables['REF'], '/merge', ''), 'refs/pull/', 'pr.'), 'refs/heads/', ''), '/', '_') ] IS_PR: $[ startsWith(variables['REF'], 'refs/pull/') ] # True if this run should demand a baseline machine. @@ -122,19 +138,27 @@ jobs: variables: ARTIFACTS_DIR: $(Pipeline.Workspace)/artifacts - TYPESCRIPT_DIR: $(Pipeline.Workspace)/TypeScript + TYPESCRIPT_DIR: $(Pipeline.Workspace)/$(REPO) TSPERF_PRESET: ${{ parameters.TSPERF_PRESET }} steps: - template: templates/setup.yml - template: templates/cloneAndBuildBenchmarkRepo.yml # Sets $(BENCH_SCRIPTS), $(TSPERF_EXE) - - checkout: TypeScript - path: TypeScript - fetchTags: false - fetchDepth: 2 # For PRs, we want the merge base to compare against. - clean: true - retryCountOnTaskFailure: 3 + - ${{ if eq(parameters.TS_GO, true) }}: + - checkout: typescript-go + path: typescript-go + fetchTags: false + fetchDepth: 2 # For PRs, we want the merge base to compare against. + clean: true + retryCountOnTaskFailure: 3 + - ${{ else }}: + - checkout: TypeScript + path: TypeScript + fetchTags: false + fetchDepth: 2 # For PRs, we want the merge base to compare against. + clean: true + retryCountOnTaskFailure: 3 # Ideally we'd just do this: # git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" @@ -146,7 +170,7 @@ jobs: set -exo pipefail OLD_REF=`git -C $(TYPESCRIPT_DIR) rev-parse HEAD` rm -rf $(TYPESCRIPT_DIR) - git clone --filter=blob:none https://github.com/microsoft/TypeScript $(TYPESCRIPT_DIR) + git clone --filter=blob:none https://github.com/microsoft/$(REPO) $(TYPESCRIPT_DIR) cd $(TYPESCRIPT_DIR) git fetch origin $(OLD_REF) git switch --detach FETCH_HEAD @@ -160,6 +184,8 @@ jobs: node $(BENCH_SCRIPTS)/setupPipeline.js displayName: Setup pipeline name: setupPipeline + env: + TSGOFLAG: $(TSGOFLAG) - bash: | set -exo pipefail @@ -170,7 +196,7 @@ jobs: - bash: | set -exo pipefail - node $(BENCH_SCRIPTS)/buildTypeScript.js --outputDir $(ARTIFACTS_DIR)/new + node $(BENCH_SCRIPTS)/buildTypeScript.js --outputDir $(ARTIFACTS_DIR)/new $(TSGOFLAG) displayName: Build new TypeScript condition: and(succeeded(), eq(variables['TSPERF_IS_COMPARISON'], 'true')) workingDirectory: $(TYPESCRIPT_DIR) @@ -185,7 +211,7 @@ jobs: - bash: | set -exo pipefail - node $(BENCH_SCRIPTS)/buildTypeScript.js --baseline --outputDir $(ARTIFACTS_DIR)/baseline + node $(BENCH_SCRIPTS)/buildTypeScript.js --baseline --outputDir $(ARTIFACTS_DIR)/baseline $(TSGOFLAG) displayName: Build baseline TypeScript workingDirectory: $(TYPESCRIPT_DIR) name: buildTypeScriptBaseline @@ -226,6 +252,12 @@ jobs: artifact: BuiltTypeScript displayName: Download built TypeScript + - ${{ if eq(parameters.TS_GO, true) }}: + - bash: | + set -exo pipefail + find $(BUILT_TYPESCRIPT_DIR) -name 'tsgo' -type f -exec chmod +x {} + + displayName: Make tsgo executable + # This is provided by the agent. - bash: | set -exo pipefail @@ -237,7 +269,6 @@ jobs: node $(BENCH_SCRIPTS)/runTsPerf.js install-hosts displayName: Install hosts retryCountOnTaskFailure: 3 - - bash: | set -exo pipefail # Special case for self benchmark @@ -397,7 +428,7 @@ jobs: - bash: | set -exo pipefail - node $(BENCH_SCRIPTS)/postPerfResult.js --fragment $(Pipeline.Workspace)/comment.html + node $(BENCH_SCRIPTS)/postPerfResult.js --fragment $(Pipeline.Workspace)/comment.html $(TSGOFLAG) displayName: Publish PR comment condition: and(succeeded(), eq(variables['IS_PR'], 'true')) env: @@ -480,7 +511,7 @@ jobs: - bash: | set -exo pipefail - node $(BENCH_SCRIPTS)/postPerfResult.js --failed + node $(BENCH_SCRIPTS)/postPerfResult.js --failed $(TSGOFLAG) displayName: Publish PR comment env: DISTINCT_ID: ${{ parameters.DISTINCT_ID }} diff --git a/build/templates/setup.yml b/build/templates/setup.yml index 1765974e..2d7123b2 100644 --- a/build/templates/setup.yml +++ b/build/templates/setup.yml @@ -8,6 +8,10 @@ steps: inputs: versionSpec: ${{ parameters.NODE_VERSION }} displayName: 'Install Node ${{ parameters.NODE_VERSION }}' + - task: GoTool@0 + inputs: + version: '1.26' + displayName: 'Install Go' - bash: | set -exo pipefail diff --git a/cases/scenarios/Compiler-UnionsLSP/scenario.json b/cases/scenarios/Compiler-UnionsLSP/scenario.json new file mode 100644 index 00000000..ccb30165 --- /dev/null +++ b/cases/scenarios/Compiler-UnionsLSP/scenario.json @@ -0,0 +1,46 @@ +{ + "name": "Compiler-UnionsLSP", + "kind": "lsp", + "args": [], + "tsserverConfig": { + "solution": "Compiler-Unions", + "commands": [ + { + "commandName": "updateOpen", + "args": [ + { + "file": "checker.ts" + } + ] + }, + { + "commandName": "geterr", + "args": [ + "checker.ts" + ] + }, + { + "commandName": "references", + "args": { + "file": "checker.ts", + "line": 10960, + "offset": 48 + } + }, + { + "commandName": "navto", + "args": { + "searchValue": "Type" + } + }, + { + "commandName": "completionInfo", + "args": { + "file": "checker.ts", + "line": 25149, + "offset": 6 + } + } + ] + } +} diff --git a/cases/scenarios/CompilerLSP/scenario.json b/cases/scenarios/CompilerLSP/scenario.json new file mode 100644 index 00000000..fd325158 --- /dev/null +++ b/cases/scenarios/CompilerLSP/scenario.json @@ -0,0 +1,46 @@ +{ + "name": "CompilerLSP", + "kind": "lsp", + "args": [], + "tsserverConfig": { + "solution": "Compiler", + "commands": [ + { + "commandName": "updateOpen", + "args": [ + { + "file": "checker.ts" + } + ] + }, + { + "commandName": "geterr", + "args": [ + "checker.ts" + ] + }, + { + "commandName": "references", + "args": { + "file": "checker.ts", + "line": 11696, + "offset": 48 + } + }, + { + "commandName": "navto", + "args": { + "searchValue": "Type" + } + }, + { + "commandName": "completionInfo", + "args": { + "file": "checker.ts", + "line": 26636, + "offset": 6 + } + } + ] + } +} diff --git a/cases/scenarios/lsp-startup/scenario.json b/cases/scenarios/lsp-startup/scenario.json new file mode 100644 index 00000000..8462a42b --- /dev/null +++ b/cases/scenarios/lsp-startup/scenario.json @@ -0,0 +1,10 @@ +{ + "name": "lsp-startup", + "kind": "startup", + "args": [ + "tsgo", + "--lsp", + "--stdio", + "--disableAutomaticTypingAcquisition" + ] +} diff --git a/cases/scenarios/self-build-src-public-api/setup.sh b/cases/scenarios/self-build-src-public-api/setup.sh index 03fc43ab..71302be8 100755 --- a/cases/scenarios/self-build-src-public-api/setup.sh +++ b/cases/scenarios/self-build-src-public-api/setup.sh @@ -5,7 +5,11 @@ cd "${0%/*}" source ../../common.sh -clone_scenario https://github.com/microsoft/TypeScript.git $TYPESCRIPT_COMMIT +if [ -n "$TSGOFLAG" ]; then + clone_scenario https://github.com/microsoft/TypeScript.git tsgo-port +else + clone_scenario https://github.com/microsoft/TypeScript.git $TYPESCRIPT_COMMIT +fi run_sandboxed sh -c ' npm ci diff --git a/cases/scenarios/self-build-src/setup.sh b/cases/scenarios/self-build-src/setup.sh index 03fc43ab..71302be8 100755 --- a/cases/scenarios/self-build-src/setup.sh +++ b/cases/scenarios/self-build-src/setup.sh @@ -5,7 +5,11 @@ cd "${0%/*}" source ../../common.sh -clone_scenario https://github.com/microsoft/TypeScript.git $TYPESCRIPT_COMMIT +if [ -n "$TSGOFLAG" ]; then + clone_scenario https://github.com/microsoft/TypeScript.git tsgo-port +else + clone_scenario https://github.com/microsoft/TypeScript.git $TYPESCRIPT_COMMIT +fi run_sandboxed sh -c ' npm ci diff --git a/cases/scenarios/self-compiler/setup.sh b/cases/scenarios/self-compiler/setup.sh index 03fc43ab..71302be8 100755 --- a/cases/scenarios/self-compiler/setup.sh +++ b/cases/scenarios/self-compiler/setup.sh @@ -5,7 +5,11 @@ cd "${0%/*}" source ../../common.sh -clone_scenario https://github.com/microsoft/TypeScript.git $TYPESCRIPT_COMMIT +if [ -n "$TSGOFLAG" ]; then + clone_scenario https://github.com/microsoft/TypeScript.git tsgo-port +else + clone_scenario https://github.com/microsoft/TypeScript.git $TYPESCRIPT_COMMIT +fi run_sandboxed sh -c ' npm ci diff --git a/cases/scenarios/tsc-startup/scenario.json b/cases/scenarios/tsc-startup/scenario.json index 1e260436..a8e41445 100644 --- a/cases/scenarios/tsc-startup/scenario.json +++ b/cases/scenarios/tsc-startup/scenario.json @@ -2,7 +2,7 @@ "name": "tsc-startup", "kind": "startup", "args": [ - "tsc.js", + "tsc", "--version" ] } diff --git a/cases/scenarios/tsgo-startup/scenario.json b/cases/scenarios/tsgo-startup/scenario.json new file mode 100644 index 00000000..3ac53e0b --- /dev/null +++ b/cases/scenarios/tsgo-startup/scenario.json @@ -0,0 +1,9 @@ +{ + "name": "tsgo-startup", + "kind": "startup", + "args": [ + "tsgo", + "tsc", + "--version" + ] +} diff --git a/cases/scenarios/tsserver-startup/scenario.json b/cases/scenarios/tsserver-startup/scenario.json index 088077f1..a732e45f 100644 --- a/cases/scenarios/tsserver-startup/scenario.json +++ b/cases/scenarios/tsserver-startup/scenario.json @@ -2,7 +2,7 @@ "name": "tsserver-startup", "kind": "startup", "args": [ - "tsserver.js", + "tsserver", "--disableAutomaticTypingAcquisition" ] } diff --git a/cases/scenarios/tsserverlibrary-startup/scenario.json b/cases/scenarios/tsserverlibrary-startup/scenario.json index aaf15bd3..fd79744b 100644 --- a/cases/scenarios/tsserverlibrary-startup/scenario.json +++ b/cases/scenarios/tsserverlibrary-startup/scenario.json @@ -2,6 +2,6 @@ "name": "tsserverlibrary-startup", "kind": "startup", "args": [ - "tsserverlibrary.js" + "tsserverlibrary" ] } diff --git a/cases/scenarios/typescript-startup/scenario.json b/cases/scenarios/typescript-startup/scenario.json index b76d7b20..d98ecc78 100644 --- a/cases/scenarios/typescript-startup/scenario.json +++ b/cases/scenarios/typescript-startup/scenario.json @@ -2,6 +2,6 @@ "name": "typescript-startup", "kind": "startup", "args": [ - "typescript.js" + "typescript" ] } diff --git a/cases/scenarios/xstate-main-1-LSP/scenario.json b/cases/scenarios/xstate-main-1-LSP/scenario.json new file mode 100644 index 00000000..1c12d610 --- /dev/null +++ b/cases/scenarios/xstate-main-1-LSP/scenario.json @@ -0,0 +1,49 @@ +{ + "name": "xstate-main-1-LSP", + "kind": "lsp", + "args": [], + "tsserverConfig": { + "solution": "xstate-main-1", + "commands": [ + { + "commandName": "updateOpen", + "args": [ + { + "file": "packages/core/src/index.ts" + }, + { + "file": "packages/core/src/StateNode.ts" + } + ] + }, + { + "commandName": "geterr", + "args": [ + "packages/core/src/StateNode.ts" + ] + }, + { + "commandName": "references", + "args": { + "file": "packages/core/src/index.ts", + "line": 14, + "offset": 15 + } + }, + { + "commandName": "navto", + "args": { + "searchValue": "State" + } + }, + { + "commandName": "completionInfo", + "args": { + "file": "packages/core/src/index.ts", + "line": 47, + "offset": 1 + } + } + ] + } +} diff --git a/cases/scenarios/xstate-main-1-LSP/setup.sh b/cases/scenarios/xstate-main-1-LSP/setup.sh new file mode 100644 index 00000000..7de8ab3d --- /dev/null +++ b/cases/scenarios/xstate-main-1-LSP/setup.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -exo pipefail +cd "${0%/*}" + +source ../../common.sh + +clone_scenario https://github.com/statelyai/xstate.git 9118720b2d81cd3cd6b8e4ea8da75d576c47fa8d + +run_sandboxed sh -c 'yarn install' diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0cda327..d36c783a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -193,6 +193,12 @@ importers: tmp: specifier: ^0.2.5 version: 0.2.5 + vscode-jsonrpc: + specifier: ^9.0.0-next.11 + version: 9.0.0-next.11 + vscode-languageserver-protocol: + specifier: ^3.17.6-next.17 + version: 3.17.6-next.17 devDependencies: '@types/semver': specifier: ^7.7.1 @@ -2935,6 +2941,16 @@ packages: jsdom: optional: true + vscode-jsonrpc@9.0.0-next.11: + resolution: {integrity: sha512-u6LElQNbSiE9OugEEmrUKwH6+8BpPz2S5MDHvQUqHL//I4Q8GPikKLOUf856UnbLkZdhxaPrExac1lA3XwpIPA==} + engines: {node: '>=14.0.0'} + + vscode-languageserver-protocol@3.17.6-next.17: + resolution: {integrity: sha512-HW72YcFsuckfK6oPVuysRXhKiIFJoUvXgspPHvCMWpwe2x9aq2oGZDUSvKx4m/qUGB27+iu8ijAxsFlljYl2IQ==} + + vscode-languageserver-types@3.17.6-next.6: + resolution: {integrity: sha512-aiJY5/yW+xzw7KPNlwi3gQtddq/3EIn5z8X8nCgJfaiAij2R1APKePngv+MUdLdYJBVTLu+Qa0ODsT+pHgYguQ==} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -5760,6 +5776,15 @@ snapshots: - tsx - yaml + vscode-jsonrpc@9.0.0-next.11: {} + + vscode-languageserver-protocol@3.17.6-next.17: + dependencies: + vscode-jsonrpc: 9.0.0-next.11 + vscode-languageserver-types: 3.17.6-next.6 + + vscode-languageserver-types@3.17.6-next.6: {} + webidl-conversions@3.0.1: {} whatwg-url@5.0.0: diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/compute.snap new file mode 100644 index 00000000..489e03dc --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/compute.snap @@ -0,0 +1,10 @@ +{ + "parallel": "5m 11s", + "perAgent": { + "ts-perf1": "5m 11s", + "ts-perf2": "3m 56s", + "ts-perf3": "2m 32s", + "ts-perf4": "2m 39s", + }, + "total": "14m 18s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/matrix.snap new file mode 100644 index 00000000..eee030a4 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/matrix.snap @@ -0,0 +1,59 @@ +{ + "any": {}, + "ts-perf1": { + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": { + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf3": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf4": { + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/outputVariables.snap new file mode 100644 index 00000000..b7d5a572 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{}", + "MATRIX_ts_perf1": "{"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf3": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf4": "{"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "false", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "", + "TSPERF_NEW_NAME": "", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/parameters.snap new file mode 100644 index 00000000..8d7e960b --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/baseline_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": false, + "isCustomCommitRange": false, + "newCommit": "", + "newName": "", + "predictable": undefined, + "preset": "baseline", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/compute.snap new file mode 100644 index 00000000..1df684d4 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "47m 42s", + "perAgent": { + "any": "3h 18m 6s", + }, + "total": "3h 18m 6s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/matrix.snap new file mode 100644 index 00000000..2c91a474 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/matrix.snap @@ -0,0 +1,104 @@ +{ + "any": { + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 12, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/outputVariables.snap new file mode 100644 index 00000000..91eb1a1e --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":12,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/parameters.snap new file mode 100644 index 00000000..375cd6dd --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/bun_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "bun", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/outputVariables.snap new file mode 100644 index 00000000..a570f94a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/parameters.snap new file mode 100644 index 00000000..c692916e --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/default_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "regular", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/compute.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/compute.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/error.snap new file mode 100644 index 00000000..a3901a5b --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/error.snap @@ -0,0 +1 @@ +[Error: Expected value for commits] \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/matrix.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/matrix.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/outputVariables.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/outputVariables.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/parameters.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=_tsgo/parameters.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/compute.snap new file mode 100644 index 00000000..1d74114f --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "1h 44m 52s", + }, + "total": "1h 44m 52s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/matrix.snap new file mode 100644 index 00000000..5f628291 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/matrix.snap @@ -0,0 +1,88 @@ +{ + "any": { + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/outputVariables.snap new file mode 100644 index 00000000..d2fe184a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "27047e3391323fa2d8987f46a4c42f5361d07926", + "TSPERF_BASELINE_NAME": "release-5.3", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "true", + "TSPERF_NEW_COMMIT": "6ea273cdcca99db809074d2b2d38d0e5b59ee81b", + "TSPERF_NEW_NAME": "release-5.4", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/parameters.snap new file mode 100644 index 00000000..9ed97def --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3...release-5.4_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "27047e3391323fa2d8987f46a4c42f5361d07926", + "baselineName": "release-5.3", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": true, + "newCommit": "6ea273cdcca99db809074d2b2d38d0e5b59ee81b", + "newName": "release-5.4", + "predictable": undefined, + "preset": "faster", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/compute.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/compute.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/error.snap new file mode 100644 index 00000000..984d4d5d --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/error.snap @@ -0,0 +1 @@ +[Error: Expected "..." in commits, not ".."] \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/matrix.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/matrix.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/outputVariables.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/outputVariables.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/parameters.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster commits=release-5.3..release-5.4_tsgo/parameters.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/compute.snap new file mode 100644 index 00000000..1d74114f --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "1h 44m 52s", + }, + "total": "1h 44m 52s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/matrix.snap new file mode 100644 index 00000000..5f628291 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/matrix.snap @@ -0,0 +1,88 @@ +{ + "any": { + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/outputVariables.snap new file mode 100644 index 00000000..70caa412 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "true", + "TSPERF_PROCESS_KINDS": "tsc", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/parameters.snap new file mode 100644 index 00000000..7ba75b32 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster predictable host=node@18.5.1_tsgo/parameters.snap @@ -0,0 +1,13 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": [ + "node@18.5.1", + ], + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": true, + "preset": "faster", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/compute.snap new file mode 100644 index 00000000..1d74114f --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "1h 44m 52s", + }, + "total": "1h 44m 52s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/matrix.snap new file mode 100644 index 00000000..5f628291 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/matrix.snap @@ -0,0 +1,88 @@ +{ + "any": { + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/outputVariables.snap new file mode 100644 index 00000000..21edba3b --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/parameters.snap new file mode 100644 index 00000000..7f135be0 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/faster_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "faster", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/compute.snap new file mode 100644 index 00000000..9f354e43 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "7m 52s", + "perAgent": { + "any": "28m 36s", + }, + "total": "28m 36s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/matrix.snap new file mode 100644 index 00000000..30a2bf70 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/matrix.snap @@ -0,0 +1,56 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/outputVariables.snap new file mode 100644 index 00000000..7cb775eb --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/parameters.snap new file mode 100644 index 00000000..61c24a48 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/full_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "full", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/outputVariables.snap new file mode 100644 index 00000000..a570f94a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/parameters.snap new file mode 100644 index 00000000..0cec4095 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/hosts=bun@1.1.3,vscode@1.88.1_tsgo/parameters.snap @@ -0,0 +1,14 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": [ + "bun@1.1.3", + "vscode@1.88.1", + ], + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "regular", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/outputVariables.snap new file mode 100644 index 00000000..4b61b1e4 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "true", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/parameters.snap new file mode 100644 index 00000000..cfe6a3ee --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/predictable=true_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": true, + "preset": "regular", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/outputVariables.snap new file mode 100644 index 00000000..a570f94a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/parameters.snap new file mode 100644 index 00000000..912c135f --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/public_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "public", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/outputVariables.snap new file mode 100644 index 00000000..a570f94a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/parameters.snap new file mode 100644 index 00000000..c692916e --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/regular_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "regular", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/compute.snap new file mode 100644 index 00000000..66dbb57b --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "7m 52s", + "perAgent": { + "any": "13m 38s", + }, + "total": "13m 38s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/matrix.snap new file mode 100644 index 00000000..2f26ae29 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/matrix.snap @@ -0,0 +1,32 @@ +{ + "any": { + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/outputVariables.snap new file mode 100644 index 00000000..574c7ecd --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/parameters.snap new file mode 100644 index 00000000..55c0b44e --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only hosts=node@22.8.0_tsgo/parameters.snap @@ -0,0 +1,13 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": [ + "node@22.8.0", + ], + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "startup-only", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/compute.snap new file mode 100644 index 00000000..66dbb57b --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "7m 52s", + "perAgent": { + "any": "13m 38s", + }, + "total": "13m 38s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/matrix.snap new file mode 100644 index 00000000..2f26ae29 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/matrix.snap @@ -0,0 +1,32 @@ +{ + "any": { + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/outputVariables.snap new file mode 100644 index 00000000..574c7ecd --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/parameters.snap new file mode 100644 index 00000000..48fea809 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/startup-only_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "startup-only", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/outputVariables.snap new file mode 100644 index 00000000..a570f94a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/parameters.snap new file mode 100644 index 00000000..c692916e --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/this is not a preset_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "regular", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/compute.snap new file mode 100644 index 00000000..1d74114f --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "1h 44m 52s", + }, + "total": "1h 44m 52s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/matrix.snap new file mode 100644 index 00000000..5f628291 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/matrix.snap @@ -0,0 +1,88 @@ +{ + "any": { + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/outputVariables.snap new file mode 100644 index 00000000..21edba3b --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/parameters.snap new file mode 100644 index 00000000..b83d3587 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsc-only_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "tsc-only", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/compute.snap new file mode 100644 index 00000000..2e90d1c9 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/compute.snap @@ -0,0 +1,5 @@ +{ + "parallel": "0ms", + "perAgent": {}, + "total": "0ms", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/matrix.snap new file mode 100644 index 00000000..94340617 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/matrix.snap @@ -0,0 +1,15 @@ +{ + "any": {}, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/outputVariables.snap new file mode 100644 index 00000000..74a4133d --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/parameters.snap new file mode 100644 index 00000000..f93ff2cb --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/tsserver-only_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "tsserver-only", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/compute.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/compute.snap new file mode 100644 index 00000000..29ae7230 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/compute.snap @@ -0,0 +1,7 @@ +{ + "parallel": "26m 18s", + "perAgent": { + "any": "2h 13m 28s", + }, + "total": "2h 13m 28s", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/error.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/error.snap new file mode 100644 index 00000000..66dc9051 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/error.snap @@ -0,0 +1 @@ +undefined \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/matrix.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/matrix.snap new file mode 100644 index 00000000..01c77bf2 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/matrix.snap @@ -0,0 +1,128 @@ +{ + "any": { + "lsp_native_CompilerLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_CompilerLSP", + "TSPERF_JOB_SCENARIO": "CompilerLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_Compiler_UnionsLSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_Compiler_UnionsLSP", + "TSPERF_JOB_SCENARIO": "Compiler-UnionsLSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "lsp_native_xstate_main_1_LSP": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "lsp", + "TSPERF_JOB_NAME": "lsp_native_xstate_main_1_LSP", + "TSPERF_JOB_SCENARIO": "xstate-main-1-LSP", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_lsp_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_lsp_startup", + "TSPERF_JOB_SCENARIO": "lsp-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "startup_native_tsgo_startup": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "startup", + "TSPERF_JOB_NAME": "startup_native_tsgo_startup", + "TSPERF_JOB_SCENARIO": "tsgo-startup", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_Compiler_Unions": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_Compiler_Unions", + "TSPERF_JOB_SCENARIO": "Compiler-Unions", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_angular_1": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_angular_1", + "TSPERF_JOB_SCENARIO": "angular-1", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_mui_docs": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_mui_docs", + "TSPERF_JOB_SCENARIO": "mui-docs", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_build_src": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_build_src", + "TSPERF_JOB_SCENARIO": "self-build-src", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_self_compiler": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_self_compiler", + "TSPERF_JOB_SCENARIO": "self-compiler", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_ts_pre_modules": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_ts_pre_modules", + "TSPERF_JOB_SCENARIO": "ts-pre-modules", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_vscode": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_vscode", + "TSPERF_JOB_SCENARIO": "vscode", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_webpack": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_webpack", + "TSPERF_JOB_SCENARIO": "webpack", + "TSPERF_JOB_WARMUPS": 1, + }, + "tsc_native_xstate_main": { + "TSPERF_JOB_HOST": "native", + "TSPERF_JOB_ITERATIONS": 6, + "TSPERF_JOB_KIND": "tsc", + "TSPERF_JOB_NAME": "tsc_native_xstate_main", + "TSPERF_JOB_SCENARIO": "xstate-main", + "TSPERF_JOB_WARMUPS": 1, + }, + }, + "ts-perf1": {}, + "ts-perf10": {}, + "ts-perf11": {}, + "ts-perf12": {}, + "ts-perf2": {}, + "ts-perf3": {}, + "ts-perf4": {}, + "ts-perf5": {}, + "ts-perf6": {}, + "ts-perf7": {}, + "ts-perf8": {}, + "ts-perf9": {}, +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/outputVariables.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/outputVariables.snap new file mode 100644 index 00000000..a570f94a --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/outputVariables.snap @@ -0,0 +1,23 @@ +{ + "MATRIX_any": "{"lsp_native_CompilerLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_CompilerLSP","TSPERF_JOB_SCENARIO":"CompilerLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_Compiler_UnionsLSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_Compiler_UnionsLSP","TSPERF_JOB_SCENARIO":"Compiler-UnionsLSP","TSPERF_JOB_WARMUPS":1},"lsp_native_xstate_main_1_LSP":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"lsp","TSPERF_JOB_NAME":"lsp_native_xstate_main_1_LSP","TSPERF_JOB_SCENARIO":"xstate-main-1-LSP","TSPERF_JOB_WARMUPS":1},"startup_native_lsp_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_lsp_startup","TSPERF_JOB_SCENARIO":"lsp-startup","TSPERF_JOB_WARMUPS":1},"startup_native_tsgo_startup":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"startup","TSPERF_JOB_NAME":"startup_native_tsgo_startup","TSPERF_JOB_SCENARIO":"tsgo-startup","TSPERF_JOB_WARMUPS":1},"tsc_native_Compiler_Unions":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_Compiler_Unions","TSPERF_JOB_SCENARIO":"Compiler-Unions","TSPERF_JOB_WARMUPS":1},"tsc_native_angular_1":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_angular_1","TSPERF_JOB_SCENARIO":"angular-1","TSPERF_JOB_WARMUPS":1},"tsc_native_mui_docs":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_mui_docs","TSPERF_JOB_SCENARIO":"mui-docs","TSPERF_JOB_WARMUPS":1},"tsc_native_self_build_src":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_build_src","TSPERF_JOB_SCENARIO":"self-build-src","TSPERF_JOB_WARMUPS":1},"tsc_native_self_compiler":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_self_compiler","TSPERF_JOB_SCENARIO":"self-compiler","TSPERF_JOB_WARMUPS":1},"tsc_native_ts_pre_modules":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_ts_pre_modules","TSPERF_JOB_SCENARIO":"ts-pre-modules","TSPERF_JOB_WARMUPS":1},"tsc_native_vscode":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_vscode","TSPERF_JOB_SCENARIO":"vscode","TSPERF_JOB_WARMUPS":1},"tsc_native_webpack":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_webpack","TSPERF_JOB_SCENARIO":"webpack","TSPERF_JOB_WARMUPS":1},"tsc_native_xstate_main":{"TSPERF_JOB_HOST":"native","TSPERF_JOB_ITERATIONS":6,"TSPERF_JOB_KIND":"tsc","TSPERF_JOB_NAME":"tsc_native_xstate_main","TSPERF_JOB_SCENARIO":"xstate-main","TSPERF_JOB_WARMUPS":1}}", + "MATRIX_ts_perf1": "{}", + "MATRIX_ts_perf10": "{}", + "MATRIX_ts_perf11": "{}", + "MATRIX_ts_perf12": "{}", + "MATRIX_ts_perf2": "{}", + "MATRIX_ts_perf3": "{}", + "MATRIX_ts_perf4": "{}", + "MATRIX_ts_perf5": "{}", + "MATRIX_ts_perf6": "{}", + "MATRIX_ts_perf7": "{}", + "MATRIX_ts_perf8": "{}", + "MATRIX_ts_perf9": "{}", + "TSPERF_BASELINE_COMMIT": "HEAD^1", + "TSPERF_BASELINE_NAME": "baseline", + "TSPERF_IS_COMPARISON": "true", + "TSPERF_IS_CUSTOM_COMMIT_RANGE": "false", + "TSPERF_NEW_COMMIT": "HEAD", + "TSPERF_NEW_NAME": "pr", + "TSPERF_PREDICTABLE": "false", + "TSPERF_PROCESS_KINDS": "tsc lsp startup", +} \ No newline at end of file diff --git a/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/parameters.snap b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/parameters.snap new file mode 100644 index 00000000..1bb76d83 --- /dev/null +++ b/scripts/src/__tests__/__file_snapshots__/setupPipeline/vscode_tsgo/parameters.snap @@ -0,0 +1,11 @@ +{ + "baselineCommit": "HEAD^1", + "baselineName": "baseline", + "hosts": undefined, + "isComparison": true, + "isCustomCommitRange": false, + "newCommit": "HEAD", + "newName": "pr", + "predictable": undefined, + "preset": "vscode", +} \ No newline at end of file diff --git a/scripts/src/__tests__/setupPipeline.test.ts b/scripts/src/__tests__/setupPipeline.test.ts index ccb0f568..603c7f4e 100644 --- a/scripts/src/__tests__/setupPipeline.test.ts +++ b/scripts/src/__tests__/setupPipeline.test.ts @@ -57,6 +57,7 @@ test.each(inputs)("setupPipeline input=%s", async input => { isPr: !baselining, shouldLog: false, gitParseRev: fakeGitRevParse, + tsgo: false, }); } catch (e) { @@ -70,10 +71,36 @@ test.each(inputs)("setupPipeline input=%s", async input => { await expect(error).toMatchFileSnapshot(getSnapshotPath(input, "error")); }); +test.each(inputs)("setupPipeline tsgo input=%s", async input => { + const baselining = input === "baseline"; + + let result, error; + try { + result = await setupPipeline({ + input, + baselining, + isPr: !baselining, + shouldLog: false, + gitParseRev: fakeGitRevParse, + tsgo: true, + }); + } + catch (e) { + error = e; + } + + await expect(result?.matrix).toMatchFileSnapshot(getSnapshotPath(input + "_tsgo", "matrix")); + await expect(result?.outputVariables).toMatchFileSnapshot(getSnapshotPath(input + "_tsgo", "outputVariables")); + await expect(result?.compute).toMatchFileSnapshot(getSnapshotPath(input + "_tsgo", "compute")); + await expect(result?.parameters).toMatchFileSnapshot(getSnapshotPath(input + "_tsgo", "parameters")); + await expect(error).toMatchFileSnapshot(getSnapshotPath(input + "_tsgo", "error")); +}); + function getAllExpectedSnapshots() { - return new Set( - allSnapshotKinds.flatMap(kind => inputs.map(input => getSnapshotPath(input, kind))), - ); + return new Set([ + ...allSnapshotKinds.flatMap(kind => inputs.map(input => getSnapshotPath(input, kind))), + ...allSnapshotKinds.flatMap(kind => inputs.map(input => getSnapshotPath(input + "_tsgo", kind))), + ]); } function getAllActualSnapshots() { @@ -99,6 +126,8 @@ test("abandoned snapshots", () => { } if (abandonedSnapshots.length) { - throw new Error("Abandoned snapshots found; please update snapshots to remove them."); + throw new Error( + "Abandoned snapshots found; please update snapshots to remove them:\n" + abandonedSnapshots.join("\n"), + ); } }); diff --git a/scripts/src/buildTypeScript.ts b/scripts/src/buildTypeScript.ts index 0ac32b2d..5635bb99 100644 --- a/scripts/src/buildTypeScript.ts +++ b/scripts/src/buildTypeScript.ts @@ -14,22 +14,31 @@ const { stdout: timestampDir } = await $pipe`date -d ${date} -u +%Y/%m/%d`; const args = minimist(process.argv.slice(2), { string: ["outputDir"], - boolean: ["baseline"], + boolean: ["baseline", "tsgo"], }); const outputDir = args.outputDir; assert(outputDir, "Expected output path as first argument"); const packageJson = await fs.promises.readFile("package.json", "utf8"); -assert(JSON.parse(packageJson).name === "typescript", "Expected to be run from the TypeScript repo"); +assert( + JSON.parse(packageJson).name === "typescript" || JSON.parse(packageJson).name === "typescript-go", + "Expected to be run from the TypeScript repo", +); await $`mkdir -p ${path.dirname(outputDir)}`; await retry(() => $`npm ci`); if (fs.existsSync("Herebyfile.mjs")) { - await $`npx hereby lkg`; - await $`mv lib ${outputDir}`; + if (args.tsgo) { + await $`npx hereby build`; + await $`mv built/local ${outputDir}`; + } + else { + await $`npx hereby lkg`; + await $`mv lib ${outputDir}`; + } } else { await $`npm run build:compiler`; @@ -50,7 +59,7 @@ if (!isCustomCommitRange) { if (isPR) { // This is a PR run. Pull the branch info from the PR. const prefix = "refs/pull/"; - assert(ref.startsWith(prefix), `Expected ref to start with ${prefix}`); + assert(ref.startsWith(prefix), `Expected ref to start with ${prefix}, instead got ${ref}`); if (args.baseline) { const prNumber = ref.slice(prefix.length).split("/")[0]; @@ -58,7 +67,7 @@ if (!isCustomCommitRange) { const octokit = new Octokit(); const pr = await octokit.rest.pulls.get({ owner: "microsoft", - repo: "TypeScript", + repo: args.tsgo ? "typescript-go" : "TypeScript", pull_number: +prNumber, }); branch = pr.data.base.ref; diff --git a/scripts/src/postPerfResult.ts b/scripts/src/postPerfResult.ts index 0a5caebd..a36160d3 100644 --- a/scripts/src/postPerfResult.ts +++ b/scripts/src/postPerfResult.ts @@ -24,9 +24,10 @@ async function main() { const args = minimist(process.argv.slice(2), { string: ["fragment"], - boolean: ["failed"], + boolean: ["failed", "tsgo"], }); + const repo = args.tsgo ? "typescript-go" : "TypeScript"; const gh = new Octokit({ auth: GH_TOKEN }); let body; if (args.failed) { @@ -50,7 +51,7 @@ async function main() { const resultsComment = await gh.rest.issues.createComment({ issue_number: +SOURCE_ISSUE, owner: "Microsoft", - repo: "TypeScript", + repo, body, }); @@ -66,7 +67,7 @@ async function main() { const statusComment = await gh.rest.issues.getComment({ comment_id: +STATUS_COMMENT, owner: "Microsoft", - repo: "TypeScript", + repo, }); const oldComment = statusComment.data.body; @@ -84,7 +85,7 @@ async function main() { await gh.rest.issues.updateComment({ comment_id: +STATUS_COMMENT, owner: "Microsoft", - repo: "TypeScript", + repo, body: newComment, }); diff --git a/scripts/src/runTsPerf.ts b/scripts/src/runTsPerf.ts index 4a5a62ac..ff9857eb 100644 --- a/scripts/src/runTsPerf.ts +++ b/scripts/src/runTsPerf.ts @@ -17,6 +17,7 @@ const tsperfExe = checkNonEmpty(process.env.TSPERF_EXE, "Expected TSPERF_EXE env const commands: Record Promise) | undefined> = { "install-hosts": installHosts, "benchmark-tsc": benchmarkTsc, + "benchmark-lsp": benchmarkLsp, "benchmark-tsserver": benchmarkTsserver, "benchmark-startup": benchmarkStartup, }; @@ -28,6 +29,10 @@ await fn(); async function installHosts() { const host = getNonEmptyEnv("TSPERF_JOB_HOST"); + if (host === "native") { + console.log("Skipping host install for native binary"); + return; + } await $`node ${tsperfExe} host install --host ${host}`; } @@ -63,7 +68,10 @@ async function getCommonBenchmarkArgs() { tsperfArgs.push("--scenario", scenario); tsperfArgs.push("--iterations", iterations); tsperfArgs.push("--warmups", warmups); - tsperfArgs.push("--cpus", cpu); + if (!process.env.TSGOFLAG) { + // Don't set cpus/cores for tsgo + tsperfArgs.push("--cpus", cpu); + } if (predictable) { tsperfArgs.push("--predictable"); } @@ -137,6 +145,14 @@ async function benchmarkTsserver() { await $`node ${tsperfExe} benchmark tsserver --builtDir ${builtDir} ${tsperfArgs}`; } +async function benchmarkLsp() { + const builtDir = checkNonEmpty(args.builtDir, "Expected non-empty --builtDir"); + + const tsperfArgs = await getCommonBenchmarkArgs(); + + await $`node ${tsperfExe} benchmark lsp --builtDir ${builtDir} ${tsperfArgs}`; +} + async function benchmarkStartup() { const builtDir = checkNonEmpty(args.builtDir, "Expected non-empty --builtDir"); diff --git a/scripts/src/setupPipeline.ts b/scripts/src/setupPipeline.ts index f9b90337..3dbb80aa 100644 --- a/scripts/src/setupPipeline.ts +++ b/scripts/src/setupPipeline.ts @@ -49,9 +49,10 @@ const hosts = { node18: "node@18.15.0", bun: "bun@1.1.24", vscode: "vscode@1.82.1", + native: "native", // Native Go binary; no host runtime needed. } as const satisfies Record; -const allJobKinds = ["tsc", "tsserver", "startup"] as const; +const allJobKinds = ["tsc", "tsserver", "lsp", "startup"] as const; type JobKind = typeof allJobKinds[number]; const enum RunType { @@ -122,7 +123,29 @@ const allScenarios: readonly BaseScenario[] = [ runIn: RunType.Any, cost: 17, }, + { + kind: "lsp", + name: "Compiler-UnionsLSP", + agent: "ts-perf1", + runIn: RunType.Any, + cost: 14, + }, + { + kind: "lsp", + name: "CompilerLSP", + agent: "ts-perf3", + runIn: RunType.Any, + cost: 16, + }, + { + kind: "lsp", + name: "xstate-main-1-LSP", + agent: "ts-perf4", + runIn: RunType.Any, + cost: 17, + }, { kind: "startup", name: "tsc-startup", agent: "ts-perf1", runIn: RunType.Any, cost: 19 }, + { kind: "startup", name: "tsgo-startup", agent: "ts-perf1", runIn: RunType.Any, cost: 19 }, { kind: "startup", name: "tsserver-startup", @@ -130,6 +153,13 @@ const allScenarios: readonly BaseScenario[] = [ runIn: RunType.Any, cost: 28, }, + { + kind: "startup", + name: "lsp-startup", + agent: "ts-perf2", + runIn: RunType.Any, + cost: 28, + }, { kind: "startup", name: "tsserverlibrary-startup", @@ -170,6 +200,14 @@ function* generateBaselinePreset(scenarios: readonly BaseScenario[]): Iterable): Iterable { +function* transformPreset(parameters: Parameters, iter: Iterable, tsgo: boolean): Iterable { const all = [...worker()]; for (const scenario of all) { @@ -410,9 +448,32 @@ function* transformPreset(parameters: Parameters, iter: Iterable): Ite function* worker(): Iterable { for (const scenario of iter) { - const hosts = parameters.hosts ?? [scenario.host]; + if ( + (tsgo && (scenario.kind === "tsserver" || scenario.name === "self-build-src-public-api")) + || (!tsgo && scenario.kind === "lsp") + ) { + continue; + } + if (scenario.kind === "startup") { + switch (scenario.name) { + case "tsgo-startup": + case "lsp-startup": + if (!tsgo) { + continue; + } + break; + case "tsc-startup": + case "tsserver-startup": + case "tsserverlibrary-startup": + case "typescript-startup": + if (tsgo) { + continue; + } + } + } + const scenarioHosts = tsgo ? [hosts.native] : (parameters.hosts ?? [scenario.host]); - for (const host of hosts) { + for (const host of scenarioHosts) { yield { ...scenario, host, @@ -433,12 +494,13 @@ export interface SetupPipelineInput { input: string; baselining: boolean; isPr: boolean; + tsgo: boolean; shouldLog: boolean; gitParseRev: (query: string) => Promise; } export async function setupPipeline(input: SetupPipelineInput) { - const { baselining, shouldLog } = input; + const { baselining, shouldLog, tsgo } = input; const parameters = await parseInput(input); if (shouldLog) { @@ -470,7 +532,7 @@ export async function setupPipeline(input: SetupPipelineInput) { let maxCost = 0; const costPerAgent = new Map(); - for (const scenario of transformPreset(parameters, preset())) { + for (const scenario of transformPreset(parameters, preset(), tsgo)) { const agent = baselining ? scenario.agent : "any"; const jobName = sanitizeJobName(`${scenario.kind}_${scenario.host}_${scenario.name}`); matrix[agent][jobName] = { @@ -591,11 +653,13 @@ if (esMain(import.meta)) { const input = getNonEmptyEnv("TSPERF_PRESET"); const baselining = parseBoolean(process.env.USE_BASELINE_MACHINE, false); const isPr = parseBoolean(process.env.IS_PR, false); + const tsgo = !!process.env.TSGOFLAG; const { outputVariables } = await setupPipeline({ input, baselining, isPr, + tsgo, shouldLog: true, gitParseRev, }); diff --git a/ts-perf/packages/api/src/expansion.ts b/ts-perf/packages/api/src/expansion.ts index 9d4aa3c1..e28b3aed 100644 --- a/ts-perf/packages/api/src/expansion.ts +++ b/ts-perf/packages/api/src/expansion.ts @@ -10,6 +10,7 @@ export abstract class ExpansionProvider { config?: { runner?: | { kind: "tsserver"; options: TSServerOptions; } + | { kind: "lsp"; options: TSServerOptions; } | { kind: "tsc"; options: CompilerOptions; } | { kind: "startup"; options: StartupOptions; }; temp?: TempDirectories; @@ -28,6 +29,9 @@ export abstract class ExpansionProvider { case "tsserver": providers.add(new TSServerOptionsExpansionProvider(config.runner.options)); break; + case "lsp": + providers.add(new TSServerOptionsExpansionProvider(config.runner.options)); + break; } } if (config.temp) providers.add(new TempDirectoriesExpansionProvider(config.temp)); diff --git a/ts-perf/packages/api/src/model/host.ts b/ts-perf/packages/api/src/model/host.ts index 2a5a42b2..8cd3e12e 100644 --- a/ts-perf/packages/api/src/model/host.ts +++ b/ts-perf/packages/api/src/model/host.ts @@ -183,6 +183,10 @@ export class Host { const availableHosts = await this.getAvailableHosts(); const results = new Set(); for (const host of hosts) { + if (host === "native") { + results.add(new Host("native")); + continue; + } const pattern = typeof host === "string" ? HostPattern.parse(host) : HostPattern.create(host); if (pattern.executable && !(pattern.arch || pattern.version)) { if (!installed) { diff --git a/ts-perf/packages/api/src/model/sample.ts b/ts-perf/packages/api/src/model/sample.ts index de426fb7..e116d3a6 100644 --- a/ts-perf/packages/api/src/model/sample.ts +++ b/ts-perf/packages/api/src/model/sample.ts @@ -7,6 +7,8 @@ export const compilerSampleKeys = [ "symbols", "types", "memoryUsed", + "memoryAllocs", + "configTime", "parseTime", "bindTime", "checkTime", @@ -29,6 +31,8 @@ const compilerSampleKeyToDiagnosticName = { symbols: "Symbols", types: "Types", memoryUsed: "Memory used", + memoryAllocs: "Memory allocs", + configTime: "Config time", parseTime: "Parse time", bindTime: "Bind time", checkTime: "Check time", @@ -62,6 +66,12 @@ export function isCompilerDiagnosticName(name: string): name is CompilerDiagnost export function getCompilerMetricName(sampleName: CompilerSampleKey) { // Special case names known by the benchmarking dashboard, even though they differ from what the compiler prints. switch (sampleName) { + case "memoryUsed": + return "Memory Used"; + case "memoryAllocs": + return "Memory Allocs"; + case "configTime": + return "Config Time"; case "parseTime": return "Parse Time"; case "bindTime": @@ -82,6 +92,8 @@ const compilerSampleKeyToUnit = { symbols: "", types: "", memoryUsed: "k", + memoryAllocs: "", + configTime: "s", parseTime: "s", bindTime: "s", checkTime: "s", diff --git a/ts-perf/packages/api/src/model/scenario.ts b/ts-perf/packages/api/src/model/scenario.ts index 4b076a41..bebaf2ff 100644 --- a/ts-perf/packages/api/src/model/scenario.ts +++ b/ts-perf/packages/api/src/model/scenario.ts @@ -9,7 +9,7 @@ import { TSServerConfig } from "./tsserverconfig"; const cachedScenarios = new HashMap(PathComparer.fileSystem); -export type ScenarioKind = "tsserver" | "tsc" | "startup"; +export type ScenarioKind = "tsserver" | "tsc" | "startup" | "lsp"; export interface TscConfig { usePublicApi?: boolean; @@ -57,6 +57,9 @@ export class Scenario { if (kind === "tsserver" && !options?.tsserverConfig) { throw new Error(`Creating scenario '${name}': expected a tsserver config for tsserver scenario.`); } + if (kind === "lsp" && !options?.tsserverConfig) { + throw new Error(`Creating scenario '${name}': expected a tsserver config for lsp scenario.`); + } this.name = name; this.kind = kind; this.args = args; diff --git a/ts-perf/packages/api/src/options.ts b/ts-perf/packages/api/src/options.ts index 5997c672..9e3c80b3 100644 --- a/ts-perf/packages/api/src/options.ts +++ b/ts-perf/packages/api/src/options.ts @@ -110,6 +110,20 @@ const tsserver: CommandLineOptionSet = { }, }; +const lsp: CommandLineOptionSet = { + merge: true, + include: ["common"], + options: { + builtDir, + suiteDir, + extended: { + type: "boolean", + description: "If the scenario declares optional (aka extended) requests, run those as well.", + defaultValue: false, + }, + }, +}; + const startup: CommandLineOptionSet = { merge: true, include: ["common"], @@ -151,6 +165,7 @@ export const optionSets: CommandLineOptionSets = { common, compiler, tsserver, + lsp, startup, azureStorage, }; diff --git a/ts-perf/packages/commands/package.json b/ts-perf/packages/commands/package.json index 30bb3e6b..fdf55205 100644 --- a/ts-perf/packages/commands/package.json +++ b/ts-perf/packages/commands/package.json @@ -37,7 +37,9 @@ "power-options": "^0.3.4", "semver": "^7.7.4", "table-style": "^0.1.4", - "tmp": "^0.2.5" + "tmp": "^0.2.5", + "vscode-jsonrpc": "^9.0.0-next.11", + "vscode-languageserver-protocol": "^3.17.6-next.17" }, "devDependencies": { "@types/semver": "^7.7.1", diff --git a/ts-perf/packages/commands/src/benchmark/index.ts b/ts-perf/packages/commands/src/benchmark/index.ts index 43ca4b7d..6092d34e 100644 --- a/ts-perf/packages/commands/src/benchmark/index.ts +++ b/ts-perf/packages/commands/src/benchmark/index.ts @@ -15,6 +15,7 @@ import { import { HostContext, LogEventType, ProcessExitError } from "@ts-perf/core"; import { CommandLineParseError } from "power-options"; +import * as lsp from "./lsp"; import { measureAndRunScenarios } from "./measure"; import { printBenchmark, printComparison } from "./print"; import * as startup from "./startup"; @@ -57,6 +58,7 @@ export interface BenchmarkOptions extends AzureStorageOptions, CommonOptions { export type TSOptions = | { kind: "tsserver"; options: BenchmarkOptions & TSServerOptions; } + | { kind: "lsp"; options: BenchmarkOptions & TSServerOptions; } | { kind: "tsc"; options: BenchmarkOptions & CompilerOptions; } | { kind: "startup"; options: BenchmarkOptions & StartupOptions; }; @@ -391,6 +393,7 @@ const command: Command = { tsc.registerCommands(command.commands); tsserver.registerCommands(command.commands); +lsp.registerCommands(command.commands); startup.registerCommands(command.commands); export function registerCommands(commands: CommandMap) { diff --git a/ts-perf/packages/commands/src/benchmark/lsp.ts b/ts-perf/packages/commands/src/benchmark/lsp.ts new file mode 100644 index 00000000..8d4c85db --- /dev/null +++ b/ts-perf/packages/commands/src/benchmark/lsp.ts @@ -0,0 +1,17 @@ +import { Command, CommandMap } from "@ts-perf/api"; + +import { benchmark } from "."; + +const command: Command = { + commandName: "lsp", + summary: "Benchmark LSP scenarios.", + description: "Benchmark LSP scenarios.", + include: ["lsp"], + lock: true, + update: true, + exec: ({ options }, host) => benchmark({ kind: "lsp", options }, host), +}; + +export function registerCommands(commands: CommandMap) { + commands.lsp = command; +} diff --git a/ts-perf/packages/commands/src/benchmark/measure.ts b/ts-perf/packages/commands/src/benchmark/measure.ts index de578b1d..08a9a2e7 100644 --- a/ts-perf/packages/commands/src/benchmark/measure.ts +++ b/ts-perf/packages/commands/src/benchmark/measure.ts @@ -52,6 +52,21 @@ function tryParseDiagnostic(line: string) { return undefined; } +function resolveBuiltPath(builtDir: string, name: string): string { + const jsPath = path.join(builtDir, `${name}.js`); + if (fs.existsSync(jsPath)) { + return jsPath; + } + // typescript-go produces a native binary named tsgo/tsgo.exe instead of .js files. + for (const candidate of ["tsgo", "tsgo.exe"]) { + const nativePath = path.join(builtDir, candidate); + if (fs.existsSync(nativePath)) { + return nativePath; + } + } + return ""; +} + export async function measureAndRunScenarios({ kind, options }: TSOptions, host: HostContext): Promise { const date = (options.date ? new Date(options.date) : new Date()).toISOString(); const system = SystemInfo.getCurrent(); @@ -128,6 +143,18 @@ export async function measureAndRunScenarios({ kind, options }: TSOptions, host: hostIndex, ); break; + case "lsp": + measurement = await runLSPScenario( + name, + scenario, + testHost, + options, + host, + scenarioIndex, + hostSpecifier, + hostIndex, + ); + break; default: host.error(`Unrecognizable kind '${kind}'.`); throw new ProcessExitError(-1, "Unrecognizable kind."); @@ -148,6 +175,10 @@ export async function measureAndRunScenarios({ kind, options }: TSOptions, host: ); } +function isNativeBinary(filePath: string): boolean { + return !filePath.endsWith(".js"); +} + async function runCompilerScenario( name: string, scenario: Scenario, @@ -158,25 +189,24 @@ async function runCompilerScenario( hostSpecifier: HostSpecifier, hostIndex: number, ): Promise { - const tsc = path.join(options.builtDir, "tsc.js"); - const typescript = path.join(options.builtDir, "typescript.js"); + const tsc = resolveBuiltPath(options.builtDir, "tsc"); + const typescript = resolveBuiltPath(options.builtDir, "typescript"); const tscPublicWrapper = path.join(__dirname, "tscpublic.js"); const usesPublicApi = !!scenario.tscConfig?.usePublicApi; + const nativeBin = isNativeBinary(tsc); const temp = await getTempDirectories(); const expansion = ExpansionProvider.getProviders({ runner: { kind: "tsc", options }, temp, scenario, host }); const { cmd, args, hasBuild } = new CommandLineArgumentsBuilder( expansion, - host, + nativeBin ? tsc : host, /*exposeGc*/ undefined, options.cpus, options.predictable, ) - .addIf(!usesPublicApi, tsc) .addIf(usesPublicApi, tscPublicWrapper, typescript) .addCompilerOptions(options, scenario) .add("--diagnostics"); - const { cmd: clean, args: cleanargs } = new CommandLineArgumentsBuilder(expansion, host) - .add(tsc) + const { cmd: clean, args: cleanargs } = new CommandLineArgumentsBuilder(expansion, nativeBin ? tsc : host) .addCompilerOptions(options, scenario) .add("--clean"); try { @@ -274,10 +304,12 @@ async function runTSServerScenario( hostSpecifier: HostSpecifier, hostIndex: number, ): Promise { - const tsserver = path.join(options.builtDir, "tsserver.js"); + const tsserver = resolveBuiltPath(options.builtDir, "tsserver"); const temp = await getTempDirectories(); const expansion = ExpansionProvider.getProviders({ runner: { kind: "tsserver", options }, temp, scenario, host }); - const argsBuilder = new CommandLineArgumentsBuilder(expansion, host, /*exposeGc*/ false) + // use node as the tsserver host when using native binary + const tsserverHost = host.executableFile ? host : Host.current; + const argsBuilder = new CommandLineArgumentsBuilder(expansion, tsserverHost, /*exposeGc*/ false) .add(path.join(__dirname, "measuretsserver.js")) .add("--tsserver", tsserver) .add("--commands", scenario.configFile) @@ -285,7 +317,7 @@ async function runTSServerScenario( if (options.extended) { argsBuilder.add("--extended"); } - if (options.cpus) { + if (options.cpus && !process.env.TSGOFLAG) { argsBuilder.add("--cpus", options.cpus); } if (options.predictable) { @@ -314,6 +346,104 @@ async function runTSServerScenario( readline.createInterface({ input: childProcess.stdout, terminal: false }).on("line", line => { context.trace(`> ${line}`); const m = tryParseDiagnostic(line); + context.info(line); + if (m) { + values[m.name] = (values[m.name] ?? 0) + m.value; + valueKeys.add(m.name); + } + }); + + readline.createInterface({ input: childProcess.stderr, terminal: false }).on("line", line => { + context.error(`>> ${line}`); + }); + + return new Promise(resolve => childProcess.once("exit", resolve)); + }; + const status = await runAndParseOutput(); + const after = performance.now(); + + context.info( + ` ${formatProgress(i, runs)} Ran scenario '${name}'${status ? " (with errors)" : ""} in ${ + ((after - before) / 1000).toFixed(2) + }s.${isWarmup ? " (warmup)" : ""}`, + ); + + try { + await fs.promises.rm(temp.outDirectory, { recursive: true }); + } + catch {} + + if (!isWarmup) { + samples.push(values); + } + } + + const metrics: Record = Object.create(null); + for (const metricName of valueKeys) { + const isCount = metricName.includes("count"); + metrics[metricName] = computeMetrics(samples.map(x => x[metricName] ?? 0), metricName, isCount ? "" : "ms", 0); + } + + return new Measurement( + scenario.name, + scenarioIndex, + hostSpecifier, + hostIndex, + metrics, + ); +} + +async function runLSPScenario( + name: string, + scenario: Scenario, + host: Host, + options: BenchmarkOptions & TSServerOptions, + context: HostContext, + scenarioIndex: number, + hostSpecifier: HostSpecifier, + hostIndex: number, +): Promise { + const lspServer = resolveBuiltPath(options.builtDir, "tsgo"); + const temp = await getTempDirectories(); + const expansion = ExpansionProvider.getProviders({ runner: { kind: "lsp", options }, temp, scenario, host }); + const nativeBin = isNativeBinary(lspServer); + // Use the host as the runner for JS-based servers; for native binaries, run directly + const lspHost = nativeBin ? Host.current : (host.executableFile ? host : Host.current); + const argsBuilder = new CommandLineArgumentsBuilder(expansion, lspHost, /*exposeGc*/ false) + .add(path.join(__dirname, "measurelsp.js")) + .add("--lsp", lspServer) + .add("--commands", scenario.configFile) + .add("--suite", options.suiteDir); + if (options.extended) { + argsBuilder.add("--extended"); + } + if (options.cpus && !process.env.TSGOFLAG) { + argsBuilder.add("--cpus", options.cpus); + } + const { cmd, args } = argsBuilder; + try { + await fs.promises.mkdir(temp.suiteTempDirectory); + } + catch {} + + context.trace(`> ${cmd} ${args.join(" ")}`); + + const samples: TSServerSample[] = []; + const valueKeys = new Set(); + const numIterations = options.iterations || 5; + const numWarmups = options.warmups || 0; + const runs = numIterations + numWarmups; + for (let i = 0; i < runs; i++) { + const isWarmup = i < numWarmups; + const before = performance.now(); + const values: { [key: string]: number; } = Object.create(null); + const runAndParseOutput = () => { + const childProcess = spawn(cmd!, args); + + readline.createInterface({ input: childProcess.stdout, terminal: false }).on("line", line => { + context.trace(`> ${line}`); + const m = tryParseDiagnostic(line); + context.info(line); if (m) { values[m.name] = (values[m.name] ?? 0) + m.value; valueKeys.add(m.name); @@ -376,15 +506,20 @@ async function runStartupScenario( const temp = await getTempDirectories(); const expansion = ExpansionProvider.getProviders({ runner: { kind: "startup", options }, temp, scenario, host }); - const entrypoint = scenario.args[0]; // A name of a JS file in the built/local directory. + const entrypoint = resolveBuiltPath( + options.builtDir, + scenario.args[0], // name of JS file or executable in the built/local directory. + ); + + console.log(entrypoint); const argsBuilder = new CommandLineArgumentsBuilder( expansion, - host, + isNativeBinary(entrypoint) ? Host.current : (host.executableFile ? host : Host.current), /*exposeGc*/ false, options.cpus, options.predictable, ) - .add(path.join(options.builtDir, entrypoint)) + .add(entrypoint) .addRange(scenario.args.slice(1)); const { cmd, args } = argsBuilder; diff --git a/ts-perf/packages/commands/src/benchmark/measurelsp.ts b/ts-perf/packages/commands/src/benchmark/measurelsp.ts new file mode 100644 index 00000000..734c7485 --- /dev/null +++ b/ts-perf/packages/commands/src/benchmark/measurelsp.ts @@ -0,0 +1,324 @@ +import * as cp from "node:child_process"; +import fs from "node:fs"; +import path from "node:path"; +import { performance } from "node:perf_hooks"; +import process from "node:process"; +import { pathToFileURL } from "node:url"; + +import { + TSServerCommand, + TSServerCompletionInfoCommand, + TSServerConfig, + TSServerGeterrCommand, + TSServerNavtoCommand, + TSServerReferencesCommand, + TSServerUpdateOpenCommand, +} from "@ts-perf/api"; +import { CommandLine, CommandLineParseError } from "power-options"; +import * as rpc from "vscode-jsonrpc/node"; +import * as protocol from "vscode-languageserver-protocol"; + +main().catch(e => { + console.error(e); + process.exit(2); +}); + +interface CLIOpts { + lsp: string; + commands: string; + suite: string; + extended?: boolean; +} + +async function main() { + const cli = new CommandLine({ + auto: true, + options: { + help: { + shortName: "h", + alias: ["?"], + help: true, + }, + lsp: { + shortName: "l", + type: "string", + required: true, + description: "Path to the LSP server executable (e.g. './built/local/tsgo')", + validate: validatePath, + }, + commands: { + shortName: "c", + type: "string", + required: true, + description: "Path to a json file that configures the tsserver commands", + validate: validatePath, + }, + suite: { + shortName: "s", + type: "string", + required: true, + description: "Path to root location for test suites (e.g. './internal/cases/perf/solutions')", + validate: validatePath, + }, + extended: { + type: "boolean", + description: "If the scenario declares optional (aka extended) requests, run those as well", + }, + }, + exec: ({ options }) => runPerf(options), + }); + await cli.parseAndExecute(process.argv.slice(2), undefined); +} + +function validatePath(value: string, arg: string) { + if (!fs.existsSync(value)) { + throw new CommandLineParseError(`Option '${arg}' path not found: '${value}'.`); + } +} + +function filePathToUri(filePath: string): string { + return pathToFileURL(filePath).toString(); +} + +function getLanguageId(filePath: string): string { + const ext = path.extname(filePath).toLowerCase(); + switch (ext) { + case ".ts": + case ".mts": + case ".cts": + return "typescript"; + case ".js": + case ".mjs": + case ".cjs": + return "javascript"; + case ".tsx": + return "typescriptreact"; + case ".jsx": + return "javascriptreact"; + default: + return "typescript"; + } +} + +async function runPerf(options: CLIOpts) { + const config: TSServerConfig = + JSON.parse(await fs.promises.readFile(options.commands, { encoding: "utf-8" })).tsserverConfig; + const solution = path.resolve(path.join(options.suite, config.solution)); + const lspServerPath = path.resolve(options.lsp); + // Needed for excludedDirectories + process.chdir(solution); + + const serverArgs: string[] = ["--lsp", "--stdio"]; + + const serverProc = cp.spawn(lspServerPath, serverArgs, { + stdio: ["pipe", "pipe", "ignore"], + }); + + const connection = rpc.createMessageConnection( + new rpc.StreamMessageReader(serverProc.stdout!), + new rpc.StreamMessageWriter(serverProc.stdin!), + ); + + // Handle any server-to-client requests (e.g. client/registerCapability) + connection.onRequest((_method, _params) => { + return null; + }); + + connection.listen(); + + serverProc.on("exit", code => console.log(code ? `Exited with code ${code}` : `Terminated`)); + + // seq tracks request numbering; starts at 1 for initialize (analogous to configure in tsserver) + let seq = 1; + + try { + // Initialize the LSP server (analogous to the configure message in tsserver) + const solutionUri = filePathToUri(solution); + await connection.sendRequest(protocol.InitializeRequest.method, { + processId: process.pid, + capabilities: { + textDocument: { + completion: { + completionItem: { + snippetSupport: true, + insertReplaceSupport: true, + resolveSupport: { + properties: ["documentation", "detail", "additionalTextEdits"], + }, + commitCharactersSupport: true, + deprecatedSupport: true, + preselectSupport: true, + labelDetailsSupport: true, + }, + contextSupport: true, + }, + definition: { linkSupport: true }, + references: {}, + documentSymbol: { hierarchicalDocumentSymbolSupport: true }, + foldingRange: {}, + hover: {}, + diagnostic: { relatedDocumentSupport: true }, + implementation: { linkSupport: true }, + typeDefinition: { linkSupport: true }, + }, + workspace: { + symbol: {}, + }, + }, + rootUri: solutionUri, + } as protocol.InitializeParams); + + await connection.sendNotification(protocol.InitializedNotification.method, {}); + + // Account for initialize so command numbering matches measuretsserver.ts output + seq++; + + // Check if the canonical (non-extended) commands in the config are correct + if (config.commands[0].commandName !== "updateOpen") { + throw new Error(`Expected command 0 to be 'updateOpen', got ${config.commands[0].commandName}`); + } + if (config.commands[1].commandName !== "geterr") { + throw new Error(`Expected command 1 to be 'geterr', got ${config.commands[1].commandName}`); + } + if (config.commands[2].commandName !== "references") { + throw new Error(`Expected command 2 to be 'references', got ${config.commands[2].commandName}`); + } + if (config.commands[3].commandName !== "navto") { + throw new Error(`Expected command 3 to be 'navto', got ${config.commands[3].commandName}`); + } + if (config.commands[4].commandName !== "completionInfo") { + throw new Error(`Expected command 4 to be 'completionInfo', got ${config.commands[4].commandName}`); + } + + const maxCommands = options.extended ? config.commands.length : 5; + for (let i = 0; i < maxCommands; i++) { + const command = config.commands[i]; + if (command) { + await runCommand(command, seq++); + } + } + } + finally { + // Shut down the LSP server + try { + await connection.sendRequest(protocol.ShutdownRequest.method); + await connection.sendNotification(protocol.ExitNotification.method); + } + catch { + // Server may have already exited + } + connection.dispose(); + } + + async function runCommand(command: TSServerCommand, seq: number): Promise { + let time: number; + switch (command.commandName) { + case "updateOpen": + time = await updateOpen(command, seq); + break; + case "geterr": + time = await geterr(command, seq); + break; + case "references": + time = await references(command, seq); + break; + case "navto": + time = await navto(command, seq); + break; + case "completionInfo": + time = await completionInfo(command, seq); + break; + default: + throw new Error(`Could not recognize command '${(command as any).commandName}'.`); + } + console.log(`Req ${seq - 1} - ${command.commandName}: ${time}`); + } + + async function updateOpen(command: TSServerUpdateOpenCommand, _seq: number): Promise { + // Read file contents before timing (same as measuretsserver.ts) + const openFiles = await Promise.all(command.args.map(async fileArg => { + const file = path.join(solution, fileArg.file); + return { + uri: filePathToUri(file), + content: await fs.promises.readFile(file, { encoding: "utf-8" }), + languageId: getLanguageId(file), + }; + })); + + const start = performance.now(); + for (const openFile of openFiles) { + await connection.sendNotification(protocol.DidOpenTextDocumentNotification.method, { + textDocument: { + uri: openFile.uri, + languageId: openFile.languageId, + version: 1, + text: openFile.content, + }, + } as protocol.DidOpenTextDocumentParams); + } + const end = performance.now(); + return Math.round(end - start); + } + + async function geterr(command: TSServerGeterrCommand, _seq: number): Promise { + const files = command.args.map(f => path.join(solution, f)); + const start = performance.now(); + for (const file of files) { + const fileUri = filePathToUri(file); + await connection.sendRequest(protocol.DocumentDiagnosticRequest.method, { + textDocument: { uri: fileUri }, + } as protocol.DocumentDiagnosticParams); + } + const end = performance.now(); + return Math.round(end - start); + } + + async function references(command: TSServerReferencesCommand, _seq: number): Promise { + const file = path.join(solution, command.args.file); + const fileUri = filePathToUri(file); + const start = performance.now(); + await connection.sendRequest(protocol.ReferencesRequest.method, { + textDocument: { uri: fileUri }, + position: { + line: command.args.line, + character: command.args.offset, + }, + context: { includeDeclaration: true }, + } as protocol.ReferenceParams); + const end = performance.now(); + return Math.round(end - start); + } + + async function navto(command: TSServerNavtoCommand, _seq: number): Promise { + const start = performance.now(); + await connection.sendRequest(protocol.WorkspaceSymbolRequest.method, { + query: command.args.searchValue, + } as protocol.WorkspaceSymbolParams); + const end = performance.now(); + return Math.round(end - start); + } + + async function completionInfo(command: TSServerCompletionInfoCommand, seq: number): Promise { + const file = path.join(solution, command.args.file); + const fileUri = filePathToUri(file); + const start = performance.now(); + const completions = await connection.sendRequest( + protocol.CompletionRequest.method, + { + textDocument: { uri: fileUri }, + position: { + line: command.args.line, + character: command.args.offset, + }, + } as protocol.CompletionParams, + ); + const end = performance.now(); + const count = completions + ? Array.isArray(completions) + ? completions.length + : completions.items?.length ?? -1e6 + : -1e6; + console.log(`Req ${seq - 1} - ${command.commandName} count: ${count}`); + return Math.round(end - start); + } +} diff --git a/ts-perf/packages/commands/src/benchmark/print/console/benchmark.ts b/ts-perf/packages/commands/src/benchmark/print/console/benchmark.ts index 2252fa4c..0cd63825 100644 --- a/ts-perf/packages/commands/src/benchmark/print/console/benchmark.ts +++ b/ts-perf/packages/commands/src/benchmark/print/console/benchmark.ts @@ -26,7 +26,19 @@ export function printBenchmark(benchmark: Benchmark, options: BenchmarkOptions, rowStyles: [ "*", { className: "group header", border: Border.single.updateFrom({ top: "double" }) }, - { className: "body", match: (x: MeasurementPivot) => x.metric === "Parse Time", border: { top: "single" } }, + { + className: "body", + match: (() => { + let alreadyMatched = false; + return (x: MeasurementPivot) => { + if (alreadyMatched || (x.metric !== "Config Time" && x.metric !== "Parse Time")) { + return false; + } + return alreadyMatched = true; + }; + })(), + border: { top: "single" }, + }, { className: "body", match: (x: MeasurementPivot) => x.metric === "Total Time", border: { top: "single" } }, { className: "body", diff --git a/ts-perf/packages/commands/src/benchmark/print/console/comparison.ts b/ts-perf/packages/commands/src/benchmark/print/console/comparison.ts index c79473fe..7353f870 100644 --- a/ts-perf/packages/commands/src/benchmark/print/console/comparison.ts +++ b/ts-perf/packages/commands/src/benchmark/print/console/comparison.ts @@ -104,7 +104,15 @@ export function printComparison( }, { className: "body", - match: (x: MeasurementComparisonPivot) => x.metric === "Parse Time", + match: (() => { + let alreadyMatched = false; + return (x: MeasurementComparisonPivot) => { + if (alreadyMatched || (x.metric !== "Config Time" && x.metric !== "Parse Time")) { + return false; + } + return alreadyMatched = true; + }; + })(), border: { top: "single" }, }, {