diff --git a/.github/via-config.viancfg b/.github/via-config.viancfg new file mode 100644 index 0000000..eb87476 --- /dev/null +++ b/.github/via-config.viancfg @@ -0,0 +1,1057 @@ + + +1 +FALSE +"/" +0 + + + ".." + FALSE + + + + + "Arrays and Strings in Loops" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Arrays and Strings in Loops.llb" + TRUE + + + + + "Coercion Dots" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Coercion Dots.llb" + TRUE + + + + + "Enabled Debugging" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Enabled Debugging.llb" + TRUE + + + + + "In Place Element Structure Usage" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/In Place Element Structure Usage.llb" + TRUE + + + + + "Inlinable VIs" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Inlinable VIs.llb" + TRUE + + + + + "Parallel For Loop Debugging" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Parallel For Loop Debugging.llb" + TRUE + + + + + "Parallelizable Loops" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Parallelizable Loops.llb" + TRUE + + + + + "Prepend Scalar With Build Array" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Prepend Scalar With Build Array.llb" + TRUE + + + + + "Redundant Boolean Operations" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Redundant Boolean Operations.llb" + TRUE + + + + + "Value Property Usage" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Value Property Usage.llb" + TRUE + + + + + "Wait in While Loop" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Wait in While Loop.llb" + TRUE + + + + + "Wired Terminals in Subdiagrams" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Wired Terminals in Subdiagrams.llb" + TRUE + + + + + "Array Constant Style" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Array Constant Style.llb" + TRUE + + + + + "Backwards Wires" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Backwards Wires.llb" + TRUE + + + + + "Case Structure Default Frame" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Case Structure Default Frame.llb" + TRUE + + + + + "Code Simplification" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Code Simplification.llb" + TRUE + + + + + "Control Terminal Label Visible" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Control Terminal Label Visible.llb" + TRUE + + + + + "Control Terminal Wiring" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Control Terminal Wiring.llb" + TRUE + + + + + "Diagram Disable Structures" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Diagram Disable Structures.llb" + TRUE + + + + + "Mixed Terminal Styles" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Mixed Terminal Styles.llb" + TRUE + + + + + "Poor Names of Enum Items" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Poor Names of Enum Items.llb" + TRUE + + + + + "Sequence Structure Usage" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Sequence Structure Usage.llb" + TRUE + + + + + "String Constant Style" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/String Constant Style.llb" + TRUE + + + + + "Tunnel Position" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Tunnel Position.llb" + TRUE + + + + + "Unused Code" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Unused Code.llb" + TRUE + + + + + "Wire Bends" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Wire Bends.llb" + TRUE + + + + + "Wire Crossings" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Wire Crossings.llb" + TRUE + + + + + "Wires Under Objects" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Style/Wires Under Objects.llb" + TRUE + + + + + "Adding Array Size Elements" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Adding Array Size Elements.llb" + TRUE + + + + + "Array Sum and Product Overflow" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Array Sum and Product Overflow.llb" + TRUE + + + + + "Breakpoint Detection" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Breakpoint Detection.llb" + TRUE + + + + + "Bundling Duplicate Names" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Bundling Duplicate Names.llb" + TRUE + + + + + "Case Structure with String Range" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Case Structure with String Range.llb" + TRUE + + + + + "Error Cluster Wired" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Error Cluster Wired.llb" + TRUE + + + + + "Find Deprecated Items" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Find Deprecated Items.llb" + TRUE + + + + + "For Loop Error Handling" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/For Loop Error Handling.llb" + TRUE + + + + + "For Loop Iteration Count" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/For Loop Iteration Count.llb" + TRUE + + + + + "For Loop Reference Handling" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/For Loop Reference Handling.llb" + TRUE + + + + + "Globals and Locals" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Globals and Locals.llb" + TRUE + + + + + "Hidden Objects in Structures" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Hidden Objects in Structures.llb" + TRUE + + + + + "Hidden Tunnels" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Hidden Tunnels.llb" + TRUE + + + + + "Indexer Datatype" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Indexer Datatype.llb" + TRUE + + + + + "Pattern Label" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Pattern Label.llb" + TRUE + + + + + "Reentrant VI Issues" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Reentrant VI Issues.llb" + TRUE + + + + + "Type Casting References" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Type Casting References.llb" + TRUE + + + + + "Unwired I32 Error" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Unwired I32 Error.llb" + TRUE + + + + + "Cyclomatic Complexity" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Complexity Metrics/Cyclomatic Complexity.llb" + TRUE + + + + + "Depth of Nesting of Structures" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Complexity Metrics/Depth of Nesting of Structures.llb" + TRUE + + + + + "Fan In" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Complexity Metrics/Fan In.llb" + TRUE + + + + + "Fan Out" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Complexity Metrics/Fan Out.llb" + TRUE + + + + + "Modularity Index" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Complexity Metrics/Modularity Index.llb" + TRUE + + + + + "Approved Bookmark Tags" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Documentation/Developer/Approved Bookmark Tags.llb" + TRUE + + + + + "Comment Usage" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Documentation/Developer/Comment Usage.llb" + TRUE + + + + + "Label Call Library Nodes" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Documentation/Developer/Label Call Library Nodes.llb" + TRUE + + + + + "Revision History" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Documentation/Developer/Revision History.llb" + TRUE + + + + + "Spell Check" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Documentation/User/Spell Check.llb" + TRUE + + + + + "VI Documentation" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Documentation/User/VI Documentation.llb" + TRUE + + + + + "Array Default Values" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/SubVI/Array Default Values.llb" + TRUE + + + + + "Cluster Sized to Fit" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/SubVI/Cluster Sized to Fit.llb" + TRUE + + + + + "Control Alignment" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/SubVI/Control Alignment.llb" + TRUE + + + + + "Alignment Grid Setting" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Alignment Grid Setting.llb" + TRUE + + + + + "Clipped Text" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Clipped Text.llb" + TRUE + + + + + "Dialog Controls" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Dialog Controls.llb" + TRUE + + + + + "Duplicate Control Labels" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Duplicate Control Labels.llb" + TRUE + + + + + "Empty List Items" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Empty List Items.llb" + TRUE + + + + + "Font Usage" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Font Usage.llb" + TRUE + + + + + "Overlapping Controls" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Overlapping Controls.llb" + TRUE + + + + + "Panel Size and Position" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Panel Size and Position.llb" + TRUE + + + + + "Scalar Chart Updates" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Scalar Chart Updates.llb" + TRUE + + + + + "Synchronous Display" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Synchronous Display.llb" + TRUE + + + + + "Transparent Labels" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Transparent Labels.llb" + TRUE + + + + + "SubVI and TypeDef Locations" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/File Properties/SubVI and TypeDef Locations.llb" + TRUE + + + + + "VI Extension" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/File Properties/VI Extension.llb" + TRUE + + + + + "VI Name" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/File Properties/VI Name.llb" + TRUE + + + + + "VI Saved Version" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/File Properties/VI Saved Version.llb" + TRUE + + + + + "VI Size" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/File Properties/VI Size.llb" + TRUE + + + + + "Connector Pane Alignment" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Connector Pane Alignment.llb" + TRUE + + + + + "Connector Pane Pattern" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Connector Pane Pattern.llb" + TRUE + + + + + "Default Icon" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Default Icon.llb" + TRUE + + + + + "Error Style" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Error Style.llb" + TRUE + + + + + "Full Connector Pane" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Full Connector Pane.llb" + TRUE + + + + + "Icon Size and Border" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Icon Size and Border.llb" + TRUE + + + + + "Polymorphic Terminals" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Polymorphic Terminals.llb" + TRUE + + + + + "Terminal Connection Type" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Terminal Connection Type.llb" + TRUE + + + + + "Terminal Positions" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Terminal Positions.llb" + TRUE + + + + + "Auto Error Handling Enabled" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Auto Error Handling Enabled.llb" + TRUE + + + + + "Broken VI" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Broken VI.llb" + TRUE + + + + + "Built Application Compatibility" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Built Application Compatibility.llb" + TRUE + + + + + "Control VI Type" + 1 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Control VI Type.llb" + TRUE + + + + + "Driver Usage" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Driver Usage.llb" + TRUE + + + + + "Platform Portability" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Platform Portability.llb" + TRUE + + + + + "Removed Diagram" + 2 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Removed Diagram.llb" + TRUE + + + + + "Separate Compiled Code Setting" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Separate Compiled Code Setting.llb" + TRUE + + + + + "Toolkit Usage" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/Toolkit Usage.llb" + TRUE + + + + + "VI Lock State" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/General/VI Properties/VI Lock State.llb" + TRUE + + + + + "Connector Inputs and Outputs" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Connector Inputs and Outputs.llb" + TRUE + + + + + "Controls and Indicators" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Controls and Indicators.llb" + TRUE + + + + + "Diagram Count" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Diagram Count.llb" + TRUE + + + + + "Diagram Size" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Diagram Size.llb" + TRUE + + + + + "Node Count" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Node Count.llb" + TRUE + + + + + "Property Reads and Writes" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Property Reads and Writes.llb" + TRUE + + + + + "Shared Library Calls" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Shared Library Calls.llb" + TRUE + + + + + "Structure Count" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Structure Count.llb" + TRUE + + + + + "Wire Sources" + 0 + 5 + "LabVIEW" + "project/_VI Analyzer/_tests/VI Metrics/Wire Sources.llb" + TRUE + + + + + + + \ No newline at end of file diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 1bdaefa..ef6840a 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -1,5 +1,6 @@ name: (Work In Progress) Run VIA tests (GitHub Hosted) + on: # TODO: Uncomment the original triggers below when ready for full deployment pull_request: @@ -31,16 +32,24 @@ jobs: run-via-tests: name: Run VI Analyzer tests runs-on: ubuntu-latest - container: - image: nationalinstruments/labview:2025q3patch1-linux steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history - name: Run VI Analyzer tests - shell: bash - working-directory: ${{ github.workspace }} - run: | - # TODO: Add commands to run VI Analyzer tests on files in this repo - echo "Work In progress: VI Analyzer tests to be implemented." + uses: KSharma-NI/open-source/via-lv-docker@users/krishsha/via-lv-docker + with: + config_path: ${{ github.event_name == 'workflow_dispatch' && '.github/via-config.viancfg' || '' }} + base_branch: origin/${{ github.event.pull_request.base.ref || 'develop' }} + labview_version: '2026q1-linux' + + - name: Upload VI Analyzer Report + uses: actions/upload-artifact@v4 + if: always() + with: + name: vi-analyzer-report + path: vi-analyzer-report.htm + retention-days: 7 \ No newline at end of file