[GH-ISSUE #7616] [Bug] Testing guide undercounts Linux lanes consuming the shared build artifact #4548

Open
opened 2026-10-31 00:50:41 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @coygeek on GitHub (Oct 27, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/7616

Before submitting

  • I searched the open and closed issues for a related report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Area

Documentation

Observed behavior

A maintainer reading the testing guide's build-cache explanation is told that eight Linux real-system lanes reuse the current workflow run's build artifact. A read-only comparison of the CI configuration instead finds ten Linux reusable provider workflow calls passing that artifact through to the download action.

This is a source-only documentation finding. I ran the static comparison below twice with the same counts; I did not execute a GitHub Actions workflow or measure cache behavior.

Reproduction

  1. At the source revision below, print the relevant guide statements:

    rg -n -A1 'Eight Linux real-system|The nine automatic' docs/testing.md
    
  2. Run this read-only comparison from the repository root. It enumerates the reusable workflow calls that pass the shared artifact, checks their Linux runner labels, and checks that each forwards its artifact input to the shared cache action:

    python3 - <<'PY'
    from pathlib import Path
    import re
    ci = Path('.github/workflows/ci.yml').read_text()
    names = []
    for m in re.finditer(r'^  ([a-z_]+):\n(.*?)(?=^  [a-z_]+:|\Z)', ci, re.M | re.S):
        name, job = m.groups()
        if 'build_cache_artifact: rea-build-cache' not in job:
            continue
        workflow = re.search(r'uses: (\./\.github/workflows/[^\n]+)', job).group(1)
        text = Path(workflow).read_text()
        runners = re.findall(r'runs-on: (.+)', text)
        assert runners and all(r.startswith('ubuntu') for r in runners)
        assert re.search(r'uses: \./\.github/actions/portable-build-cache\s+with:\s+build_cache_artifact: \$\{\{ inputs.build_cache_artifact \}\}', text)
        names.append(name)
    print('Linux workflow calls consuming rea-build-cache:', len(names))
    print(', '.join(names))
    print('Later named subset excluding apk_signature:', len([n for n in names if n != 'apk_signature']))
    PY
    

Both comparison runs returned ten Linux workflow calls, while the first guide statement says eight.

Expected behavior

The guide's broad description of Linux lanes reusing the current-run build artifact should match the configured consumers. At this revision there are ten such reusable workflow calls. An accurate inventory or wording without a fixed count would let maintainers understand the current topology.

Impact and scope

P3 documentation wording defect: the explanatory count understates the configured Linux consumers by two. There is no demonstrated failure of builds, artifact downloads, provider verification, or cache reuse. Maintainers can inspect the workflow definitions to obtain the current inventory.

The later sentence names nine specific lanes, excluding APK signatures, and is accurate for that subset. This report does not treat that sentence as an additional defect. Counts here refer to reusable provider workflow calls, rather than expanded matrix job instances.

REA version

Exact output of node scripts/rea.mjs --version:

6.8.0

Source revision: 65f1c447344a423fa2785847dbcea1e9a9e2454a.

Runtime and platform

Node v24.22.1, macOS 27.0.1, arm64. Verification used Python 3 for read-only source comparison; no provider or GUI application was started.

Interface

Other

Earliest failure stage

Unknown

Relevant output or evidence

The comparison command above returned:

Linux workflow calls consuming rea-build-cache: 10
browser, binary_layout, evm, apk_signature, javascript_recovery, recorded_crash, web_network, web_runtime, web_source_map, agentenv
Later named subset excluding apk_signature: 9

Source references at the stated revision:

  • docs/testing.md:926-927 states that eight Linux real-system lanes reuse the current-run artifact. Its surrounding paragraph describes current cache behavior, without naming a smaller subset or a historical run.
  • .github/workflows/ci.yml:988-1086 defines the ten reusable workflow calls counted above, each with build_cache_artifact: rea-build-cache and dependencies on classification, static checks, and the build. The build condition at lines 383-395 covers all ten selection flags.
  • The ten called workflow files declare Ubuntu runners and forward the input to the shared cache action. The assertions in the comparison check both facts directly.
  • .github/actions/portable-build-cache/action.yml:13-18 downloads the supplied artifact into .turbo/cache/ when the input is nonempty.
  • docs/testing.md:1834-1836 names nine consumers: browser, binary-layout, EVM, JavaScript-recovery, recorded-crash, three web lanes and environment-bundle. That narrower enumeration accounts for nine of the ten calls and does not contradict its own scope.
  • .github/workflows/real-recorded-crash.yml:41-47 expands one provider lane over two container images; the count above deliberately uses workflow calls rather than expanded jobs.

Analysis or suspected cause

The broad Linux count has drifted from the current CI configuration. Both an interpretation limited to Linux and an interpretation counting reusable provider calls still yield ten. No source history was examined to determine which later change made the count stale.

Originally created by @coygeek on GitHub (Oct 27, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/7616 ### Before submitting - [x] I searched the open and closed issues for a related report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Area Documentation ### Observed behavior A maintainer reading the testing guide's build-cache explanation is told that eight Linux real-system lanes reuse the current workflow run's build artifact. A read-only comparison of the CI configuration instead finds ten Linux reusable provider workflow calls passing that artifact through to the download action. This is a source-only documentation finding. I ran the static comparison below twice with the same counts; I did not execute a GitHub Actions workflow or measure cache behavior. ### Reproduction 1. At the source revision below, print the relevant guide statements: ```sh rg -n -A1 'Eight Linux real-system|The nine automatic' docs/testing.md ``` 2. Run this read-only comparison from the repository root. It enumerates the reusable workflow calls that pass the shared artifact, checks their Linux runner labels, and checks that each forwards its artifact input to the shared cache action: ```sh python3 - <<'PY' from pathlib import Path import re ci = Path('.github/workflows/ci.yml').read_text() names = [] for m in re.finditer(r'^ ([a-z_]+):\n(.*?)(?=^ [a-z_]+:|\Z)', ci, re.M | re.S): name, job = m.groups() if 'build_cache_artifact: rea-build-cache' not in job: continue workflow = re.search(r'uses: (\./\.github/workflows/[^\n]+)', job).group(1) text = Path(workflow).read_text() runners = re.findall(r'runs-on: (.+)', text) assert runners and all(r.startswith('ubuntu') for r in runners) assert re.search(r'uses: \./\.github/actions/portable-build-cache\s+with:\s+build_cache_artifact: \$\{\{ inputs.build_cache_artifact \}\}', text) names.append(name) print('Linux workflow calls consuming rea-build-cache:', len(names)) print(', '.join(names)) print('Later named subset excluding apk_signature:', len([n for n in names if n != 'apk_signature'])) PY ``` Both comparison runs returned ten Linux workflow calls, while the first guide statement says eight. ### Expected behavior The guide's broad description of Linux lanes reusing the current-run build artifact should match the configured consumers. At this revision there are ten such reusable workflow calls. An accurate inventory or wording without a fixed count would let maintainers understand the current topology. ### Impact and scope P3 documentation wording defect: the explanatory count understates the configured Linux consumers by two. There is no demonstrated failure of builds, artifact downloads, provider verification, or cache reuse. Maintainers can inspect the workflow definitions to obtain the current inventory. The later sentence names nine specific lanes, excluding APK signatures, and is accurate for that subset. This report does not treat that sentence as an additional defect. Counts here refer to reusable provider workflow calls, rather than expanded matrix job instances. ### REA version Exact output of `node scripts/rea.mjs --version`: ```text 6.8.0 ``` Source revision: `65f1c447344a423fa2785847dbcea1e9a9e2454a`. ### Runtime and platform Node v24.22.1, macOS 27.0.1, arm64. Verification used Python 3 for read-only source comparison; no provider or GUI application was started. ### Interface Other ### Earliest failure stage Unknown ### Relevant output or evidence The comparison command above returned: ```text Linux workflow calls consuming rea-build-cache: 10 browser, binary_layout, evm, apk_signature, javascript_recovery, recorded_crash, web_network, web_runtime, web_source_map, agentenv Later named subset excluding apk_signature: 9 ``` Source references at the stated revision: - `docs/testing.md:926-927` states that eight Linux real-system lanes reuse the current-run artifact. Its surrounding paragraph describes current cache behavior, without naming a smaller subset or a historical run. - `.github/workflows/ci.yml:988-1086` defines the ten reusable workflow calls counted above, each with `build_cache_artifact: rea-build-cache` and dependencies on classification, static checks, and the build. The build condition at lines 383-395 covers all ten selection flags. - The ten called workflow files declare Ubuntu runners and forward the input to the shared cache action. The assertions in the comparison check both facts directly. - `.github/actions/portable-build-cache/action.yml:13-18` downloads the supplied artifact into `.turbo/cache/` when the input is nonempty. - `docs/testing.md:1834-1836` names nine consumers: browser, binary-layout, EVM, JavaScript-recovery, recorded-crash, three web lanes and environment-bundle. That narrower enumeration accounts for nine of the ten calls and does not contradict its own scope. - `.github/workflows/real-recorded-crash.yml:41-47` expands one provider lane over two container images; the count above deliberately uses workflow calls rather than expanded jobs. ### Analysis or suspected cause The broad Linux count has drifted from the current CI configuration. Both an interpretation limited to Linux and an interpretation counting reusable provider calls still yield ten. No source history was examined to determine which later change made the count stale.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4548
No description provided.