name: Real packet capture on: workflow_dispatch: pull_request: paths: - "tests/boundary/captures/**" - "tests/boundary/cli/captureCleanup.test.ts" - "tests/boundary/mcp/packetCaptureMcp.test.ts" - "src/captures/**" - "src/pcap/**" - "src/domain/pcap/**" - "src/domain/analysisView/pcapCaptureView.ts" - "src/application/pcap/**" - "src/contracts/pcap/**" - "src/server/registerPcapTools.ts" - "tests/boundary/pcap/**" - "src/domain/captures/**" - "src/application/captures/**" - "src/contracts/captures/**" - "src/composition/captures.ts" - "src/cli/captureCommands.ts" - "src/server/registerCaptureTools.ts" - "scripts/verify-packet-capture.mjs" - ".github/workflows/real-packet-capture.yml" permissions: contents: read env: HUSKY: "0" # Writes only on the default branch for push, schedule, manual dispatch, # and workflow_call. Pull requests get an empty token and remote read-only mode. TURBO_TOKEN: "${{ (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call')) && secrets.TURBO_TOKEN || '' }}" TURBO_TEAM: ${{ vars.TURBO_TEAM }} TURBO_CACHE: "${{ (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call')) && 'local:rw,remote:rw' || 'local:rw,remote:r' }}" concurrency: group: real-packet-capture-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: tshark: runs-on: ubuntu-24.04 timeout-minutes: 15 steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: .nvmrc - name: Cache npm package downloads id: npm-cache uses: ./.github/actions/npm-cache - run: sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get install -y tshark util-linux python3 - run: npm ci - run: npm run build:cached - run: npm run test:focused -- tests/boundary/captures/fieldDiscovery.test.ts src/process/LinuxResourceLimits.test.ts tests/boundary/captures/captureProvider.test.ts tests/boundary/captures/captureDescriptorCleanup.test.ts tests/boundary/pcap/pcapProvider.test.ts tests/boundary/pcap/pcapProviderCrossPlatform.test.ts tests/boundary/captures/resourceLimits.test.ts tests/boundary/captures/packetOutput.test.ts tests/boundary/mcp/packetCaptureMcp.test.ts tests/boundary/cli/captureCleanup.test.ts - run: node scripts/verify-packet-capture.mjs env: REA_TSHARK_COMMAND: /usr/bin/tshark REA_CAPINFOS_COMMAND: /usr/bin/capinfos