ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.1.0-rc0, 9.1.0-rc1025
    • Affects Version/s: None
    • Component/s: Bazel
    • None
    • Fully Compatible
    • Build OnDeck
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Extract and consolidate the container infrastructure from #63670 so the Windows action runner can use common helpers. This is roadmap step 10, based on master after #64054 merged.

      • `container_engine.py` selects Linux Docker engines and handles WSL startup/recovery while preserving native context and host routing. `container_mounts.py` owns action mount layout and input visibility checks.
      • `bazel/hermetic_container/container_paths.py` provides pure Windows destination and WSL source conversion for action containers, wrapper-hook volumes, and the standalone whole-command runner. Callers supply the mount prefix and destination drive-case policy; the standalone package includes the helper.
      • `container_action.py` supplies the common file lock for container startup, config publication, whole-command coordination, and Podman recovery. Config/recovery callers require a real lock; Windows contention retries remain shared. Linux/macOS wrappers and distro helpers also share name sanitization.
      • Shared preflight streams a NUL-separated path manifest through Docker's archive API, checks inputs in one detached probe, and reads an atomic result. Upload, polling, and cleanup share the visibility deadline, avoiding Windows command-line limits and per-input Docker processes.
      • The macOS action wrapper adopts shared lifecycle/transport and rejects invisible inputs before executing tools. Bazel Python libraries declare the shared dependencies; regressions cover lock contention, platform path policies, standalone imports, manifest transport/deadlines, and output/exit-code replay.

      The cross build remains opt-in with existing environment names and mount layouts. Windows runner integration follows as the next dependent extraction; Docker/Podman selection and whole-command configuration retain their distinct caller policies. Native Windows validation remains pending.

            Assignee:
            Daniel Moody
            Reporter:
            Daniel Moody
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: