From 29eca60a960bb26964b8b52a5add3c12f4ba49b8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 10:16:23 +0000 Subject: [PATCH 1/4] Initial plan From fe5c57045721d93f382fe19a4496fe1b3c2d2f85 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 10:20:35 +0000 Subject: [PATCH 2/4] Use macos-13 instead of macos-latest for faster CI builds Co-authored-by: Janpot <2109932+Janpot@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1101714ac765bd..bc490f0c0f9dd6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, windows-latest, ubuntu-latest] + os: [macos-13, windows-latest, ubuntu-latest] steps: - run: echo "${{ github.actor }}" - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From 043564e0fd444a2d6a089912eca241042c5f932b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 10:34:28 +0000 Subject: [PATCH 3/4] Revert "Use macos-13 instead of macos-latest for faster CI builds" The issue is not Rosetta 2 emulation overhead. Investigation shows the build is stalling/hanging with orphaned Node.js processes on GitHub's macOS runners, which requires different diagnosis. Co-authored-by: Janpot <2109932+Janpot@users.noreply.github.com> --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bc490f0c0f9dd6..1101714ac765bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-13, windows-latest, ubuntu-latest] + os: [macos-latest, windows-latest, ubuntu-latest] steps: - run: echo "${{ github.actor }}" - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From 3ccdc1643fd0b05504db6d7a6bb8bddc27851aff Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 4 Nov 2025 11:13:39 +0000 Subject: [PATCH 4/4] Add process monitoring diagnostics for macOS CI builds Adds background process monitoring that runs ps every 30 seconds during the build on macOS to diagnose hanging issues. The monitor tracks node/tsc/lerna processes and logs output, which is displayed at the end of the job to help identify when and where processes get orphaned. Co-authored-by: Janpot <2109932+Janpot@users.noreply.github.com> --- .github/workflows/ci.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1101714ac765bd..3e479dca20643d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -41,9 +41,36 @@ jobs: node-version: '22.18.0' cache: 'pnpm' # https://github.com/actions/setup-node/blob/main/docs/advanced-usage.md#caching-packages-dependencies - run: pnpm install + - name: Start process monitoring (macOS only) + if: runner.os == 'macOS' + run: | + # Start background process monitoring for diagnostics + ( + echo "=== Process monitoring started at $(date) ===" + while true; do + echo "--- Process tree at $(date) ---" + ps -ef | grep -E "(node|tsc|lerna)" | grep -v grep || echo "No matching processes" + echo "" + sleep 30 + done + ) > /tmp/process-monitor.log 2>&1 & + echo $! > /tmp/monitor-pid.txt + echo "Process monitor started with PID $(cat /tmp/monitor-pid.txt)" - run: pnpm build:ci env: NODE_OPTIONS: --max_old_space_size=6144 + - name: Stop process monitoring and upload logs (macOS only) + if: always() && runner.os == 'macOS' + run: | + if [ -f /tmp/monitor-pid.txt ]; then + MONITOR_PID=$(cat /tmp/monitor-pid.txt) + kill $MONITOR_PID 2>/dev/null || true + echo "Process monitor stopped" + if [ -f /tmp/process-monitor.log ]; then + echo "=== Last 100 lines of process monitor log ===" + tail -100 /tmp/process-monitor.log + fi + fi - run: pnpm release:changelog env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}