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 }}