Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build/.cachesalt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2026-08-05T23:47:14.698Z
2026-08-20T17:32:07.583Z
10 changes: 10 additions & 0 deletions build/azure-pipelines/alpine/product-build-alpine-node-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ jobs:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication

- template: ../common/foundry-local.yml@self
parameters:
phase: prepare
onlyOnNodeModulesCacheMiss: true

- task: Docker@1
inputs:
azureSubscriptionEndpoint: vscode
Expand Down Expand Up @@ -128,6 +133,11 @@ jobs:
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))

- template: ../common/foundry-local.yml@self
parameters:
phase: install
Comment thread
rzhao271 marked this conversation as resolved.
onlyOnNodeModulesCacheMiss: true

- script: node build/azure-pipelines/common/checkNativeOptionalDeps.ts
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Verify native optional dependency binaries
Expand Down
9 changes: 9 additions & 0 deletions build/azure-pipelines/common/foundry-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,24 @@ parameters:
values:
- prepare
- install
- name: onlyOnNodeModulesCacheMiss
type: boolean
default: false

steps:
- ${{ if eq(parameters.phase, 'prepare') }}:
- task: NuGetAuthenticate@1
${{ if eq(parameters.onlyOnNodeModulesCacheMiss, true) }}:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NuGet Authentication

- script: node build/azure-pipelines/common/disableFoundryLocalInstall.ts
${{ if eq(parameters.onlyOnNodeModulesCacheMiss, true) }}:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Disable Foundry Local Native Install

- ${{ if eq(parameters.phase, 'install') }}:
- script: node build/azure-pipelines/common/foundryLocalInstall.ts
${{ if eq(parameters.onlyOnNodeModulesCacheMiss, true) }}:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Install Foundry Local Native Dependencies
10 changes: 10 additions & 0 deletions build/azure-pipelines/darwin/product-build-darwin-node-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ jobs:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Setup PyPI Authentication

- template: ../common/foundry-local.yml@self
parameters:
phase: prepare
onlyOnNodeModulesCacheMiss: true

- script: |
set -e
c++ --version
Expand Down Expand Up @@ -102,6 +107,11 @@ jobs:
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))

- template: ../common/foundry-local.yml@self
parameters:
phase: install
Comment thread
rzhao271 marked this conversation as resolved.
onlyOnNodeModulesCacheMiss: true

- script: node build/azure-pipelines/common/checkNativeOptionalDeps.ts
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Verify native optional dependency binaries
Expand Down
10 changes: 10 additions & 0 deletions build/azure-pipelines/linux/product-build-linux-node-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,11 @@ jobs:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication

- template: ../common/foundry-local.yml@self
parameters:
phase: prepare
onlyOnNodeModulesCacheMiss: true

- script: |
set -e

Expand Down Expand Up @@ -142,6 +147,11 @@ jobs:
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))

- template: ../common/foundry-local.yml@self
parameters:
phase: install
Comment thread
rzhao271 marked this conversation as resolved.
onlyOnNodeModulesCacheMiss: true

- script: node build/azure-pipelines/common/checkNativeOptionalDeps.ts
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Verify native optional dependency binaries
Expand Down
10 changes: 10 additions & 0 deletions build/azure-pipelines/web/product-build-web-node-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,11 @@ jobs:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication

- template: ../common/foundry-local.yml@self
parameters:
phase: prepare
onlyOnNodeModulesCacheMiss: true

- script: |
set -e
./build/azure-pipelines/linux/apt-retry.sh sudo apt-get update
Expand All @@ -79,6 +84,11 @@ jobs:
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))

- template: ../common/foundry-local.yml@self
parameters:
phase: install
Comment thread
rzhao271 marked this conversation as resolved.
onlyOnNodeModulesCacheMiss: true

- script: node build/azure-pipelines/common/checkNativeOptionalDeps.ts
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Verify native optional dependency binaries
Expand Down
10 changes: 10 additions & 0 deletions build/azure-pipelines/win32/product-build-win32-node-modules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@ jobs:
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'), ne(variables['NPM_REGISTRY'], 'none'))
displayName: Setup NPM Authentication

- template: ../common/foundry-local.yml@self
parameters:
phase: prepare
onlyOnNodeModulesCacheMiss: true

- powershell: |
. build/azure-pipelines/win32/exec.ps1
$ErrorActionPreference = "Stop"
Expand All @@ -85,6 +90,11 @@ jobs:
displayName: Install dependencies
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))

- template: ../common/foundry-local.yml@self
parameters:
phase: install
Comment thread
rzhao271 marked this conversation as resolved.
onlyOnNodeModulesCacheMiss: true

- powershell: node build/azure-pipelines/common/checkNativeOptionalDeps.ts
condition: and(succeeded(), ne(variables.NODE_MODULES_RESTORED, 'true'))
displayName: Verify native optional dependency binaries
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ import * as assert from 'assert';
import { McpStdioStateHandler } from '../../node/mcpStdioStateHandler.js';
import { isWindows } from '../../../../../base/common/platform.js';

const GRACE_TIME = 100;
// Must be comfortably larger than the time it takes to spawn the helper shell
// script that signals the process tree, otherwise SIGKILL can race SIGTERM.
const GRACE_TIME = 1000;

suite('McpStdioStateHandler', () => {
const store = ensureNoDisposablesAreLeakedInTestSuite();
Expand Down Expand Up @@ -75,7 +77,9 @@ suite('McpStdioStateHandler', () => {
});
}

test('sigkill after grace', async () => {
test('sigkill after grace', async function () {
this.timeout(GRACE_TIME * 10);

const { handler, output } = run(`
setInterval(() => {}, 1000);
process.stdin.on('end', () => process.stdout.write('stdin ended\\n'));
Expand Down
Loading