Skip to content

Commit c58ca22

Browse files
committed
fix: IPC handle is longer than 103 chars error in build
1 parent b3a73e4 commit c58ca22

4 files changed

Lines changed: 32 additions & 30 deletions

File tree

.github/workflows/pr-check.yml

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,7 @@ jobs:
152152
run: npm run compile-tests
153153

154154
- name: Configure Test Settings
155-
run: |
156-
mkdir -p .vscode-test/user-data/User
157-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
158-
shell: bash
155+
run: node build/setup-test-user-data.mjs
159156

160157
- name: Run Smoke Tests (Linux)
161158
if: runner.os == 'Linux'
@@ -245,10 +242,7 @@ jobs:
245242
run: npm run compile-tests
246243

247244
- name: Configure Test Settings
248-
run: |
249-
mkdir -p .vscode-test/user-data/User
250-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
251-
shell: bash
245+
run: node build/setup-test-user-data.mjs
252246

253247
- name: Run E2E Tests (Linux)
254248
if: runner.os == 'Linux'
@@ -338,10 +332,7 @@ jobs:
338332
run: npm run compile-tests
339333

340334
- name: Configure Test Settings
341-
run: |
342-
mkdir -p .vscode-test/user-data/User
343-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
344-
shell: bash
335+
run: node build/setup-test-user-data.mjs
345336

346337
- name: Run Integration Tests (Linux)
347338
if: runner.os == 'Linux'
@@ -388,10 +379,7 @@ jobs:
388379
run: npm run compile-tests
389380

390381
- name: Configure Test Settings
391-
run: |
392-
mkdir -p .vscode-test/user-data/User
393-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
394-
shell: bash
382+
run: node build/setup-test-user-data.mjs
395383

396384
- name: Run Integration Tests Multi-Root (Linux)
397385
if: runner.os == 'Linux'

.github/workflows/push-check.yml

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -153,10 +153,7 @@ jobs:
153153
run: npm run compile-tests
154154

155155
- name: Configure Test Settings
156-
run: |
157-
mkdir -p .vscode-test/user-data/User
158-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
159-
shell: bash
156+
run: node build/setup-test-user-data.mjs
160157

161158
- name: Run Smoke Tests (Linux)
162159
if: runner.os == 'Linux'
@@ -246,10 +243,7 @@ jobs:
246243
run: npm run compile-tests
247244

248245
- name: Configure Test Settings
249-
run: |
250-
mkdir -p .vscode-test/user-data/User
251-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
252-
shell: bash
246+
run: node build/setup-test-user-data.mjs
253247

254248
- name: Run E2E Tests (Linux)
255249
if: runner.os == 'Linux'
@@ -339,10 +333,7 @@ jobs:
339333
run: npm run compile-tests
340334

341335
- name: Configure Test Settings
342-
run: |
343-
mkdir -p .vscode-test/user-data/User
344-
echo '{"python.useEnvironmentsExtension": true}' > .vscode-test/user-data/User/settings.json
345-
shell: bash
336+
run: node build/setup-test-user-data.mjs
346337

347338
- name: Run Integration Tests (Linux)
348339
if: runner.os == 'Linux'

.vscode-test.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import { defineConfig } from '@vscode/test-cli';
2+
import * as os from 'os';
23
import * as path from 'path';
34

4-
// Explicit user data directory - ensures VS Code reads our settings.json
5-
const userDataDir = path.resolve('.vscode-test/user-data');
5+
// Keep this path short: macOS caps Unix-domain socket paths at 103 chars and
6+
// VS Code creates `<userDataDir>/<x.y>-main.sock`. An in-workspace location
7+
// (e.g. /Users/runner/work/<repo>/<repo>/.vscode-test/user-data) overflows.
8+
// Must match build/setup-test-user-data.mjs.
9+
const userDataDir = path.join(os.tmpdir(), 'vsct-ud');
610

711
export default defineConfig([
812
{

build/setup-test-user-data.mjs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Writes the VS Code test user-data settings.json to a short path under
2+
// os.tmpdir(). Used by CI to seed `python.useEnvironmentsExtension=true`.
3+
// `.vscode-test.mjs` MUST compute the same `userDataDir` so both sides agree.
4+
//
5+
// Why os.tmpdir(): macOS Unix-domain socket paths are capped at 103 chars.
6+
// VS Code creates `<userDataDir>/<x.y>-main.sock`, so an in-workspace path
7+
// like `/Users/runner/work/<repo>/<repo>/.vscode-test/user-data/...` overflows.
8+
import * as fs from 'fs';
9+
import * as os from 'os';
10+
import * as path from 'path';
11+
12+
const userDataDir = path.join(os.tmpdir(), 'vsct-ud');
13+
const userDir = path.join(userDataDir, 'User');
14+
fs.mkdirSync(userDir, { recursive: true });
15+
fs.writeFileSync(
16+
path.join(userDir, 'settings.json'),
17+
JSON.stringify({ 'python.useEnvironmentsExtension': true }) + '\n',
18+
);
19+
console.log(userDataDir);

0 commit comments

Comments
 (0)