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 GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 1, 2026
- License
- BSD
Pinned Snippet
uses: labview-community-ci-cd/compare-vi-cli-action@1e648c72ec13a17376e0d06c08b777171a6e38e7 # v0.6.12tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| base | Path to the base .vi file | yes | — |
| head | Path to the head .vi file | yes | — |
| loop-enabled | Enable iterative compare loop mode (aggregates metrics/percentiles) | no | false |
| loop-max-iterations | Max iterations for loop mode (0 = until diff when fail-on-diff=false, or single pass). | no | 1 |
| loop-interval-seconds | Interval between iterations in loop mode (fractional seconds supported). | no | 0 |
| quantile-strategy | Quantile strategy for loop mode: Exact | StreamingReservoir | Hybrid | no | StreamingReservoir |
| stream-capacity | StreamingReservoir capacity (samples retained; min 10). | no | 500 |
| reconcile-every | Rebuild streaming reservoir every N iterations (0 = disabled). | no | 0 |
| hybrid-exact-threshold | Hybrid strategy iterations to seed exact before switching to streaming. | no | 200 |
| histogram-bins | Number of histogram bins to compute in loop mode (0 = disabled). | no | 0 |
| loop-simulate | Use an internal mock executor (no real LVCompare) for loop mode (useful in CI without LabVIEW). | no | true |
| loop-simulate-exit-code | Exit code returned by simulated executor (1 = diff; 0 = no diff). | no | 1 |
| lvComparePath | Full path to LVCompare.exe, if not on PATH | no | — |
| lvCompareArgs | Additional CLI flags for LVCompare.exe (space-delimited) | no | "" |
| lvCompareBitness | Preferred LVCompare bitness to run (auto | x64 | x86) | no | auto |
| fail-on-diff | Fail the job if differences are found | no | true |
| compare-timeout-seconds | Max seconds to wait for LVCompare before failing the compare and returning exit code 124 (0 disables the timeout). | no | 0 |
| working-directory | Directory to run LVCompare from (sets process CWD for relative paths) | no | "" |
Outputs
| name | description |
|---|---|
| diff | true if differences were found |
| exitCode | Raw exit code from LVCompare |
| cliPath | Resolved path to LVCompare.exe |
| command | Exact command line executed (for auditing) |
| compareDurationSeconds | Execution duration in seconds (floating point with millisecond precision) |
| compareDurationNanoseconds | Execution duration in nanoseconds (high-resolution) |
| compareSummaryPath | Path to generated JSON summary (comparison metadata) |
| iterations | Loop mode: total iterations executed |
| diffCount | Loop mode: number of diff iterations |
| errorCount | Loop mode: number of error iterations |
| averageSeconds | Loop mode: average iteration duration (s) |
| totalSeconds | Loop mode: total elapsed time (s) |
| p50 | Loop mode: latency p50 (seconds) |
| p90 | Loop mode: latency p90 (seconds) |
| p99 | Loop mode: latency p99 (seconds) |
| quantileStrategy | Loop mode: effective quantile strategy used |
| streamingWindowCount | Loop mode: sample count retained in streaming reservoir |
| loopResultPath | Loop mode: path to JSON summary of loop aggregate metrics |
| histogramPath | Loop mode: path to histogram JSON (if bins > 0) |
| shortCircuitedIdentical | true when base and head resolved to the same absolute path and LVCompare invocation was short-circuited |