Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
d8ae823
Add build-lvlibp-docker action [REQ-039]
Mar 6, 2026
bf9f54f
Add build-lvlibp-docker-linux action [REQ-039]
Mar 6, 2026
5f04f0e
Added docs for build-lvlibp-docker-linux [REQ-039]
Mar 6, 2026
9116f99
Added correct parameters [REQ-039]
Mar 6, 2026
0519e49
Run in Headless mode [REQ-039]
Mar 6, 2026
ee345a9
Redirect outputs to console [REQ-039]
Mar 7, 2026
c48c01d
Remove invalid argument [REQ-039]
Mar 7, 2026
7427fb0
Rename in bash script [REQ-039]
Mar 7, 2026
c821ab1
Copy the logs to host machine [REQ-039]
Mar 7, 2026
c8864bd
Avoid renaming lvlibp [REQ-039]
Mar 7, 2026
902c150
Add action to build PPL in windows docker container [REQ-040]
Mar 9, 2026
2e83f8d
Correct default value of container [REQ-040]
Mar 9, 2026
e9a03d7
Update command to pass script to container [REQ-040]
Mar 9, 2026
85e3d45
Mount directory instead of file [REQ-040]
Mar 9, 2026
7fe2c40
Mount directory instead of file [REQ-040]
Mar 9, 2026
7cb442b
Fix default image tag [REQ-040]
Mar 10, 2026
b4337fb
Added action artifacts [REQ-040]
Mar 10, 2026
34555ba
Added build-lvlibp-win32 action [REQ-041]
Mar 10, 2026
74c1487
Added entries in docs [REQ-040]
Mar 10, 2026
24d996b
Provided explicit LabVIEWCLI path and also minor doc updates [REQ-041]
Mar 10, 2026
3335553
Merge pull request #9 from KSharma-NI/users/krishsha/build-lvlibp-docker
KSharma-NI Mar 11, 2026
f92ae77
Merge branch 'users/krishsha/build-lvlibp-action' into users/krishsha…
KSharma-NI Mar 11, 2026
3d17593
Merge pull request #10 from KSharma-NI/users/krishsha/build-lvlibp-win32
KSharma-NI Mar 11, 2026
fa5a4a3
Updated Version setting logic [REQ-039]
Mar 11, 2026
cbcc37a
Mount the folder with helper VIs [REQ-039]
Mar 11, 2026
64eec12
Mount the folder with helper VIs [REQ-039]
Mar 11, 2026
9617610
Corrected action root path [REQ-039]
Mar 11, 2026
377f980
Print line for debugging [REQ-039]
Mar 11, 2026
ee13be1
Added helper VIs [REQ-039]
Mar 11, 2026
e2ebad8
Fix LabVIEWCLI command [REQ-039]
Mar 11, 2026
f0aa3b9
Updated OpenSourceActions with the optional arguments [REQ-039]
Mar 11, 2026
0b63c1c
Avoid defult value for version [REQ-039]
Mar 11, 2026
f76edce
Removed redundant entry [REQ-039]
Mar 11, 2026
a324924
Updated action to use helper VIs [REQ-040]
Mar 12, 2026
440cadd
Updated helper function [REQ-040]
Mar 12, 2026
c5dfd97
Fixed logic to buuild command [REQ-040]
Mar 12, 2026
0167ea4
Run in Headless mode [REQ-040]
Mar 12, 2026
4e533da
Updated versioning logic [REQ-039]
Mar 12, 2026
436349c
Fix versioning args [REQ-040]
Mar 12, 2026
a4e23b2
Added line for debugging [REQ-040]
Mar 12, 2026
3049dd7
Use helper VI to set version [REQ-041]
Mar 12, 2026
ff63ede
Added line for debugging [REQ-040]
Mar 12, 2026
db41218
Explicitly pass empty string [REQ-040]
Mar 12, 2026
13aaf71
Explicitly pass empty string [REQ-040]
Mar 12, 2026
31a285f
Explicitly pass empty string [REQ-041]
KSharma-NI Mar 12, 2026
9722547
Corrected variable name [REQ-041]
KSharma-NI Mar 12, 2026
45e5e85
Corrected version setting command [REQ-041]
KSharma-NI Mar 12, 2026
991a6c8
Resolve project path [REQ-041]
KSharma-NI Mar 12, 2026
4a62e28
Merge and Resolve conflicts with actions
KSharma-NI Mar 16, 2026
4ffb58f
Updated Pester tests for BuildLvlibp actions [REQ-039][REQ-040][REQ-041]
KSharma-NI Mar 16, 2026
ca2e279
Fix pester test [REQ-039]
KSharma-NI Mar 16, 2026
f5bc70d
Renamed action to make it more generic [REQ-041]
KSharma-NI Mar 17, 2026
b439b25
Renamed docs [REQ-041]
KSharma-NI Mar 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions actions/Invoke-OSAction.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,25 @@ Import-Module (Join-Path $PSScriptRoot 'OpenSourceActions.psm1') -Force
# Attempt to build registry from generated dispatcher metadata; fall back to
# a static map only if loading fails or produces no entries.
$FallbackRegistry = [ordered]@{
'add-token-to-labview' = 'Invoke-AddTokenToLabVIEW'
'apply-vipc' = 'Invoke-ApplyVIPC'
'build' = 'Invoke-Build'
'build-lvlibp' = 'Invoke-BuildLvlibp'
'build-vi-package' = 'Invoke-BuildViPackage'
'close-labview' = 'Invoke-CloseLabVIEW'
'generate-release-notes' = 'Invoke-GenerateReleaseNotes'
'missing-in-project' = 'Invoke-MissingInProject'
'modify-vipb-display-info' = 'Invoke-ModifyVIPBDisplayInfo'
'prepare-labview-source' = 'Invoke-PrepareLabVIEWSource'
'rename-file' = 'Invoke-RenameFile'
'restore-setup-lv-source' = 'Invoke-RestoreSetupLVSource'
'revert-development-mode' = 'Invoke-RevertDevelopmentMode'
'run-pester-tests' = 'Invoke-RunPesterTests'
'run-unit-tests' = 'Invoke-RunUnitTests'
'set-development-mode' = 'Invoke-SetDevelopmentMode'
'add-token-to-labview' = 'Invoke-AddTokenToLabVIEW'
'apply-vipc' = 'Invoke-ApplyVIPC'
'build' = 'Invoke-Build'
'build-lvlibp' = 'Invoke-BuildLvlibp'
'build-lvlibp-docker-linux' = 'Invoke-BuildLvlibpDockerLinux'
'build-lvlibp-docker-windows' = 'Invoke-BuildLvlibpDockerWindows'
'build-lvlibp-github-hosted-windows' = 'Invoke-BuildLvlibpGithubHostedWindows'
'build-vi-package' = 'Invoke-BuildViPackage'
'close-labview' = 'Invoke-CloseLabVIEW'
'generate-release-notes' = 'Invoke-GenerateReleaseNotes'
'missing-in-project' = 'Invoke-MissingInProject'
'modify-vipb-display-info' = 'Invoke-ModifyVIPBDisplayInfo'
'prepare-labview-source' = 'Invoke-PrepareLabVIEWSource'
'rename-file' = 'Invoke-RenameFile'
'restore-setup-lv-source' = 'Invoke-RestoreSetupLVSource'
'revert-development-mode' = 'Invoke-RevertDevelopmentMode'
'run-pester-tests' = 'Invoke-RunPesterTests'
'run-unit-tests' = 'Invoke-RunUnitTests'
'set-development-mode' = 'Invoke-SetDevelopmentMode'
}

$Registry = $null
Expand Down
3 changes: 3 additions & 0 deletions actions/OpenSourceActions.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
'Invoke-ApplyVIPC'
'Invoke-Build'
'Invoke-BuildLvlibp'
'Invoke-BuildLvlibpDockerLinux'
'Invoke-BuildLvlibpDockerWindows'
'Invoke-BuildLvlibpGithubHostedWindows'
'Invoke-BuildViPackage'
'Invoke-CloseLabVIEW'
'Invoke-ConfigureLabview'
Expand Down
165 changes: 165 additions & 0 deletions actions/OpenSourceActions.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,171 @@ function Invoke-BuildLvlibp {
return Invoke-OpenSourceActionScript -ScriptSegments @('build-lvlibp','Build_lvlibp.ps1') -Arguments $args -DryRun:$DryRun -gcliPath $gcliPath
}

# Builds LabVIEW Packed Project Library (.lvlibp) using Linux Docker container.
# MinimumSupportedLVVersion: LabVIEW version for the build (e.g., "2021", "2026").
# SupportedBitness: Bitness of the LabVIEW environment ("32" or "64").
# ProjectPath: Path to the LabVIEW project .lvproj file.
# TargetName: Target that contains the build specification (optional, defaults to "My Computer").
# BuildSpecName: Name of the LabVIEW build specification (optional, builds all if empty).
# Major: Major version component (optional, skips version setting if < 0).
# Minor: Minor version component (optional, skips version setting if < 0).
# Patch: Patch version component (optional, skips version setting if < 0).
# Build: Build number component (optional, skips version setting if < 0).
# Commit: Commit hash or identifier (optional).
# DockerImage: Docker image name (default: "nationalinstruments/labview").
# ImageTag: Docker image tag (defaults to "2026q1-linux").
# DryRun: If set, prints the command instead of executing it.
# gcliPath: Optional path prepended to PATH for locating the g CLI.
function Invoke-BuildLvlibpDockerLinux {
[CmdletBinding()]
param(
[Parameter(Mandatory)] [string] $MinimumSupportedLVVersion,
[Parameter(Mandatory)] [string] $SupportedBitness,
[Parameter(Mandatory)] [string] $ProjectPath,
[Parameter()] [string] $TargetName = "",
[Parameter()] [string] $BuildSpecName = "",
[Parameter()] [int] $Major = -1,
[Parameter()] [int] $Minor = -1,
[Parameter()] [int] $Patch = -1,
[Parameter()] [int] $Build = -1,
[Parameter()] [string] $Commit = "",
[Parameter()] [string] $DockerImage = "nationalinstruments/labview",
[Parameter()] [string] $ImageTag = "2026q1-linux",
[switch] $DryRun,
[string] $gcliPath
)
Write-Information "Invoking BuildLvlibpDockerLinux" -InformationAction Continue

$result = Invoke-OpenSourceActionScript `
-ScriptSegments @('build-lvlibp-docker-linux', 'BuildLvlibpDockerLinux.ps1') `
-Arguments @{
MinimumSupportedLVVersion = $MinimumSupportedLVVersion
SupportedBitness = $SupportedBitness
ProjectPath = $ProjectPath
TargetName = $TargetName
BuildSpecName = $BuildSpecName
Major = $Major
Minor = $Minor
Patch = $Patch
Build = $Build
Commit = $Commit
DockerImage = $DockerImage
ImageTag = $ImageTag
} `
-DryRun:$DryRun `
-gcliPath $gcliPath

return $result
}

# Builds LabVIEW Packed Project Library (.lvlibp) using Windows Docker container.
# MinimumSupportedLVVersion: LabVIEW version for the build (e.g., "2021", "2026").
# SupportedBitness: Bitness of the LabVIEW environment ("32" or "64").
# ProjectPath: Path to the LabVIEW project .lvproj file.
# TargetName: Target that contains the build specification (optional, defaults to "My Computer").
# BuildSpecName: Name of the LabVIEW build specification (optional, builds all if empty).
# Major: Major version component (optional, skips version setting if < 0).
# Minor: Minor version component (optional, skips version setting if < 0).
# Patch: Patch version component (optional, skips version setting if < 0).
# Build: Build number component (optional, skips version setting if < 0).
# Commit: Commit hash or identifier (optional).
# DockerImage: Docker image name (default: "nationalinstruments/labview").
# ImageTag: Docker image tag (defaults to "2026q1-windows").
# DryRun: If set, prints the command instead of executing it.
# gcliPath: Optional path prepended to PATH for locating the g CLI.
function Invoke-BuildLvlibpDockerWindows {
[CmdletBinding()]
param(
[Parameter(Mandatory)] [string] $MinimumSupportedLVVersion,
[Parameter(Mandatory)] [string] $SupportedBitness,
[Parameter(Mandatory)] [string] $ProjectPath,
[Parameter()] [string] $TargetName = "",
[Parameter()] [string] $BuildSpecName = "",
[Parameter()] [int] $Major = -1,
[Parameter()] [int] $Minor = -1,
[Parameter()] [int] $Patch = -1,
[Parameter()] [int] $Build = -1,
[Parameter()] [string] $Commit = "",
[Parameter()] [string] $DockerImage = "nationalinstruments/labview",
[Parameter()] [string] $ImageTag = "2026q1-windows",
[switch] $DryRun,
[string] $gcliPath
)
Write-Information "Invoking BuildLvlibpDockerWindows" -InformationAction Continue

$result = Invoke-OpenSourceActionScript `
-ScriptSegments @('build-lvlibp-docker-windows', 'BuildLvlibpDockerWindows.ps1') `
-Arguments @{
MinimumSupportedLVVersion = $MinimumSupportedLVVersion
SupportedBitness = $SupportedBitness
ProjectPath = $ProjectPath
TargetName = $TargetName
BuildSpecName = $BuildSpecName
Major = $Major
Minor = $Minor
Patch = $Patch
Build = $Build
Commit = $Commit
DockerImage = $DockerImage
ImageTag = $ImageTag
} `
-DryRun:$DryRun `
-gcliPath $gcliPath

return $result
}

# Builds LabVIEW Packed Project Library (.lvlibp) using Windows GitHub-hosted runner.
# MinimumSupportedLVVersion: LabVIEW version for the build (e.g., "2021", "2026").
# SupportedBitness: Bitness of the LabVIEW environment ("32" or "64").
# ProjectPath: Path to the LabVIEW project .lvproj file.
# TargetName: Target that contains the build specification (optional, defaults to "My Computer").
# BuildSpecName: Name of the LabVIEW build specification (optional, builds all if empty).
# Major: Major version component (optional, skips version setting if < 0).
# Minor: Minor version component (optional, skips version setting if < 0).
# Patch: Patch version component (optional, skips version setting if < 0).
# Build: Build number component (optional, skips version setting if < 0).
# Commit: Commit hash or identifier (optional).
# DryRun: If set, prints the command instead of executing it.
# gcliPath: Optional path prepended to PATH for locating the g CLI.
function Invoke-BuildLvlibpGithubHostedWindows {
[CmdletBinding()]
param(
[Parameter(Mandatory)] [string] $MinimumSupportedLVVersion,
[Parameter(Mandatory)] [string] $SupportedBitness,
[Parameter(Mandatory)] [string] $ProjectPath,
[Parameter()] [string] $TargetName = "",
[Parameter()] [string] $BuildSpecName = "",
[Parameter()] [int] $Major = -1,
[Parameter()] [int] $Minor = -1,
[Parameter()] [int] $Patch = -1,
[Parameter()] [int] $Build = -1,
[Parameter()] [string] $Commit = "",
[switch] $DryRun,
[string] $gcliPath
)
Write-Information "Invoking BuildLvlibpGithubHostedWindows" -InformationAction Continue

$result = Invoke-OpenSourceActionScript `
-ScriptSegments @('build-lvlibp-github-hosted-windows', 'BuildLvlibpGithubHostedWindows.ps1') `
-Arguments @{
MinimumSupportedLVVersion = $MinimumSupportedLVVersion
SupportedBitness = $SupportedBitness
ProjectPath = $ProjectPath
TargetName = $TargetName
BuildSpecName = $BuildSpecName
Major = $Major
Minor = $Minor
Patch = $Patch
Build = $Build
Commit = $Commit
} `
-DryRun:$DryRun `
-gcliPath $gcliPath

return $result
}

# Closes any running instance of LabVIEW.
# MinimumSupportedLVVersion: Minimum LabVIEW version that the project supports.
# SupportedBitness: Target LabVIEW bitness (32- or 64-bit).
Expand Down
Loading
Loading