Skip to content

Commit 62d8b24

Browse files
fix: add comprehensive port cleanup before test runs
- Create kill-all-ports.cjs script for both federated-css projects - Run port cleanup before both legacy:e2e:ci and e2e:ci tests - Increase delay to 2s when cleaning ports before Next.js servers - Add logging to track port cleanup operations - Add kill-port dependency to federated-css-react-ssr This ensures all ports are properly cleaned up between webpack and rspack test runs in CI 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 38a7bf3 commit 62d8b24

File tree

5 files changed

+60
-3
lines changed

5 files changed

+60
-3
lines changed

federated-css-react-ssr/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
"build": "pnpm --parallel --filter federated-css-react-ssr_* build",
99
"start": "pnpm --parallel --filter federated-css-react-ssr_* start",
1010
"e2e": "playwright test",
11-
"e2e:ci": "playwright test --reporter=list",
11+
"e2e:ci": "node scripts/kill-all-ports.cjs && playwright test --reporter=list",
12+
"legacy:e2e:ci": "node scripts/kill-all-ports.cjs && playwright test --reporter=list",
1213
"e2e:headed": "playwright test --headed"
1314
},
1415
"devDependencies": {
1516
"@playwright/test": "^1.54.2",
17+
"kill-port": "2.0.1",
1618
"react-jss": "10.10.0",
1719
"wait-on": "7.2.0"
1820
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
const kill = require('kill-port');
2+
3+
async function killAllPorts() {
4+
const exposePorts = [3001, 3002, 3003, 3004, 3005, 3006, 3007];
5+
const shellPorts = [4000, 4001, 4002, 4003, 4004, 4005];
6+
7+
const allPorts = [...exposePorts, ...shellPorts];
8+
9+
console.log('[kill-all-ports] Killing all ports...');
10+
11+
for (const port of allPorts) {
12+
try {
13+
await kill(port, 'tcp');
14+
console.log(`[kill-all-ports] Killed port ${port}`);
15+
} catch (e) {
16+
// Port might not be in use, ignore
17+
}
18+
}
19+
20+
console.log('[kill-all-ports] All ports killed.');
21+
}
22+
23+
killAllPorts().catch(err => {
24+
console.error('[kill-all-ports] Error:', err);
25+
process.exit(1);
26+
});

federated-css/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"build": "pnpm --filter federated-css-mono_* --parallel build",
88
"clean": "pnpm --filter federated-css-mono_* --parallel clean",
99
"start:all": "pnpm --filter federated-css-mono_* --parallel start",
10-
"e2e:ci": "playwright test --reporter=list",
10+
"e2e:ci": "node scripts/kill-all-ports.cjs && playwright test --reporter=list",
11+
"legacy:e2e:ci": "node scripts/kill-all-ports.cjs && playwright test --reporter=list",
1112
"start:expose-all": "pnpm --filter federated-css-mono_expose-* --parallel start",
1213
"start:react:css-styled-component": "pnpm --filter federated-css-mono_expose-* --filter @federated-css/css-and-styled-component --parallel start",
1314
"start:react:less-scss": "pnpm --filter federated-css-mono_expose-* --filter @federated-css/less-and-scss --parallel start",
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const kill = require('kill-port');
2+
3+
async function killAllPorts() {
4+
const reactConsumerPorts = [3001, 3002, 3003, 3004, 3005, 3006, 3007];
5+
const exposePorts = [4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007];
6+
const nextConsumerPorts = [8081, 8082, 8083, 8084];
7+
8+
const allPorts = [...reactConsumerPorts, ...exposePorts, ...nextConsumerPorts];
9+
10+
console.log('[kill-all-ports] Killing all ports...');
11+
12+
for (const port of allPorts) {
13+
try {
14+
await kill(port, 'tcp');
15+
console.log(`[kill-all-ports] Killed port ${port}`);
16+
} catch (e) {
17+
// Port might not be in use, ignore
18+
}
19+
}
20+
21+
console.log('[kill-all-ports] All ports killed.');
22+
}
23+
24+
killAllPorts().catch(err => {
25+
console.error('[kill-all-ports] Error:', err);
26+
process.exit(1);
27+
});

federated-css/scripts/start-all.cjs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ async function main() {
120120
console.log('[federated-css] starting Next consumers (sequential dev servers)...');
121121
for (const { dir, port } of nextConsumers) {
122122
// Extra cleanup for each Next.js port in case previous one didn't clean up properly
123+
console.log(`[federated-css] cleaning up port ${port} before starting ${dir}...`);
123124
await killPort(port);
124-
await new Promise(resolve => setTimeout(resolve, 500)); // Small delay to ensure port is released
125+
await new Promise(resolve => setTimeout(resolve, 2000)); // Longer delay to ensure port is released
125126
const cwd = path.join('consumers-nextjs', dir);
126127
const p = run('pnpm', ['-C', cwd, 'run', 'start']);
127128
procs.push(p);

0 commit comments

Comments
 (0)