From 421c8bf322e3c057f5f9274512a30e9096a76291 Mon Sep 17 00:00:00 2001 From: Navneet Wats Date: Mon, 5 Jan 2026 13:10:54 +0530 Subject: [PATCH 01/29] Create an initial workflow - run-via-tests.yml to run VI Analyzer checks using LV container image --- .github/workflows/run-via-tests.yml | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/run-via-tests.yml diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml new file mode 100644 index 0000000..1bdaefa --- /dev/null +++ b/.github/workflows/run-via-tests.yml @@ -0,0 +1,46 @@ +name: (Work In Progress) Run VIA tests (GitHub Hosted) + +on: + # TODO: Uncomment the original triggers below when ready for full deployment + pull_request: + branches: + - feature/github-actions-cicd # Temporary: only run on this branch + # - main + # - develop + # - release/* + # - feature/* + # - hotfix/* + # types: + # - opened + # - synchronize + # - reopened + # - ready_for_review + + push: + branches: + - feature/github-actions-cicd # Temporary: only run on this branch + # - main + # - develop + # - release/* + # - hotfix/* + # - feature/* + + workflow_dispatch: + +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 + + - 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." From 87dca4d6f9f167f8992c506e757016afd5e429d4 Mon Sep 17 00:00:00 2001 From: Navneet Wats Date: Mon, 5 Jan 2026 13:10:54 +0530 Subject: [PATCH 02/29] Create an initial workflow - run-via-tests.yml to run VI Analyzer checks using LV container image --- .github/workflows/run-via-tests.yml | 46 +++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .github/workflows/run-via-tests.yml diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml new file mode 100644 index 0000000..1bdaefa --- /dev/null +++ b/.github/workflows/run-via-tests.yml @@ -0,0 +1,46 @@ +name: (Work In Progress) Run VIA tests (GitHub Hosted) + +on: + # TODO: Uncomment the original triggers below when ready for full deployment + pull_request: + branches: + - feature/github-actions-cicd # Temporary: only run on this branch + # - main + # - develop + # - release/* + # - feature/* + # - hotfix/* + # types: + # - opened + # - synchronize + # - reopened + # - ready_for_review + + push: + branches: + - feature/github-actions-cicd # Temporary: only run on this branch + # - main + # - develop + # - release/* + # - hotfix/* + # - feature/* + + workflow_dispatch: + +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 + + - 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." From b6ee010a5108c578ecbcf7d0629d73a3e66b8a48 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 13:21:58 +0530 Subject: [PATCH 03/29] Inital test run for VIA --- .github/workflows/run-via-tests.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 1bdaefa..faf1d0e 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -42,5 +42,23 @@ jobs: 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." + # Resolve paths + # TODO: Make the paths configurable via inputs + ABSOLUTE_CONFIG="${{ github.workspace }}/Core/ActorFramework/Actor" + ABSOLUTE_REPORT="${{ github.workspace }}/vi-analyzer-report.htm" + + # Run VI Analyzer + LabVIEWCLI \ + -OperationName RunVIAnalyzer \ + -ConfigPath "$ABSOLUTE_CONFIG" \ + -ReportPath "$ABSOLUTE_REPORT" \ + -ReportSaveType HTML \ + -Headless + + - name: Upload VI Analyzer Report + uses: actions/upload-artifact@v4 + if: always() # Upload even if tests fail + with: + name: vi-analyzer-report + path: ${{ github.workspace }}/vi-analyzer-report.htm + retention-days: 7 \ No newline at end of file From 23bcbececacfdccf91aa61b63dd881aa8a4f0d3b Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 13:29:20 +0530 Subject: [PATCH 04/29] Explicitly mention LabVIEWPath --- .github/workflows/run-via-tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index faf1d0e..afcccb6 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -49,6 +49,7 @@ jobs: # Run VI Analyzer LabVIEWCLI \ + -LabVIEWPath "/usr/local/natinst/LabVIEW-2025-64/labview" \ -OperationName RunVIAnalyzer \ -ConfigPath "$ABSOLUTE_CONFIG" \ -ReportPath "$ABSOLUTE_REPORT" \ From e5e00e2af741f4dd3cb1bc893411c35d70f9b9f1 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 14:46:54 +0530 Subject: [PATCH 05/29] Explicitly mention LabVIEWPath --- .github/workflows/run-via-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index afcccb6..3407530 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -49,11 +49,11 @@ jobs: # Run VI Analyzer LabVIEWCLI \ - -LabVIEWPath "/usr/local/natinst/LabVIEW-2025-64/labview" \ -OperationName RunVIAnalyzer \ -ConfigPath "$ABSOLUTE_CONFIG" \ -ReportPath "$ABSOLUTE_REPORT" \ -ReportSaveType HTML \ + -LabVIEWPath "/usr/local/natinst/LabVIEW-2025-64/labview" \ -Headless - name: Upload VI Analyzer Report From 60c030ad77c431a97b92254c578ee5dcc33ab5f9 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 14:56:43 +0530 Subject: [PATCH 06/29] Update github workspace --- .github/workflows/run-via-tests.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 3407530..eac4e17 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -40,12 +40,11 @@ jobs: - name: Run VI Analyzer tests shell: bash - working-directory: ${{ github.workspace }} run: | # Resolve paths # TODO: Make the paths configurable via inputs - ABSOLUTE_CONFIG="${{ github.workspace }}/Core/ActorFramework/Actor" - ABSOLUTE_REPORT="${{ github.workspace }}/vi-analyzer-report.htm" + ABSOLUTE_CONFIG="$GITHUB_WORKSPACE/Core/ActorFramework/Actor" + ABSOLUTE_REPORT="$GITHUB_WORKSPACE/vi-analyzer-report.htm" # Run VI Analyzer LabVIEWCLI \ @@ -61,5 +60,5 @@ jobs: if: always() # Upload even if tests fail with: name: vi-analyzer-report - path: ${{ github.workspace }}/vi-analyzer-report.htm + path: vi-analyzer-report.htm retention-days: 7 \ No newline at end of file From c365f5c9ae4282cf7679cd578cdf876990b7339d Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 15:30:50 +0530 Subject: [PATCH 07/29] Update to 2026q1-linux --- .github/workflows/run-via-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index eac4e17..4f2f702 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -32,7 +32,7 @@ jobs: name: Run VI Analyzer tests runs-on: ubuntu-latest container: - image: nationalinstruments/labview:2025q3patch1-linux + image: nationalinstruments/labview:2026q1-linux steps: - name: Checkout code From 4bfe8a49ead6efec1cdaf316da30b39c53a6b8dc Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 15:32:16 +0530 Subject: [PATCH 08/29] Update to 2026q1-linux --- .github/workflows/run-via-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 4f2f702..994c73d 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -52,7 +52,7 @@ jobs: -ConfigPath "$ABSOLUTE_CONFIG" \ -ReportPath "$ABSOLUTE_REPORT" \ -ReportSaveType HTML \ - -LabVIEWPath "/usr/local/natinst/LabVIEW-2025-64/labview" \ + -LabVIEWPath "/usr/local/natinst/LabVIEW-2026-64/labview" \ -Headless - name: Upload VI Analyzer Report From 06190c8e9b3e0342a806b2f05795174b011610d7 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 15:56:10 +0530 Subject: [PATCH 09/29] Try labview pro --- .github/workflows/run-via-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 994c73d..41e4eba 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -32,7 +32,7 @@ jobs: name: Run VI Analyzer tests runs-on: ubuntu-latest container: - image: nationalinstruments/labview:2026q1-linux + image: nationalinstruments/labview:2025q3patch1-linux steps: - name: Checkout code @@ -47,12 +47,12 @@ jobs: ABSOLUTE_REPORT="$GITHUB_WORKSPACE/vi-analyzer-report.htm" # Run VI Analyzer - LabVIEWCLI \ + LabVIEWCLI -LogToConsole TRUE \ -OperationName RunVIAnalyzer \ -ConfigPath "$ABSOLUTE_CONFIG" \ -ReportPath "$ABSOLUTE_REPORT" \ -ReportSaveType HTML \ - -LabVIEWPath "/usr/local/natinst/LabVIEW-2026-64/labview" \ + -LabVIEWPath "/usr/local/natinst/LabVIEW-2025-64/labviewprofull" \ -Headless - name: Upload VI Analyzer Report From a42906299962a3e134c1c69378e8f695fc633510 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 16:03:09 +0530 Subject: [PATCH 10/29] Try external script --- .github/workflows/run-via-tests.yml | 15 ++------------- .github/workflows/run-via.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/run-via.sh diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 41e4eba..37787a9 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -41,19 +41,8 @@ jobs: - name: Run VI Analyzer tests shell: bash run: | - # Resolve paths - # TODO: Make the paths configurable via inputs - ABSOLUTE_CONFIG="$GITHUB_WORKSPACE/Core/ActorFramework/Actor" - ABSOLUTE_REPORT="$GITHUB_WORKSPACE/vi-analyzer-report.htm" - - # Run VI Analyzer - LabVIEWCLI -LogToConsole TRUE \ - -OperationName RunVIAnalyzer \ - -ConfigPath "$ABSOLUTE_CONFIG" \ - -ReportPath "$ABSOLUTE_REPORT" \ - -ReportSaveType HTML \ - -LabVIEWPath "/usr/local/natinst/LabVIEW-2025-64/labviewprofull" \ - -Headless + chmod +x .github/workflows/run-via.sh + ./.github/workflows/run-via.sh - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4 diff --git a/.github/workflows/run-via.sh b/.github/workflows/run-via.sh new file mode 100644 index 0000000..b8f7ae3 --- /dev/null +++ b/.github/workflows/run-via.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -e + +# VI Analyzer script for GitHub Actions +ABSOLUTE_CONFIG="$GITHUB_WORKSPACE/Core/ActorFramework/Actor" +ABSOLUTE_REPORT="$GITHUB_WORKSPACE/vi-analyzer-report.htm" +LV_YEAR="${LV_YEAR:-2025}" +LABVIEW_PATH="/usr/local/natinst/LabVIEW-${LV_YEAR}-64/labviewprofull" + +# Verify that the configuration path exists +if [ ! -d "$ABSOLUTE_CONFIG" ] && [ ! -f "$ABSOLUTE_CONFIG" ]; then + echo "Error: Configuration path not found at $ABSOLUTE_CONFIG" + exit 1 +fi + +echo "Running LabVIEWCLI VIAnalyzer with the following parameters:" +echo "ConfigPath: $ABSOLUTE_CONFIG" +echo "ReportPath: $ABSOLUTE_REPORT" +echo "LabVIEWPath: $LABVIEW_PATH" +echo "" + +# Run VI Analyzer +LabVIEWCLI -LogToConsole TRUE \ + -OperationName RunVIAnalyzer \ + -ConfigPath "$ABSOLUTE_CONFIG" \ + -ReportPath "$ABSOLUTE_REPORT" \ + -ReportSaveType HTML \ + -LabVIEWPath "$LABVIEW_PATH" \ + -Headless \ No newline at end of file From 75f45b854160e1b74bd781eb2b4cf2cb7e9b41c6 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 16:06:23 +0530 Subject: [PATCH 11/29] Try docker run --- .github/workflows/run-via-tests.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 37787a9..06e0bda 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -31,18 +31,20 @@ 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 + - name: Pull Docker Image + run: docker pull nationalinstruments/labview:2025q3patch1-linux + - name: Run VI Analyzer tests - shell: bash run: | - chmod +x .github/workflows/run-via.sh - ./.github/workflows/run-via.sh + docker run --rm \ + -v "${{ github.workspace }}:/workspace" \ + nationalinstruments/labview:2025q3patch1-linux \ + bash -c "cd /workspace && chmod +x .github/workflows/run-via.sh && ./.github/workflows/run-via.sh" - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4 From af43ddc280432422a144aa1166ca4fb7ec01cdc0 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 16:08:27 +0530 Subject: [PATCH 12/29] Try docker run --- .github/workflows/run-via.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/run-via.sh b/.github/workflows/run-via.sh index b8f7ae3..e8fb9c7 100644 --- a/.github/workflows/run-via.sh +++ b/.github/workflows/run-via.sh @@ -2,8 +2,8 @@ set -e # VI Analyzer script for GitHub Actions -ABSOLUTE_CONFIG="$GITHUB_WORKSPACE/Core/ActorFramework/Actor" -ABSOLUTE_REPORT="$GITHUB_WORKSPACE/vi-analyzer-report.htm" +ABSOLUTE_CONFIG="/workspace/Core/ActorFramework/Actor" +ABSOLUTE_REPORT="/workspace/vi-analyzer-report.htm" LV_YEAR="${LV_YEAR:-2025}" LABVIEW_PATH="/usr/local/natinst/LabVIEW-${LV_YEAR}-64/labviewprofull" @@ -26,4 +26,8 @@ LabVIEWCLI -LogToConsole TRUE \ -ReportPath "$ABSOLUTE_REPORT" \ -ReportSaveType HTML \ -LabVIEWPath "$LABVIEW_PATH" \ - -Headless \ No newline at end of file + -Headless + +echo "" +echo "VI Analyzer execution completed" +echo "Report generated at: $ABSOLUTE_REPORT" \ No newline at end of file From 1dbc33081b489aa69a575ba6e9c9f5d4ff2c3eb6 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Thu, 12 Feb 2026 16:58:58 +0530 Subject: [PATCH 13/29] Simplify the command --- .github/workflows/run-via.sh | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/run-via.sh b/.github/workflows/run-via.sh index e8fb9c7..cc5a42e 100644 --- a/.github/workflows/run-via.sh +++ b/.github/workflows/run-via.sh @@ -5,7 +5,7 @@ set -e ABSOLUTE_CONFIG="/workspace/Core/ActorFramework/Actor" ABSOLUTE_REPORT="/workspace/vi-analyzer-report.htm" LV_YEAR="${LV_YEAR:-2025}" -LABVIEW_PATH="/usr/local/natinst/LabVIEW-${LV_YEAR}-64/labviewprofull" +LABVIEW_PATH="/usr/local/natinst/LabVIEW-${LV_YEAR}-64/labview" # Verify that the configuration path exists if [ ! -d "$ABSOLUTE_CONFIG" ] && [ ! -f "$ABSOLUTE_CONFIG" ]; then @@ -20,14 +20,10 @@ echo "LabVIEWPath: $LABVIEW_PATH" echo "" # Run VI Analyzer -LabVIEWCLI -LogToConsole TRUE \ +LabVIEWCLI \ -OperationName RunVIAnalyzer \ -ConfigPath "$ABSOLUTE_CONFIG" \ -ReportPath "$ABSOLUTE_REPORT" \ -ReportSaveType HTML \ -LabVIEWPath "$LABVIEW_PATH" \ - -Headless - -echo "" -echo "VI Analyzer execution completed" -echo "Report generated at: $ABSOLUTE_REPORT" \ No newline at end of file + -Headless \ No newline at end of file From 169a3957573daa9e142203280cd2c16a6c64d4c0 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 10:03:37 +0530 Subject: [PATCH 14/29] Add viancfg logic --- .github/actions/generate_viancfg/action.yml | 25 + .../generate_viancfg/generate_viancfg.sh | 95 ++ .../generate_viancfg/via_template.viancfg | 1057 +++++++++++++++++ .github/workflows/run-via-tests.yml | 19 + .github/workflows/run-via.sh | 2 +- 5 files changed, 1197 insertions(+), 1 deletion(-) create mode 100644 .github/actions/generate_viancfg/action.yml create mode 100644 .github/actions/generate_viancfg/generate_viancfg.sh create mode 100644 .github/actions/generate_viancfg/via_template.viancfg diff --git a/.github/actions/generate_viancfg/action.yml b/.github/actions/generate_viancfg/action.yml new file mode 100644 index 0000000..d492463 --- /dev/null +++ b/.github/actions/generate_viancfg/action.yml @@ -0,0 +1,25 @@ +name: 'Generate Dynamic VI Analyzer Config' +description: 'Generates a .viancfg file based on changed files in a PR' +inputs: + template-path: + description: 'Path to the .viancfg template' + required: true + output-path: + description: 'Path to save the generated .viancfg' + required: true + base-branch: + description: 'Branch to compare against' + default: 'origin/develop' + required: false + +runs: + using: "composite" + steps: + - name: Generate VI Analyzer Config + shell: bash + run: | + chmod +x ${{ github.action_path }}/generate_viancfg.sh + ${{ github.action_path }}/generate_viancfg.sh \ + --template-path "${{ inputs.template-path }}" \ + --output-path "${{ inputs.output-path }}" \ + --target-branch "${{ inputs.base-branch }}" \ No newline at end of file diff --git a/.github/actions/generate_viancfg/generate_viancfg.sh b/.github/actions/generate_viancfg/generate_viancfg.sh new file mode 100644 index 0000000..d747d61 --- /dev/null +++ b/.github/actions/generate_viancfg/generate_viancfg.sh @@ -0,0 +1,95 @@ +#!/bin/bash +set -e + +# Parse arguments +TEMPLATE_PATH="" +OUTPUT_PATH="" +TARGET_BRANCH="origin/develop" + +while [[ $# -gt 0 ]]; do + case $1 in + --template-path) + TEMPLATE_PATH="$2" + shift 2 + ;; + --output-path) + OUTPUT_PATH="$2" + shift 2 + ;; + --target-branch) + TARGET_BRANCH="$2" + shift 2 + ;; + *) + echo "Unknown parameter: $1" + exit 1 + ;; + esac +done + +# Validate required parameters +if [ -z "$TEMPLATE_PATH" ] || [ -z "$OUTPUT_PATH" ]; then + echo "Error: --template-path and --output-path are required" + exit 1 +fi + +echo "Generating VI Analyzer config from template: $TEMPLATE_PATH" +echo "Target branch: $TARGET_BRANCH" +echo "" + +# Get changed LabVIEW files relative to the target branch +mapfile -t CHANGED_FILES < <(git diff --name-only "$TARGET_BRANCH" --diff-filter=d | grep -E '\.(vi|ctl|llb)$' || true) + +if [ ${#CHANGED_FILES[@]} -eq 0 ]; then + echo "No LabVIEW files changed. Skipping config generation." + exit 0 +fi + +echo "Found ${#CHANGED_FILES[@]} changed LabVIEW file(s):" +printf '%s\n' "${CHANGED_FILES[@]}" +echo "" + +# Get Git root directory +GIT_ROOT=$(git rev-parse --show-toplevel) + +# Get script directory +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +# Read template XML and prepare output +cp "$TEMPLATE_PATH" "$OUTPUT_PATH" + +# Use xmlstarlet or sed to modify XML +# First, remove all existing Item nodes +sed -i '//,/<\/Item>/d' "$OUTPUT_PATH" + +# Find the ItemsToAnalyze closing tag to insert before it +ITEMS_SECTION="" + +for file in "${CHANGED_FILES[@]}"; do + # Construct absolute path + ABSOLUTE_FILE_PATH="$GIT_ROOT/$file" + + # Calculate relative path from script folder to the VI + RELATIVE_PATH=$(realpath --relative-to="$SCRIPT_DIR" "$ABSOLUTE_FILE_PATH") + + FORMATTED_PATH="\"$RELATIVE_PATH\"" + + # Build XML item + ITEMS_SECTION+=" + $FORMATTED_PATH + FALSE + +" +done + +# Insert the items before the closing ItemsToAnalyze tag +sed -i "s||$ITEMS_SECTION |" "$OUTPUT_PATH" + +# Ensure output directory exists +OUTPUT_DIR=$(dirname "$OUTPUT_PATH") +if [ -n "$OUTPUT_DIR" ] && [ ! -d "$OUTPUT_DIR" ]; then + mkdir -p "$OUTPUT_DIR" +fi + +echo "" +echo "Generated config at $OUTPUT_PATH with ${#CHANGED_FILES[@]} items." \ No newline at end of file diff --git a/.github/actions/generate_viancfg/via_template.viancfg b/.github/actions/generate_viancfg/via_template.viancfg new file mode 100644 index 0000000..f231cdd --- /dev/null +++ b/.github/actions/generate_viancfg/via_template.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 06e0bda..cc4e1bd 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -36,10 +36,29 @@ jobs: - name: Checkout code uses: actions/checkout@v4 + - name: Generate VI Analyzer Config + uses: ./.github/actions/generate_viancfg + with: + template-path: '.github/actions/generate_viancfg/via_template.viancfg' + output-path: 'generated-config.viancfg' + base-branch: ${{ github.event.pull_request.base.ref || 'origin/develop' }} + + - name: Check if config was generated + id: check-config + run: | + if [ -f "generated-config.viancfg" ]; then + echo "config_exists=true" >> $GITHUB_OUTPUT + else + echo "No LabVIEW files changed; skipping VI Analyzer tests." + echo "config_exists=false" >> $GITHUB_OUTPUT + fi + - name: Pull Docker Image + if: steps.check-config.outputs.config_exists == 'true' run: docker pull nationalinstruments/labview:2025q3patch1-linux - name: Run VI Analyzer tests + if: steps.check-config.outputs.config_exists == 'true' run: | docker run --rm \ -v "${{ github.workspace }}:/workspace" \ diff --git a/.github/workflows/run-via.sh b/.github/workflows/run-via.sh index cc5a42e..0d81674 100644 --- a/.github/workflows/run-via.sh +++ b/.github/workflows/run-via.sh @@ -2,7 +2,7 @@ set -e # VI Analyzer script for GitHub Actions -ABSOLUTE_CONFIG="/workspace/Core/ActorFramework/Actor" +ABSOLUTE_CONFIG="/workspace/generated-config.viancfg" ABSOLUTE_REPORT="/workspace/vi-analyzer-report.htm" LV_YEAR="${LV_YEAR:-2025}" LABVIEW_PATH="/usr/local/natinst/LabVIEW-${LV_YEAR}-64/labview" From 45fa7a0b0d512ca6fef8ac9d7adff35a6cc92523 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 10:08:30 +0530 Subject: [PATCH 15/29] Update target branch --- .github/workflows/run-via-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index cc4e1bd..65412d1 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -41,7 +41,7 @@ jobs: with: template-path: '.github/actions/generate_viancfg/via_template.viancfg' output-path: 'generated-config.viancfg' - base-branch: ${{ github.event.pull_request.base.ref || 'origin/develop' }} + base-branch: origin/${{ github.event.pull_request.base.ref || 'develop' }} - name: Check if config was generated id: check-config From 412163c78ffa68a2597ab790377e5bf67ba2a1b8 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 10:18:40 +0530 Subject: [PATCH 16/29] Get all history --- .github/workflows/run-via-tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 65412d1..ee3652e 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -35,6 +35,8 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history - name: Generate VI Analyzer Config uses: ./.github/actions/generate_viancfg From 0015aaf4bf0aa6f30d9c312799895d8861360b1b Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 10:26:07 +0530 Subject: [PATCH 17/29] Test VIA workflow --- Testing/Subfolder/test2.vi | Bin 0 -> 10905 bytes Testing/test1.vi | Bin 0 -> 10905 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 Testing/Subfolder/test2.vi create mode 100644 Testing/test1.vi diff --git a/Testing/Subfolder/test2.vi b/Testing/Subfolder/test2.vi new file mode 100644 index 0000000000000000000000000000000000000000..341d658f4bbb57991f6eb836104dd3430401d277 GIT binary patch literal 10905 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 literal 0 HcmV?d00001 From cf2d1ff13d584348212389f07e2c6c282bab9933 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 10:31:55 +0530 Subject: [PATCH 18/29] Update Item update logic --- .../generate_viancfg/generate_viancfg.sh | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/.github/actions/generate_viancfg/generate_viancfg.sh b/.github/actions/generate_viancfg/generate_viancfg.sh index d747d61..80f8fb0 100644 --- a/.github/actions/generate_viancfg/generate_viancfg.sh +++ b/.github/actions/generate_viancfg/generate_viancfg.sh @@ -58,12 +58,13 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Read template XML and prepare output cp "$TEMPLATE_PATH" "$OUTPUT_PATH" -# Use xmlstarlet or sed to modify XML -# First, remove all existing Item nodes -sed -i '//,/<\/Item>/d' "$OUTPUT_PATH" +OUTPUT_DIR=$(dirname "$OUTPUT_PATH") +if [ -n "$OUTPUT_DIR" ] && [ ! -d "$OUTPUT_DIR" ]; then + mkdir -p "$OUTPUT_DIR" +fi -# Find the ItemsToAnalyze closing tag to insert before it -ITEMS_SECTION="" +# Create a temporary file for the items +ITEMS_FILE=$(mktemp) for file in "${CHANGED_FILES[@]}"; do # Construct absolute path @@ -74,22 +75,29 @@ for file in "${CHANGED_FILES[@]}"; do FORMATTED_PATH="\"$RELATIVE_PATH\"" - # Build XML item - ITEMS_SECTION+=" + # Write XML item to temp file + cat >> "$ITEMS_FILE" << EOF + $FORMATTED_PATH FALSE -" +EOF done -# Insert the items before the closing ItemsToAnalyze tag -sed -i "s||$ITEMS_SECTION |" "$OUTPUT_PATH" - -# Ensure output directory exists -OUTPUT_DIR=$(dirname "$OUTPUT_PATH") -if [ -n "$OUTPUT_DIR" ] && [ ! -d "$OUTPUT_DIR" ]; then - mkdir -p "$OUTPUT_DIR" -fi +# Use awk to insert the items into the template +awk -v items_file="$ITEMS_FILE" ' + /<\/ItemsToAnalyze>/ { + while ((getline line < items_file) > 0) { + print line + } + close(items_file) + } + //,/<\/Item>/ { next } + { print } +' "$TEMPLATE_PATH" > "$OUTPUT_PATH" + +# Clean up temp file +rm -f "$ITEMS_FILE" echo "" echo "Generated config at $OUTPUT_PATH with ${#CHANGED_FILES[@]} items." \ No newline at end of file From 9c9fabdec4973d87266fe8a3dae8ac8e90e56b6c Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 10:36:10 +0530 Subject: [PATCH 19/29] Get the viancfg file for debugging --- .github/workflows/run-via-tests.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index ee3652e..95e0a47 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -45,6 +45,15 @@ jobs: output-path: 'generated-config.viancfg' base-branch: origin/${{ github.event.pull_request.base.ref || 'develop' }} + - name: Upload Generated Config (Debug) # TODO: Delete this step later + uses: actions/upload-artifact@v4 + if: always() + with: + name: generated-viancfg + path: generated-config.viancfg + retention-days: 7 + if-no-files-found: ignore + - name: Check if config was generated id: check-config run: | From 6560b25d6540d10d82185579cd932e431c4e03d1 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 11:04:37 +0530 Subject: [PATCH 20/29] Use correct template for linux --- ...ate.viancfg => via_template_linux.viancfg} | 210 +++++++++--------- .github/workflows/run-via-tests.yml | 2 +- 2 files changed, 106 insertions(+), 106 deletions(-) rename .github/actions/generate_viancfg/{via_template.viancfg => via_template_linux.viancfg} (63%) diff --git a/.github/actions/generate_viancfg/via_template.viancfg b/.github/actions/generate_viancfg/via_template_linux.viancfg similarity index 63% rename from .github/actions/generate_viancfg/via_template.viancfg rename to .github/actions/generate_viancfg/via_template_linux.viancfg index f231cdd..a59f923 100644 --- a/.github/actions/generate_viancfg/via_template.viancfg +++ b/.github/actions/generate_viancfg/via_template_linux.viancfg @@ -2,7 +2,7 @@ 1 FALSE -"" +"/" 0 @@ -16,7 +16,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Arrays and Strings in Loops.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Arrays and Strings in Loops.llb" TRUE @@ -26,7 +26,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Coercion Dots.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Coercion Dots.llb" TRUE @@ -36,7 +36,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Enabled Debugging.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Enabled Debugging.llb" TRUE @@ -46,7 +46,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\In Place Element Structure Usage.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/In Place Element Structure Usage.llb" TRUE @@ -56,7 +56,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Inlinable VIs.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Inlinable VIs.llb" TRUE @@ -66,7 +66,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Parallel For Loop Debugging.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Parallel For Loop Debugging.llb" TRUE @@ -76,7 +76,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Parallelizable Loops.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Parallelizable Loops.llb" TRUE @@ -86,7 +86,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Prepend Scalar With Build Array.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Prepend Scalar With Build Array.llb" TRUE @@ -96,7 +96,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Redundant Boolean Operations.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Redundant Boolean Operations.llb" TRUE @@ -106,7 +106,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Value Property Usage.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Value Property Usage.llb" TRUE @@ -116,7 +116,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Wait in While Loop.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Wait in While Loop.llb" TRUE @@ -126,7 +126,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Performance\\Wired Terminals in Subdiagrams.llb" + "project/_VI Analyzer/_tests/Block Diagram/Performance/Wired Terminals in Subdiagrams.llb" TRUE @@ -136,7 +136,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Array Constant Style.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Array Constant Style.llb" TRUE @@ -146,7 +146,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Backwards Wires.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Backwards Wires.llb" TRUE @@ -156,7 +156,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Case Structure Default Frame.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Case Structure Default Frame.llb" TRUE @@ -166,7 +166,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Code Simplification.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Code Simplification.llb" TRUE @@ -176,7 +176,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Control Terminal Label Visible.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Control Terminal Label Visible.llb" TRUE @@ -186,7 +186,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Control Terminal Wiring.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Control Terminal Wiring.llb" TRUE @@ -196,7 +196,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Diagram Disable Structures.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Diagram Disable Structures.llb" TRUE @@ -206,7 +206,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Mixed Terminal Styles.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Mixed Terminal Styles.llb" TRUE @@ -216,7 +216,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Poor Names of Enum Items.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Poor Names of Enum Items.llb" TRUE @@ -226,7 +226,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Sequence Structure Usage.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Sequence Structure Usage.llb" TRUE @@ -236,7 +236,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\String Constant Style.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/String Constant Style.llb" TRUE @@ -246,7 +246,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Tunnel Position.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Tunnel Position.llb" TRUE @@ -256,7 +256,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Unused Code.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Unused Code.llb" TRUE @@ -266,7 +266,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Wire Bends.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Wire Bends.llb" TRUE @@ -276,7 +276,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Wire Crossings.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Wire Crossings.llb" TRUE @@ -286,7 +286,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Style\\Wires Under Objects.llb" + "project/_VI Analyzer/_tests/Block Diagram/Style/Wires Under Objects.llb" TRUE @@ -296,7 +296,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Adding Array Size Elements.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Adding Array Size Elements.llb" TRUE @@ -306,7 +306,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Array Sum and Product Overflow.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Array Sum and Product Overflow.llb" TRUE @@ -316,7 +316,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Breakpoint Detection.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Breakpoint Detection.llb" TRUE @@ -326,7 +326,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Bundling Duplicate Names.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Bundling Duplicate Names.llb" TRUE @@ -336,7 +336,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Case Structure with String Range.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Case Structure with String Range.llb" TRUE @@ -346,7 +346,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Error Cluster Wired.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Error Cluster Wired.llb" TRUE @@ -356,7 +356,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Find Deprecated Items.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Find Deprecated Items.llb" TRUE @@ -366,7 +366,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\For Loop Error Handling.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/For Loop Error Handling.llb" TRUE @@ -376,7 +376,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\For Loop Iteration Count.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/For Loop Iteration Count.llb" TRUE @@ -386,7 +386,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\For Loop Reference Handling.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/For Loop Reference Handling.llb" TRUE @@ -396,7 +396,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Globals and Locals.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Globals and Locals.llb" TRUE @@ -406,7 +406,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Hidden Objects in Structures.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Hidden Objects in Structures.llb" TRUE @@ -416,7 +416,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Hidden Tunnels.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Hidden Tunnels.llb" TRUE @@ -426,7 +426,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Indexer Datatype.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Indexer Datatype.llb" TRUE @@ -436,7 +436,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Pattern Label.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Pattern Label.llb" TRUE @@ -446,7 +446,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Reentrant VI Issues.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Reentrant VI Issues.llb" TRUE @@ -456,7 +456,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Type Casting References.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Type Casting References.llb" TRUE @@ -466,7 +466,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Block Diagram\\Warnings\\Unwired I32 Error.llb" + "project/_VI Analyzer/_tests/Block Diagram/Warnings/Unwired I32 Error.llb" TRUE @@ -476,7 +476,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Complexity Metrics\\Cyclomatic Complexity.llb" + "project/_VI Analyzer/_tests/Complexity Metrics/Cyclomatic Complexity.llb" TRUE @@ -486,7 +486,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Complexity Metrics\\Depth of Nesting of Structures.llb" + "project/_VI Analyzer/_tests/Complexity Metrics/Depth of Nesting of Structures.llb" TRUE @@ -496,7 +496,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Complexity Metrics\\Fan In.llb" + "project/_VI Analyzer/_tests/Complexity Metrics/Fan In.llb" TRUE @@ -506,7 +506,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Complexity Metrics\\Fan Out.llb" + "project/_VI Analyzer/_tests/Complexity Metrics/Fan Out.llb" TRUE @@ -516,7 +516,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Complexity Metrics\\Modularity Index.llb" + "project/_VI Analyzer/_tests/Complexity Metrics/Modularity Index.llb" TRUE @@ -526,7 +526,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Documentation\\Developer\\Approved Bookmark Tags.llb" + "project/_VI Analyzer/_tests/Documentation/Developer/Approved Bookmark Tags.llb" TRUE @@ -536,7 +536,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Documentation\\Developer\\Comment Usage.llb" + "project/_VI Analyzer/_tests/Documentation/Developer/Comment Usage.llb" TRUE @@ -546,7 +546,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Documentation\\Developer\\Label Call Library Nodes.llb" + "project/_VI Analyzer/_tests/Documentation/Developer/Label Call Library Nodes.llb" TRUE @@ -556,7 +556,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Documentation\\Developer\\Revision History.llb" + "project/_VI Analyzer/_tests/Documentation/Developer/Revision History.llb" TRUE @@ -566,7 +566,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Documentation\\User\\Spell Check.llb" + "project/_VI Analyzer/_tests/Documentation/User/Spell Check.llb" TRUE @@ -576,7 +576,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Documentation\\User\\VI Documentation.llb" + "project/_VI Analyzer/_tests/Documentation/User/VI Documentation.llb" TRUE @@ -586,7 +586,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\SubVI\\Array Default Values.llb" + "project/_VI Analyzer/_tests/Front Panel/SubVI/Array Default Values.llb" TRUE @@ -596,7 +596,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\SubVI\\Cluster Sized to Fit.llb" + "project/_VI Analyzer/_tests/Front Panel/SubVI/Cluster Sized to Fit.llb" TRUE @@ -606,7 +606,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\SubVI\\Control Alignment.llb" + "project/_VI Analyzer/_tests/Front Panel/SubVI/Control Alignment.llb" TRUE @@ -616,7 +616,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Alignment Grid Setting.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Alignment Grid Setting.llb" TRUE @@ -626,7 +626,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Clipped Text.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Clipped Text.llb" TRUE @@ -636,7 +636,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Dialog Controls.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Dialog Controls.llb" TRUE @@ -646,7 +646,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Duplicate Control Labels.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Duplicate Control Labels.llb" TRUE @@ -656,7 +656,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Empty List Items.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Empty List Items.llb" TRUE @@ -666,7 +666,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Font Usage.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Font Usage.llb" TRUE @@ -676,7 +676,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Overlapping Controls.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Overlapping Controls.llb" TRUE @@ -686,7 +686,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Panel Size and Position.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Panel Size and Position.llb" TRUE @@ -696,7 +696,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Scalar Chart Updates.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Scalar Chart Updates.llb" TRUE @@ -706,7 +706,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Synchronous Display.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Synchronous Display.llb" TRUE @@ -716,7 +716,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\Front Panel\\User Interface\\Transparent Labels.llb" + "project/_VI Analyzer/_tests/Front Panel/User Interface/Transparent Labels.llb" TRUE @@ -726,7 +726,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\File Properties\\SubVI and TypeDef Locations.llb" + "project/_VI Analyzer/_tests/General/File Properties/SubVI and TypeDef Locations.llb" TRUE @@ -736,7 +736,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\File Properties\\VI Extension.llb" + "project/_VI Analyzer/_tests/General/File Properties/VI Extension.llb" TRUE @@ -746,7 +746,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\File Properties\\VI Name.llb" + "project/_VI Analyzer/_tests/General/File Properties/VI Name.llb" TRUE @@ -756,7 +756,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\File Properties\\VI Saved Version.llb" + "project/_VI Analyzer/_tests/General/File Properties/VI Saved Version.llb" TRUE @@ -766,7 +766,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\File Properties\\VI Size.llb" + "project/_VI Analyzer/_tests/General/File Properties/VI Size.llb" TRUE @@ -776,7 +776,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Connector Pane Alignment.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Connector Pane Alignment.llb" TRUE @@ -786,7 +786,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Connector Pane Pattern.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Connector Pane Pattern.llb" TRUE @@ -796,7 +796,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Default Icon.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Default Icon.llb" TRUE @@ -806,7 +806,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Error Style.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Error Style.llb" TRUE @@ -816,7 +816,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Full Connector Pane.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Full Connector Pane.llb" TRUE @@ -826,7 +826,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Icon Size and Border.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Icon Size and Border.llb" TRUE @@ -836,7 +836,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Polymorphic Terminals.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Polymorphic Terminals.llb" TRUE @@ -846,7 +846,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Terminal Connection Type.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Terminal Connection Type.llb" TRUE @@ -856,7 +856,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\Icon and Connector Pane\\Terminal Positions.llb" + "project/_VI Analyzer/_tests/General/Icon and Connector Pane/Terminal Positions.llb" TRUE @@ -866,7 +866,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Auto Error Handling Enabled.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Auto Error Handling Enabled.llb" TRUE @@ -876,7 +876,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Broken VI.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Broken VI.llb" TRUE @@ -886,7 +886,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Built Application Compatibility.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Built Application Compatibility.llb" TRUE @@ -896,7 +896,7 @@ 1 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Control VI Type.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Control VI Type.llb" TRUE @@ -906,7 +906,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Driver Usage.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Driver Usage.llb" TRUE @@ -916,7 +916,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Platform Portability.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Platform Portability.llb" TRUE @@ -926,7 +926,7 @@ 2 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Removed Diagram.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Removed Diagram.llb" TRUE @@ -936,7 +936,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Separate Compiled Code Setting.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Separate Compiled Code Setting.llb" TRUE @@ -946,7 +946,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\Toolkit Usage.llb" + "project/_VI Analyzer/_tests/General/VI Properties/Toolkit Usage.llb" TRUE @@ -956,7 +956,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\General\\VI Properties\\VI Lock State.llb" + "project/_VI Analyzer/_tests/General/VI Properties/VI Lock State.llb" TRUE @@ -966,7 +966,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Connector Inputs and Outputs.llb" + "project/_VI Analyzer/_tests/VI Metrics/Connector Inputs and Outputs.llb" TRUE @@ -976,7 +976,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Controls and Indicators.llb" + "project/_VI Analyzer/_tests/VI Metrics/Controls and Indicators.llb" TRUE @@ -986,7 +986,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Diagram Count.llb" + "project/_VI Analyzer/_tests/VI Metrics/Diagram Count.llb" TRUE @@ -996,7 +996,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Diagram Size.llb" + "project/_VI Analyzer/_tests/VI Metrics/Diagram Size.llb" TRUE @@ -1006,7 +1006,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Node Count.llb" + "project/_VI Analyzer/_tests/VI Metrics/Node Count.llb" TRUE @@ -1016,7 +1016,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Property Reads and Writes.llb" + "project/_VI Analyzer/_tests/VI Metrics/Property Reads and Writes.llb" TRUE @@ -1026,7 +1026,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Shared Library Calls.llb" + "project/_VI Analyzer/_tests/VI Metrics/Shared Library Calls.llb" TRUE @@ -1036,7 +1036,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Structure Count.llb" + "project/_VI Analyzer/_tests/VI Metrics/Structure Count.llb" TRUE @@ -1046,7 +1046,7 @@ 0 5 "LabVIEW" - "project\\_VI Analyzer\\_tests\\VI Metrics\\Wire Sources.llb" + "project/_VI Analyzer/_tests/VI Metrics/Wire Sources.llb" TRUE diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index 95e0a47..ef24cdc 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -41,7 +41,7 @@ jobs: - name: Generate VI Analyzer Config uses: ./.github/actions/generate_viancfg with: - template-path: '.github/actions/generate_viancfg/via_template.viancfg' + template-path: '.github/actions/generate_viancfg/via_template_linux.viancfg' output-path: 'generated-config.viancfg' base-branch: origin/${{ github.event.pull_request.base.ref || 'develop' }} From 0c827e670909cb7f00121a3dd76cef43ee822e50 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 11:20:31 +0530 Subject: [PATCH 21/29] Updated VI path to be relative to viancfg --- .github/actions/generate_viancfg/generate_viancfg.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/actions/generate_viancfg/generate_viancfg.sh b/.github/actions/generate_viancfg/generate_viancfg.sh index 80f8fb0..00f5054 100644 --- a/.github/actions/generate_viancfg/generate_viancfg.sh +++ b/.github/actions/generate_viancfg/generate_viancfg.sh @@ -52,9 +52,6 @@ echo "" # Get Git root directory GIT_ROOT=$(git rev-parse --show-toplevel) -# Get script directory -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" - # Read template XML and prepare output cp "$TEMPLATE_PATH" "$OUTPUT_PATH" @@ -63,6 +60,9 @@ if [ -n "$OUTPUT_DIR" ] && [ ! -d "$OUTPUT_DIR" ]; then mkdir -p "$OUTPUT_DIR" fi +# Get the absolute path of the output config for relative path calculation +OUTPUT_ABS_DIR=$(cd "$OUTPUT_DIR" && pwd) + # Create a temporary file for the items ITEMS_FILE=$(mktemp) @@ -70,8 +70,8 @@ for file in "${CHANGED_FILES[@]}"; do # Construct absolute path ABSOLUTE_FILE_PATH="$GIT_ROOT/$file" - # Calculate relative path from script folder to the VI - RELATIVE_PATH=$(realpath --relative-to="$SCRIPT_DIR" "$ABSOLUTE_FILE_PATH") + # Calculate relative path from output config to the VI + RELATIVE_PATH=$(realpath --relative-to="$OUTPUT_ABS_DIR" "$ABSOLUTE_FILE_PATH") FORMATTED_PATH="\"$RELATIVE_PATH\"" From dcb026695f17fe72d7528f974b44f9c1f6d24ce2 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 11:33:53 +0530 Subject: [PATCH 22/29] Update the VIs for testing --- Testing/Subfolder/test2.vi | Bin 10905 -> 11437 bytes Testing/test1.vi | Bin 10905 -> 11585 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Testing/Subfolder/test2.vi b/Testing/Subfolder/test2.vi index 341d658f4bbb57991f6eb836104dd3430401d277..2e2ca85398ae32ad102a15b116014bf241bc67cd 100644 GIT binary patch literal 11437 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 cf@z?d4i+((0~?U^f Date: Fri, 13 Feb 2026 12:36:03 +0530 Subject: [PATCH 23/29] Parse the HTML report --- .github/workflows/run-via-tests.yml | 49 ++++++++++++++++++++++++++++- 1 file changed, 48 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index ef24cdc..cdb57dc 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -75,7 +75,54 @@ jobs: -v "${{ github.workspace }}:/workspace" \ nationalinstruments/labview:2025q3patch1-linux \ bash -c "cd /workspace && chmod +x .github/workflows/run-via.sh && ./.github/workflows/run-via.sh" - + + - name: Parse and Display VI Analyzer Results + if: steps.check-config.outputs.config_exists == 'true' && always() + run: | + if [ ! -f "vi-analyzer-report.htm" ]; then + echo "No VI Analyzer report found" + exit 0 + fi + + echo "==================================================" + echo " VI Analyzer Results" + echo "==================================================" + echo "" + + # Extract results using grep and sed + VIS_ANALYZED=$(grep -oP 'VIs Analyzed\K[0-9]+' vi-analyzer-report.htm || echo "0") + TESTS_RUN=$(grep -oP 'Total Tests Run\K[0-9]+' vi-analyzer-report.htm || echo "0") + PASSED=$(grep -oP 'Passed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") + FAILED=$(grep -oP 'Failed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") + SKIPPED=$(grep -oP 'Skipped Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") + + echo "VIs Analyzed: $VIS_ANALYZED" + echo "Total Tests: $TESTS_RUN" + echo "Passed: $PASSED" + echo "Failed: $FAILED" + echo "Skipped: $SKIPPED" + echo "" + + if [ "$FAILED" -gt 0 ]; then + echo "==================================================" + echo " Failed Tests Summary" + echo "==================================================" + + # Extract failed test details (basic parsing) + grep -oP '[^<]+\.vi' vi-analyzer-report.htm | sed 's///g;s/<\/b>//g' | while read vi_name; do + echo "" + echo "$vi_name" + done + + echo "" + echo "See full report in artifacts for details." + echo "==================================================" + exit 1 # Fail the workflow if tests failed + else + echo "All tests passed!" + echo "==================================================" + fi + - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4 if: always() # Upload even if tests fail From 1b5cf95ad6ba49be58b89061adaf50f67a2052a4 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 12:46:18 +0530 Subject: [PATCH 24/29] Log more details from the report --- .github/workflows/run-via-tests.yml | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index cdb57dc..c0b8236 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -108,21 +108,33 @@ jobs: echo " Failed Tests Summary" echo "==================================================" - # Extract failed test details (basic parsing) - grep -oP '[^<]+\.vi' vi-analyzer-report.htm | sed 's///g;s/<\/b>//g' | while read vi_name; do - echo "" - echo "$vi_name" - done + # Extract failed test details + awk ' + /Failed Tests/,/Testing Errors/ { + if (match($0, /([^<]+\.vi)<\/b>/, arr)) { + if (vi_name) print "" + vi_name = arr[1] + printf "\n %s\n", vi_name + print "---" + } + if (match($0, /([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { + test_name = arr[1] + failure_msg = arr[2] + printf " %s\n → %s\n", test_name, failure_msg + } + } + ' vi-analyzer-report.htm echo "" - echo "See full report in artifacts for details." + echo "==================================================" + echo "See full report in artifacts for complete details." echo "==================================================" exit 1 # Fail the workflow if tests failed else - echo "All tests passed!" + echo " All tests passed!" echo "==================================================" fi - + - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4 if: always() # Upload even if tests fail From ebe07f61d50a9b44c1e647d0d9a64032648f78c8 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 14:41:20 +0530 Subject: [PATCH 25/29] Updated the VI Analyzer tests --- .github/workflows/run-via-tests.yml | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index c0b8236..df985ea 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -71,19 +71,22 @@ jobs: - name: Run VI Analyzer tests if: steps.check-config.outputs.config_exists == 'true' run: | + set +e # Disable exit on error temporarily + docker run --rm \ -v "${{ github.workspace }}:/workspace" \ nationalinstruments/labview:2025q3patch1-linux \ bash -c "cd /workspace && chmod +x .github/workflows/run-via.sh && ./.github/workflows/run-via.sh" - - - name: Parse and Display VI Analyzer Results - if: steps.check-config.outputs.config_exists == 'true' && always() - run: | + + VIA_EXIT_CODE=$? + set -e # Re-enable exit on error + if [ ! -f "vi-analyzer-report.htm" ]; then echo "No VI Analyzer report found" - exit 0 + exit $VIA_EXIT_CODE fi + echo "" echo "==================================================" echo " VI Analyzer Results" echo "==================================================" @@ -96,11 +99,11 @@ jobs: FAILED=$(grep -oP 'Failed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") SKIPPED=$(grep -oP 'Skipped Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") - echo "VIs Analyzed: $VIS_ANALYZED" - echo "Total Tests: $TESTS_RUN" - echo "Passed: $PASSED" - echo "Failed: $FAILED" - echo "Skipped: $SKIPPED" + echo "VIs Analyzed: $VIS_ANALYZED" + echo "Total Tests: $TESTS_RUN" + echo "Passed: $PASSED" + echo "Failed: $FAILED" + echo "Skipped: $SKIPPED" echo "" if [ "$FAILED" -gt 0 ]; then @@ -129,12 +132,14 @@ jobs: echo "==================================================" echo "See full report in artifacts for complete details." echo "==================================================" - exit 1 # Fail the workflow if tests failed + exit $VIA_EXIT_CODE else echo " All tests passed!" echo "==================================================" fi + exit $VIA_EXIT_CODE + - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4 if: always() # Upload even if tests fail From 48e9d761480d35c5f98f643b1fd5f219f4f124e4 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 15:20:11 +0530 Subject: [PATCH 26/29] Move the parsing logic to a script --- .github/workflows/parse-via-report.sh | 145 ++++++++++++++++++++++++++ .github/workflows/run-via-tests.yml | 60 +---------- 2 files changed, 147 insertions(+), 58 deletions(-) create mode 100644 .github/workflows/parse-via-report.sh diff --git a/.github/workflows/parse-via-report.sh b/.github/workflows/parse-via-report.sh new file mode 100644 index 0000000..3d1e205 --- /dev/null +++ b/.github/workflows/parse-via-report.sh @@ -0,0 +1,145 @@ +#!/bin/bash +set -e + +if [ ! -f "vi-analyzer-report.htm" ]; then + echo "No VI Analyzer report found" + exit $VIA_EXIT_CODE +fi + +echo "" +echo "==================================================" +echo " VI Analyzer Results" +echo "==================================================" +echo "" + +# Extract results +VIS_ANALYZED=$(grep -oP 'VIs Analyzed\K[0-9]+' vi-analyzer-report.htm || echo "0") +TESTS_RUN=$(grep -oP 'Total Tests Run\K[0-9]+' vi-analyzer-report.htm || echo "0") +PASSED=$(grep -oP 'Passed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") +FAILED=$(grep -oP 'Failed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") +SKIPPED=$(grep -oP 'Skipped Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") + +# Extract error counts +VI_NOT_LOADABLE=$(grep -oP 'VI not loadable\K[0-9]+' vi-analyzer-report.htm || echo "0") +TEST_NOT_LOADABLE=$(grep -oP 'Test not loadable\K[0-9]+' vi-analyzer-report.htm || echo "0") +TEST_NOT_RUNNABLE=$(grep -oP 'Test not runnable\K[0-9]+' vi-analyzer-report.htm || echo "0") +TEST_ERROR_OUT=$(grep -oP 'Test error out\K[0-9]+' vi-analyzer-report.htm || echo "0") + +echo "VIs Analyzed: $VIS_ANALYZED" +echo "Total Tests: $TESTS_RUN" +echo "Passed: $PASSED" +echo "Failed: $FAILED" +echo "Skipped: $SKIPPED" +echo "" + +if [ "$FAILED" -gt 0 ]; then + echo "==================================================" + echo " Failed Tests Summary" + echo "==================================================" + + # Extract failed test details + awk ' + /Failed Tests/,/Testing Errors/ { + if (match($0, /([^<]+\.vi)<\/b>/, arr)) { + if (vi_name) print "" + vi_name = arr[1] + printf "\n %s\n", vi_name + print "---" + } + if (match($0, /([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { + test_name = arr[1] + failure_msg = arr[2] + printf " %s\n → %s\n", test_name, failure_msg + } + } + ' vi-analyzer-report.htm + echo "" + HAS_ERRORS=1 +fi + +if [ "$VI_NOT_LOADABLE" -gt 0 ]; then + echo "==================================================" + echo " VI Not Loadable Errors" + echo "==================================================" + + awk ' + /

VI Not Loadable<\/h3>/,/<\/table>/ { + if (match($0, /([^<]+)<\/td>([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { + vi_name = arr[1] + vi_path = arr[2] + error_msg = arr[3] + printf "\n %s\n", vi_name + printf " Path: %s\n", vi_path + printf " %s\n", error_msg + } + } + ' vi-analyzer-report.htm + echo "" + HAS_ERRORS=1 +fi + +if [ "$TEST_NOT_LOADABLE" -gt 0 ]; then + echo "==================================================" + echo " Test Not Loadable Errors" + echo "==================================================" + + awk ' + /

Test Not Loadable<\/h3>/,/<\/table>/ { + if (match($0, /([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { + test_name = arr[1] + error_msg = arr[2] + printf "\n %s\n → %s\n", test_name, error_msg + } + } + ' vi-analyzer-report.htm + echo "" + HAS_ERRORS=1 +fi + +if [ "$TEST_NOT_RUNNABLE" -gt 0 ]; then + echo "==================================================" + echo " Test Not Runnable Errors" + echo "==================================================" + + awk ' + /

Test Not Runnable<\/h3>/,/<\/table>/ { + if (match($0, /([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { + test_name = arr[1] + error_msg = arr[2] + printf "\n %s\n → %s\n", test_name, error_msg + } + } + ' vi-analyzer-report.htm + echo "" + HAS_ERRORS=1 +fi + +if [ "$TEST_ERROR_OUT" -gt 0 ]; then + echo "==================================================" + echo " Test Error Out Errors" + echo "==================================================" + + awk ' + /

Test Error Out<\/h3>/,/<\/table>/ { + if (match($0, /([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { + test_name = arr[1] + error_msg = arr[2] + printf "\n %s\n → %s\n", test_name, error_msg + } + } + ' vi-analyzer-report.htm + echo "" + HAS_ERRORS=1 +fi + +if [ "$HAS_ERRORS" -eq 1 ]; then + echo "" + echo "==================================================" + echo "See full report in artifacts for complete details." + echo "==================================================" +else + echo " All tests passed!" + echo "==================================================" +fi + +exit $VIA_EXIT_CODE \ No newline at end of file diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index df985ea..d213b5c 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -81,64 +81,8 @@ jobs: VIA_EXIT_CODE=$? set -e # Re-enable exit on error - if [ ! -f "vi-analyzer-report.htm" ]; then - echo "No VI Analyzer report found" - exit $VIA_EXIT_CODE - fi - - echo "" - echo "==================================================" - echo " VI Analyzer Results" - echo "==================================================" - echo "" - - # Extract results using grep and sed - VIS_ANALYZED=$(grep -oP 'VIs Analyzed\K[0-9]+' vi-analyzer-report.htm || echo "0") - TESTS_RUN=$(grep -oP 'Total Tests Run\K[0-9]+' vi-analyzer-report.htm || echo "0") - PASSED=$(grep -oP 'Passed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") - FAILED=$(grep -oP 'Failed Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") - SKIPPED=$(grep -oP 'Skipped Tests\K[0-9]+' vi-analyzer-report.htm || echo "0") - - echo "VIs Analyzed: $VIS_ANALYZED" - echo "Total Tests: $TESTS_RUN" - echo "Passed: $PASSED" - echo "Failed: $FAILED" - echo "Skipped: $SKIPPED" - echo "" - - if [ "$FAILED" -gt 0 ]; then - echo "==================================================" - echo " Failed Tests Summary" - echo "==================================================" - - # Extract failed test details - awk ' - /Failed Tests/,/Testing Errors/ { - if (match($0, /([^<]+\.vi)<\/b>/, arr)) { - if (vi_name) print "" - vi_name = arr[1] - printf "\n %s\n", vi_name - print "---" - } - if (match($0, /([^<]+)<\/td>([^<]+)<\/td><\/tr>/, arr)) { - test_name = arr[1] - failure_msg = arr[2] - printf " %s\n → %s\n", test_name, failure_msg - } - } - ' vi-analyzer-report.htm - - echo "" - echo "==================================================" - echo "See full report in artifacts for complete details." - echo "==================================================" - exit $VIA_EXIT_CODE - else - echo " All tests passed!" - echo "==================================================" - fi - - exit $VIA_EXIT_CODE + chmod +x .github/workflows/parse-via-report.sh + ./.github/workflows/parse-via-report.sh "$VIA_EXIT_CODE" - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4 From 4a0139f5764255a9ce583c5c17bdcc3a06cf0220 Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Fri, 13 Feb 2026 15:26:43 +0530 Subject: [PATCH 27/29] Update script to use VIA_EXIT_CODE --- .github/workflows/parse-via-report.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/parse-via-report.sh b/.github/workflows/parse-via-report.sh index 3d1e205..5dcdf8c 100644 --- a/.github/workflows/parse-via-report.sh +++ b/.github/workflows/parse-via-report.sh @@ -1,5 +1,6 @@ #!/bin/bash set -e +VIA_EXIT_CODE="${1:-0}" if [ ! -f "vi-analyzer-report.htm" ]; then echo "No VI Analyzer report found" From 879e0dfdeca16427a422089b22a69951498e05fb Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Mon, 16 Feb 2026 10:26:49 +0530 Subject: [PATCH 28/29] Improved logic to handle manual triggers --- .github/via-config.viancfg | 1057 +++++++++++++++++++++++++++ .github/workflows/run-via-tests.yml | 39 +- .github/workflows/run-via.sh | 5 +- 3 files changed, 1087 insertions(+), 14 deletions(-) create mode 100644 .github/via-config.viancfg 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 d213b5c..ca2d21f 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -38,30 +38,41 @@ jobs: with: fetch-depth: 0 # Fetch all history + - name: Determine config file path + id: config-path + run: | + if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then + echo "path=.github/via-config.viancfg" >> $GITHUB_OUTPUT + else + echo "path=generated-config.viancfg" >> $GITHUB_OUTPUT + fi + - name: Generate VI Analyzer Config + if: github.event_name != 'workflow_dispatch' uses: ./.github/actions/generate_viancfg with: template-path: '.github/actions/generate_viancfg/via_template_linux.viancfg' output-path: 'generated-config.viancfg' base-branch: origin/${{ github.event.pull_request.base.ref || 'develop' }} - - name: Upload Generated Config (Debug) # TODO: Delete this step later - uses: actions/upload-artifact@v4 - if: always() - with: - name: generated-viancfg - path: generated-config.viancfg - retention-days: 7 - if-no-files-found: ignore - - - name: Check if config was generated + - name: Validate if config file exists id: check-config run: | - if [ -f "generated-config.viancfg" ]; then + CONFIG_FILE="${{ steps.config-path.outputs.path }}" + + if [ -f "$CONFIG_FILE" ]; then + echo "Using config: $CONFIG_FILE" echo "config_exists=true" >> $GITHUB_OUTPUT else - echo "No LabVIEW files changed; skipping VI Analyzer tests." + echo "Error: Config file not found at $CONFIG_FILE" echo "config_exists=false" >> $GITHUB_OUTPUT + + if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then + echo "Manual trigger requires .github/via-config.viancfg to exist" + exit 1 + else + echo "No LabVIEW files changed; skipping VI Analyzer tests." + fi fi - name: Pull Docker Image @@ -70,13 +81,15 @@ jobs: - name: Run VI Analyzer tests if: steps.check-config.outputs.config_exists == 'true' + env: + CONFIG_PATH: ${{ steps.config-path.outputs.path }} run: | set +e # Disable exit on error temporarily docker run --rm \ -v "${{ github.workspace }}:/workspace" \ nationalinstruments/labview:2025q3patch1-linux \ - bash -c "cd /workspace && chmod +x .github/workflows/run-via.sh && ./.github/workflows/run-via.sh" + bash -c "cd /workspace && chmod +x .github/workflows/run-via.sh && ./.github/workflows/run-via.sh '$CONFIG_PATH'" VIA_EXIT_CODE=$? set -e # Re-enable exit on error diff --git a/.github/workflows/run-via.sh b/.github/workflows/run-via.sh index 0d81674..21c623d 100644 --- a/.github/workflows/run-via.sh +++ b/.github/workflows/run-via.sh @@ -2,7 +2,10 @@ set -e # VI Analyzer script for GitHub Actions -ABSOLUTE_CONFIG="/workspace/generated-config.viancfg" + +# Accept config path as first argument, default to generated-config.viancfg +CONFIG_PATH="${1:-generated-config.viancfg}" +ABSOLUTE_CONFIG="/workspace/$CONFIG_PATH" ABSOLUTE_REPORT="/workspace/vi-analyzer-report.htm" LV_YEAR="${LV_YEAR:-2025}" LABVIEW_PATH="/usr/local/natinst/LabVIEW-${LV_YEAR}-64/labview" From 8864593a498d9c953d3087e8aeebdbe9386f66ac Mon Sep 17 00:00:00 2001 From: Krishna Sharma Date: Mon, 16 Feb 2026 10:46:09 +0530 Subject: [PATCH 29/29] Update folder structure to meet open-src standards --- .github/{workflows => scripts}/parse-via-report.sh | 0 .github/{workflows => scripts}/run-via.sh | 0 .github/workflows/run-via-tests.yml | 6 +++--- 3 files changed, 3 insertions(+), 3 deletions(-) rename .github/{workflows => scripts}/parse-via-report.sh (100%) rename .github/{workflows => scripts}/run-via.sh (100%) diff --git a/.github/workflows/parse-via-report.sh b/.github/scripts/parse-via-report.sh similarity index 100% rename from .github/workflows/parse-via-report.sh rename to .github/scripts/parse-via-report.sh diff --git a/.github/workflows/run-via.sh b/.github/scripts/run-via.sh similarity index 100% rename from .github/workflows/run-via.sh rename to .github/scripts/run-via.sh diff --git a/.github/workflows/run-via-tests.yml b/.github/workflows/run-via-tests.yml index ca2d21f..9998df4 100644 --- a/.github/workflows/run-via-tests.yml +++ b/.github/workflows/run-via-tests.yml @@ -89,13 +89,13 @@ jobs: docker run --rm \ -v "${{ github.workspace }}:/workspace" \ nationalinstruments/labview:2025q3patch1-linux \ - bash -c "cd /workspace && chmod +x .github/workflows/run-via.sh && ./.github/workflows/run-via.sh '$CONFIG_PATH'" + bash -c "cd /workspace && chmod +x .github/scripts/run-via.sh && ./.github/scripts/run-via.sh '$CONFIG_PATH'" VIA_EXIT_CODE=$? set -e # Re-enable exit on error - chmod +x .github/workflows/parse-via-report.sh - ./.github/workflows/parse-via-report.sh "$VIA_EXIT_CODE" + chmod +x .github/scripts/parse-via-report.sh + ./.github/scripts/parse-via-report.sh "$VIA_EXIT_CODE" - name: Upload VI Analyzer Report uses: actions/upload-artifact@v4