Repository navigation
LabVIEW CI 4.20.0
Existing GitHub workflows can build or reuse a Windows LabVIEW worker and run one unit-test framework through standalone composite actions, without vendoring CI scripts or installing client configuration. Worker reuse hashes the resolved base digest, complete dependency context and build settings, and fails on registry or required dependency errors. Unit-test reports use the current runner and reject missing results, runner errors and empty or all-skipped runs, with hosted contract and Windows PowerShell regression coverage. LUnit tests now run in Linux workers as well as Windows, with per-platform reports and dashboard Run controls on GitHub and a native GitLab job. Linux runs retain framework autodetection, respect explicitly disabled tools, and fail visibly for missing tooling, runner errors, empty results or all-skipped tests. Report generation failures cannot publish partial output or produce a passing status. Other frameworks are identified as unsupported on Linux. The Linux driver isolates Python imports from client modules, Python environment paths and site startup hooks. The bundled LUnit CLI is upgraded to 1.7.1.32; rebuild shared and client Linux workers before use. Linux VIPM installs also preserve package revision suffixes so pinned dependencies resolve correctly. Published release notes and workflow summaries no longer claim that every new release automatically reaches clients on the major alias. Publication and stable or beta promotion remain separate; clients can opt into a new release using its immutable version tag. Channel movement and promotion requirements are unchanged. The reusable workflow now loads configuration from the canonical ni/LabVIEW-CI-CD-Toolkit repository at v4 and checks out capability tooling from that same repository. Missing or empty source.ref values, including a missing manifest, default to the v4 major alias that follows stable instead of v1-era tooling. Only source.ref selects the capability pin: quoted refs are supported, unrelated config and distribution refs are ignored, and malformed or unsupported source mappings produce a clear error. Explicit immutable pins fetch the exact release, including newer published releases outside stable. The config reader independently follows v4; publication alone does not promote stable or advance v4 to the new release. The ref resolver isolates Python imports from client-root modules, PYTHONPATH, and site packages so those modules cannot execute or forge the tooling ref. Browser reinstalls that keep settings now migrate the legacy snapshots-2 selection to the unified VI Snapshots capability, retaining its render workflows for the selected platforms. Snapshots remain selectable and revision scope is unchanged. Installers recognize the retired standalone render-image build workflow by its path and ownership markers: command-line installs remove it, while browser reinstalls include it in the existing stale-file cleanup preview. Unrecognized content is preserved, command-line retirement skips symlinks and directories, and source checkouts carrying release or relocation files are rejected before installation writes. VIDiff deploy now validates artifact metadata against trusted workflow_run lineage, resolves missing pull-request association from the commit-to-PR API, blocks Pages publication for fork PR artifacts (comment/status fall back to Actions artifact or run links), and requires trusted producer identity for publish events: push/workflow_dispatch producers need canonical same-repo head_repository and producer-head default-branch ancestry, with workflow_dispatch additionally requiring default-branch ancestry for the artifact-target SHA; otherwise publish fails closed to artifact/run links. ZIP extraction remains path-safe, rejecting absolute paths, parent traversal, and symlink entries before deploy/status/comment updates.
Publication does not promote this release to beta or stable. The major alias (e.g. @v4) follows stable promotions, not every publication. Pin the immutable tag @v4.20.0 to opt into this release explicitly.