- Install Requirements: Ensure you have NI LabVIEW (with command-line interface support, often via g-cli) installed on the target runner. Most actions require LabVIEW and the NI g-cli tool to be available (Ubuntu runners are recommended). Also verify PowerShell 7+ (
pwsh) is available for cross-platform script execution. Install Node.js 24+ and runnpm installto pull in the TypeScript dependencies used by helper scripts. Decide whether to execute on a standard GitHub-hosted runner or an integration runner (a self-hosted machine with preinstalled tooling such as LabVIEW and g-cli); see runner-types for details. - Invoke via Composite Action (GitHub): Use the adapter-specific action in your workflow. Each task is implemented by a PowerShell adapter script and surfaced via a GitHub Action wrapper. For example, to build a LabVIEW Packed Library:
jobs:
build_lvlibp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Packed Library (32-bit)
uses: LabVIEW-Community-CI-CD/open-source/build-lvlibp@v1
with:
minimum_supported_lv_version: '2019'
supported_bitness: '32'
working_directory: .
relative_path: .
labview_project: MyProject.lvproj
build_spec: My Build
major: 1
minor: 0
patch: 0
build: 123
commit: abcdefIn this step, the wrapper action (a composite GitHub Action) invokes the dispatcher to run the build-lvlibp adapter script. The typed inputs provide the required parameters to build a 32-bit LV library. The dispatcher locates the appropriate script and executes it, failing the step if a problem occurs. 3. Invoke via PowerShell (CLI): You can also call the dispatcher script directly. For example, the above build can be run in a PowerShell session or script:
$json = @'
{
"MinimumSupportedLVVersion": "2019",
"SupportedBitness": "32",
"WorkingDirectory": ".",
"RelativePath": ".",
"LabVIEW_Project": "MyProject.lvproj",
"Build_Spec": "My Build",
"Major": 1,
"Minor": 0,
"Patch": 0,
"Build": 123,
"Commit": "abcdef"
}
'@
pwsh -File actions/Invoke-OSAction.ps1 -ActionName build-lvlibp -ArgsJson $jsonArguments can also be loaded from a JSON file:
pwsh -File actions/Invoke-OSAction.ps1 -ActionName build-lvlibp -ArgsFile ./config/build.jsonThis will import the OpenSourceActions module and run the Build adapter. On completion, the script returns with an exit code (0 for success or a non-zero error code). You can include optional flags like -WorkingDirectory to change directory before execution, or -DryRun to simulate the action (see below). For details on these and other dispatcher flags, see Common Parameters.
4. Confirm Results: After running, check the console output and exit code. The unified dispatcher prints informative logs (at INFO level by default) and any errors encountered. For GitHub Actions, a non-zero exit code will mark the step as failed, surfacing any error messages thrown by the adapter or underlying script.
Chain the apply-vipc, set-development-mode, build, and revert-development-mode actions to build the LabVIEW Icon Editor:
jobs:
build_icon_editor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
repository: LabVIEW-Community-CI-CD/labview-icon-editor
path: labview-icon-editor
- uses: LabVIEW-Community-CI-CD/open-source/apply-vipc@v1
with:
minimum_supported_lv_version: '2021'
vip_lv_version: '2021'
supported_bitness: '64'
working_directory: labview-icon-editor
relative_path: '.'
vipc_path: labview-icon-editor/.github/actions/apply-vipc/runner_dependencies.vipc
- uses: LabVIEW-Community-CI-CD/open-source/set-development-mode@v1
with:
minimum_supported_lv_version: '2021'
supported_bitness: '64'
working_directory: labview-icon-editor
relative_path: '.'
- uses: LabVIEW-Community-CI-CD/open-source/build@v1
with:
working_directory: labview-icon-editor
relative_path: '.'
major: 1
minor: 0
patch: 0
build: 0
commit: abcdef
labview_minor_revision: '3'
company_name: 'Acme Corp'
author_name: 'Jane Doe'
- uses: LabVIEW-Community-CI-CD/open-source/revert-development-mode@v1
with:
working_directory: labview-icon-editor
relative_path: '.'See the troubleshooting guide for help with setup issues, missing dependencies, and exit codes.