labview-community-ci-cd/Compare VI (composite)

Compare two LabVIEW (.vi) files using NI LVCompare (LabVIEW 2025 Q3). Composite action for self-hosted Windows runners with full CLI flag pass-through.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jun 1, 2026
License
BSD

Pinned Snippet

workflow.ymlSHA-pinned
uses: labview-community-ci-cd/compare-vi-cli-action@1e648c72ec13a17376e0d06c08b777171a6e38e7 # v0.6.12

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
basePath to the base .vi fileyes
headPath to the head .vi fileyes
loop-enabledEnable iterative compare loop mode (aggregates metrics/percentiles)nofalse
loop-max-iterationsMax iterations for loop mode (0 = until diff when fail-on-diff=false, or single pass).no1
loop-interval-secondsInterval between iterations in loop mode (fractional seconds supported).no0
quantile-strategyQuantile strategy for loop mode: Exact | StreamingReservoir | HybridnoStreamingReservoir
stream-capacityStreamingReservoir capacity (samples retained; min 10).no500
reconcile-everyRebuild streaming reservoir every N iterations (0 = disabled).no0
hybrid-exact-thresholdHybrid strategy iterations to seed exact before switching to streaming.no200
histogram-binsNumber of histogram bins to compute in loop mode (0 = disabled).no0
loop-simulateUse an internal mock executor (no real LVCompare) for loop mode (useful in CI without LabVIEW).notrue
loop-simulate-exit-codeExit code returned by simulated executor (1 = diff; 0 = no diff).no1
lvComparePathFull path to LVCompare.exe, if not on PATHno
lvCompareArgsAdditional CLI flags for LVCompare.exe (space-delimited)no""
lvCompareBitnessPreferred LVCompare bitness to run (auto | x64 | x86)noauto
fail-on-diffFail the job if differences are foundnotrue
compare-timeout-secondsMax seconds to wait for LVCompare before failing the compare and returning exit code 124 (0 disables the timeout).no0
working-directoryDirectory to run LVCompare from (sets process CWD for relative paths)no""
namedescription
difftrue if differences were found
exitCodeRaw exit code from LVCompare
cliPathResolved path to LVCompare.exe
commandExact command line executed (for auditing)
compareDurationSecondsExecution duration in seconds (floating point with millisecond precision)
compareDurationNanosecondsExecution duration in nanoseconds (high-resolution)
compareSummaryPathPath to generated JSON summary (comparison metadata)
iterationsLoop mode: total iterations executed
diffCountLoop mode: number of diff iterations
errorCountLoop mode: number of error iterations
averageSecondsLoop mode: average iteration duration (s)
totalSecondsLoop mode: total elapsed time (s)
p50Loop mode: latency p50 (seconds)
p90Loop mode: latency p90 (seconds)
p99Loop mode: latency p99 (seconds)
quantileStrategyLoop mode: effective quantile strategy used
streamingWindowCountLoop mode: sample count retained in streaming reservoir
loopResultPathLoop mode: path to JSON summary of loop aggregate metrics
histogramPathLoop mode: path to histogram JSON (if bins > 0)
shortCircuitedIdenticaltrue when base and head resolved to the same absolute path and LVCompare invocation was short-circuited