name: Real historical web network captures on: workflow_dispatch: workflow_call: inputs: build_cache_artifact: description: Portable build cache artifact from the calling CI run. required: false type: string default: "" remote_cache_write: description: Trusted release qualification may publish the remote cache. required: false type: boolean default: false secrets: TURBO_TOKEN: description: Remote cache token. Only trusted callers pass it. required: false permissions: contents: read env: HUSKY: "0" # A called workflow sees the caller event, so workflow_call is not an event # name here. Writes when remote_cache_write is set, or on the default branch # for push, schedule, and manual dispatch. Open pull requests stay empty-token # and use the local cache only. TURBO_TOKEN: "${{ (inputs.remote_cache_write == true || (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'))) && secrets.TURBO_TOKEN || '' }}" TURBO_TEAM: ${{ vars.TURBO_TEAM }} TURBO_CACHE: "${{ (inputs.remote_cache_write == true || (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'))) && 'local:rw,remote:rw' || 'local:rw' }}" NODE_OPTIONS: --max-old-space-size=768 jobs: real-web-network-captures: 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 - name: Use pinned package manager run: npm install --global npm@11.16.0 - run: npm ci - uses: ./.github/actions/portable-build-cache with: build_cache_artifact: ${{ inputs.build_cache_artifact }} - name: Acquire fixed upstream native profile in runner temporary storage shell: bash run: | capture_tool_root="${RUNNER_TEMP}/rea-mitmproxy-12.2.3" mkdir -p "${capture_tool_root}" curl --fail --location --retry 3 --max-time 180 \ https://downloads.mitmproxy.org/12.2.3/mitmproxy-12.2.3-linux-x86_64.tar.gz \ --output "${capture_tool_root}/mitmproxy.tar.gz" echo '2e95286b618fa6fd33e5e62a78c2e5112571d85f42ec2bac29b97ee242bdb5c5 mitmproxy.tar.gz' \ | (cd "${capture_tool_root}" && sha256sum --check --strict) tar -xzf "${capture_tool_root}/mitmproxy.tar.gz" -C "${capture_tool_root}" echo "REA_MITMDUMP_COMMAND=${capture_tool_root}/mitmdump" >> "${GITHUB_ENV}" - name: Verify upstream producer fixtures through public CLI and MCP run: npm run verify:web:network-captures