Skip to content

I added a dialog box #28

I added a dialog box

I added a dialog box #28

name: VIDiff Report - Windows Container
on:
pull_request:
types:
- opened
- synchronize
- reopened
paths:
- '**/*.vi'
permissions:
contents: read
jobs:
run-vidiff:
name: Run VIDiff on changed VIs
runs-on: windows-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v3
with:
fetch-depth: 0
path: pr
- name: Checkout base branch
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.base.sha }}
path: base
- name: Detect changed VI files
id: changed-vis
shell: bash
run: |
cd pr
CHANGED_VIS=$(git diff --name-only --diff-filter=ACMR ${{ github.event.pull_request.base.sha }} ${{ github.sha }} || true)
if [ -z "$CHANGED_VIS" ]; then
echo "No changed files detected."
echo "has_changes=false" >> "$GITHUB_OUTPUT"
else
echo "Changed VI files:"
echo "$CHANGED_VIS"
echo "vi_files<<EOF" >> "$GITHUB_OUTPUT"
echo "$CHANGED_VIS" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
echo "vi_files_csv=$(echo "$CHANGED_VIS" | tr '\n' ',' | sed 's/,$//')" >> "$GITHUB_OUTPUT"
echo "has_changes=true" >> "$GITHUB_OUTPUT"
fi
- name: Pull LabVIEW container image
if: steps.changed-vis.outputs.has_changes == 'true'
run: docker pull nationalinstruments/labview:latest-windows
- name: Run VIDiff
if: steps.changed-vis.outputs.has_changes == 'true'
shell: pwsh
run: |
$viFiles = "${{ steps.changed-vis.outputs.vi_files_csv }}" -split ',' | Where-Object { $_ -ne '' }
foreach ($vi in $viFiles) {
Write-Host "::group::Running VIDiff for $vi"
docker run --rm `
-v "${{ github.workspace }}\pr:C:\workspace" `
-v "${{ github.workspace }}\base:C:\workspace-base" `
nationalinstruments/labview:latest-windows `
powershell -File "C:\workspace\examples\cicd-examples\helper-scripts\vidiff\vidiff.ps1" -WorkspaceRoot "C:\workspace" -WorkspaceBaseRoot "C:\workspace-base" -VIFiles "$vi"
Write-Host "::endgroup::"
}
- name: Upload VIDiff reports
if: steps.changed-vis.outputs.has_changes == 'true'
uses: actions/upload-artifact@v4
with:
name: vidiff-report-windows
path: ${{ github.workspace }}\pr\vidiff-reports\
- name: Save metadata
if: steps.changed-vis.outputs.has_changes == 'true'
shell: bash
run: |
mkdir -p metadata
echo "${{ github.event.pull_request.number }}" > metadata/pr_number
echo "windows" > metadata/platform
- name: Upload metadata
if: steps.changed-vis.outputs.has_changes == 'true'
uses: actions/upload-artifact@v4
with:
name: vidiff-metadata-windows
path: metadata/