Skip to content

[runner]: formalize opt-in self-hosted LV32/NI capability contract #1905

Description

@svelderrainruiz

Summary

Formalize a specialized, opt-in self-hosted runner capability contract for host-native LabVIEW 32-bit / NI-path lanes.

Why

The repo already has a generic self-hosted Windows contract, but the LV32/NI surfaces are still implicit and path-based. That makes host-native 32-bit execution useful but not governable.

We need a first-class capability contract so jobs can explicitly require the specialized host surface without making it the default execution surface for the repository.

Current State

  • generic self-hosted Windows jobs still route through labels like [self-hosted, Windows, X64]
  • host-native 32-bit / NI assumptions still live mostly in docs, path heuristics, and install expectations
  • template distribution work will eventually need an optional downstream capability expectation for VI History, but compare should publish the authoritative runner contract first

Goal

Define a specialized, opt-in runner capability for LV32/NI-path work that:

  • keeps hosted and generic self-hosted Windows as the default surfaces
  • makes LV32/NI-path requirements explicit and machine-readable
  • routes only the jobs that actually need the specialized host capability
  • adds health validation for the specialized host surface before jobs trust it

Likely Scope

  • document the specialized runner capability and labels
  • add a runner-label contract validator surface
  • add runner health validation for LV32/NI path availability
  • update only the workflows that truly require the specialized capability
  • keep the capability non-default and opt-in

Candidate Surfaces

  • docs/SELFHOSTED_CI_SETUP.md
  • docs/ENVIRONMENT.md
  • .github/actionlint.yaml
  • tools/Assert-RunnerLabelContract.ps1
  • selected workflows for VI History / host-native NI paths

Acceptance

  • the specialized LV32/NI runner capability is explicitly named and documented
  • the contract is validated in-repo
  • jobs that need it declare it explicitly
  • generic hosted/self-hosted jobs remain on their current default surfaces
  • no workflow silently depends on Program Files (x86) heuristics alone for LV32/NI execution

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions