This document provides a collection of common troubleshooting scenarios (with solutions) and a FAQ (Frequently Asked Questions) for the LabVIEW Icon Editor GitHub Actions workflows. Refer back to the main CI guide if you need overall setup instructions or deeper references.
-
- No. 1: LabVIEW Not Found on Runner
- No. 2: No
.vipArtifact Found - No. 3: Version Label Not Recognized
- No. 4: Build Number Not Updating
- No. 5: Dev Mode Still Enabled After Build
- No. 6: Release Not Created
- No. 7: Branch Protection Blocks Merge
- No. 8: Incorrect Pre-Release Suffix (Alpha/Beta/RC)
- No. 9: Hotfix Not Tagged as Expected
- No. 10: Double-Dash Parameters Not Recognized
- No. 11: Company/Author Fields Not Populating
- No. 12: JSON Fields Overwritten Incorrectly
- No. 13: Repository Forks Not Displaying Correct Metadata
- No. 14: Dev Mode Failure Missing Paths
- No. 15: Verify IE Paths Gate Fails in CI
-
- Q1: Can I Override the Build Number?
- Q2: How Do I Create a Release?
- Q3: Can I Have More Than Alpha, Beta, or RC Channels?
- Q4: How Can I Attach Multiple
.vipFiles to a Release? - Q5: Do I Need To Merge Hotfixes Into
develop? - Q6: What About Draft Releases?
- Q7: Can I Use This Workflow Without Gitflow?
- Q8: Why Is My Dev Mode Toggle Not Working Locally?
- Q9: Can I Use a Different LabVIEW Version?
- Q10: How Do I Pass Repository Name and Organization?
- Q11: Can I Omit the Company/Author Fields in My JSON?
- Q12: Why Must I Use Single-Dash Instead of Double-Dash?
- Q13: Can I Add More Fields to the VIPB Display Information?
Below are 14 possible issues you might encounter, along with suggested steps to resolve them.
Symptoms:
- The workflow fails with an error like “LabVIEW executable not found” or “Command not recognized.”
Possible Causes:
- LabVIEW isn’t installed on the self-hosted runner.
- The environment variable or path to LabVIEW isn’t set correctly.
Solution:
- Ensure you’ve actually installed LabVIEW on the machine (e.g., LabVIEW 2021 (21.0)).
- Double-check your PATH or environment variables.
- See
runner-setup-guide.mdfor details on configuring the runner to locate LabVIEW.
Symptoms:
- The build succeeds, but the “Upload artifact” step fails with “File not found” or empty artifact.
Possible Causes:
- The
Build.ps1script didn’t actually produce a.vipfile in the expected folder. - The workflow’s “paths” setting doesn’t match the output directory.
Solution:
- Check your “Build VI Package” job logs to confirm the
.vipfile was created. - If it’s created in
builds/VI Package/, ensure the upload step references that folder. - Verify the version of VI Package Manager or the build scripts aren’t failing silently.
Symptoms:
- You labeled your Pull Request “minor” or “patch,” but the version doesn’t increment that segment.
Possible Causes:
- The workflow only checks for certain labels (
major,minor,patch). Typos or different capitalization might be ignored. - You’re pushing directly to a branch instead of creating a PR. Version bumps require a labeled pull request.
Solution:
- Make sure the label is exactly
major,minor, orpatchin lowercase (unless your workflow script also checks for capitalized labels). - Confirm you’re actually using a Pull Request event (not a direct push).
- Check the CI Pipeline (Composite) logs for the version job’s “Determine bump type” step (from
.github/actions/compute-version).
Symptoms:
- Every build produces the same “-buildN” suffix, or the commit count doesn’t match reality.
Possible Causes:
fetch-depthinactions/checkoutmight be set to1, causing an incomplete commit history.- The script uses
git rev-list --count HEAD, but partial history returns a smaller number.
Solution:
- In your workflow’s checkout step, set
fetch-depth: 0(full history). - Verify you haven’t overridden the default
git rev-list --countcommand. - Check that your repository is fully cloned on the runner.
Symptoms:
- You run a build, but the environment remains in “development mode,” causing odd behavior when installing
.vip.
Possible Causes:
- You forgot to run the “disable” step of the Development Mode Toggle.
- Another step re-applied the
Set_Development_Mode.ps1script.
Solution:
- Manually run the “Development Mode Toggle” workflow with
mode=disable. - Confirm your pipeline sequence: typically, dev mode is enabled for debugging only, then disabled prior to final builds.
Symptoms:
- The workflow completes, but you see no new release in GitHub’s “Releases” section.
Possible Causes:
- The composite pipeline only uploads artifacts and does not create releases automatically.
- The build was triggered by a Pull Request, and your workflow logic only creates releases on “push” or merges to main.
Solution:
- Create releases manually through GitHub’s interface or configure a separate workflow to publish them.
- Check your workflow triggers if you expect another workflow to handle releases on certain branches.
- Confirm you have “Read and write” permissions for Actions in your repo settings.
Symptoms:
- You can’t merge into
mainorrelease-alpha/*; GitHub says “Branch is protected.”
Possible Causes:
- Strict branch protection rules require approvals or passing checks before merging.
- The
issue-statusjob determined the branch name or issue status was invalid, so downstream checks were skipped. - You’re lacking the required PR reviews or status checks.
Solution:
- Have the required reviewers approve your Pull Request.
- Ensure all required status checks pass:
issue-status– verifies branch naming and issue status. If it fails or is skipped, downstream jobs won’t run.changes– detects.vipcfile changes.apply-deps– applies VIPC dependencies when needed.missing-in-project– validates project file membership.Run Unit Tests– executes unit tests.Build VI Package– produces the.vipartifact.
- Update your
CONTRIBUTING.mdto specify the merging rules so contributors know what’s needed.
Symptoms:
- You expected a
-beta.<N>suffix, but got-alpha.<N>or no suffix at all.
Possible Causes:
- Your branch name doesn’t match the required pattern:
release-beta/*. - The script that checks for alpha/beta/rc might not be updated for your custom naming.
Solution:
- Rename your branch to the correct pattern:
release-beta/2.0,release-rc/2.0, etc. - If you changed naming conventions, update your workflow logic to detect them (e.g., a RegEx match).
Symptoms:
- Your hotfix branch merges produce a release, but the tag isn’t correct (e.g., it’s missing or still in RC mode).
Possible Causes:
- The workflow might treat
hotfix/*like another pre-release branch if not configured properly. - The branch name might not match exactly
hotfix/(e.g.,hotfix-2.0without a slash).
Solution:
- Ensure your code checks for
hotfix/prefix, nothotfix-. - Confirm you’re merging into main or the correct base.
- Verify the build logs to see how the workflow computed the version and tag.
Symptoms:
- You see an error like:
“A positional parameter cannot be found that accepts argument '--lv-ver'”
Possible Causes:
- PowerShell scripts typically declare parameters with single dashes (e.g.
-SupportedBitness 64). - The script has no parameter named
lv-verorarch, so passing--lv-veror--archtriggers a parsing error.
Solution:
- Remove or replace
--lv-verand--archwith valid single-dash parameters your script actually declares, such as-LabVIEWVersion 2021and-SupportedBitness 64. - If you really want
--lv-ver, you must update the script’sparam()block to accept that alias.
Symptoms:
- The final
.vipfile’s metadata for “Company Name” or “Author Name (Person or Company)” remains empty.
Possible Causes:
- You didn’t pass
-CompanyNameor-AuthorNameto theBuild.ps1script. - The JSON creation step is missing or incorrectly references the parameters.
Solution:
- In your GitHub Actions or local call, ensure you specify both
-CompanyName "XYZ Corp"and-AuthorName "my-org/repo". - Check that the script’s code block generating
$DisplayInformationJSONincludes these fields. - Confirm no conflicting code overwrote your JSON after you set it.
Symptoms:
- You see “Add-Member … already exists” errors, or your
Package Versionkeys get overwritten unexpectedly.
Possible Causes:
- The script is re-adding or re-initializing the same JSON fields multiple times without using
-Force. - Another function in the pipeline modifies the same subobject.
Solution:
- Update your script to conditionally add fields only if they’re missing, or directly assign the property if it already exists.
- If needed, specify
Add-Member -Force(though recommended approach is to check existence first). - Ensure you only do the “Package Version” injection once in your pipeline.
Symptoms:
- A user forks the repository, but the
.vipfile still shows the original repo or organization name.
Possible Causes:
- The fork’s GitHub Actions workflow wasn’t updated to pass the new org name.
- The fork’s build scripts are still using default or stale values for
-CompanyName/-AuthorName.
Solution:
- In the new fork, update the workflow to pass
-CompanyName "${{ github.repository_owner }}"and-AuthorName "${{ github.repository }}". - Check that the script logic references those parameters for the final JSON.
- Review environment variables in GitHub Actions for the fork to ensure they’re set correctly.
Symptoms:
- The workflow fails with error
-593450(enable) or-593451(disable), and the VI error source string prints a comma-separated list of missing paths.
Possible Causes:
- One or more expected folders or files are missing in the Icon Editor source or the LabVIEW Icon API setup.
Solution:
- Read the comma-separated missing paths from the VI error source string.
- Restore the missing paths from a known-good install or repo checkout, then re-run the Development Mode Toggle.
Symptoms:
- The first CI gate fails with “Verify IE Paths Gate” or “VerifyIEPaths” errors.
- The job logs show missing paths or an archived
missing_IE_paths.txtfile.
Possible Causes:
- One or more LabVIEW Icon API files are missing in the LabVIEW 2021 (21.0) install.
- The runner is in development mode (missing
LabVIEW Icon APIorlv_icon.lvlibp).
Solution:
- Open the “verify-iepaths-32-bit” or “verify-iepaths-64-bit” artifact attached to the failed job.
- Check the comma-separated list of missing paths in
missing_IE_paths.txt. - Restore the missing files (or revert dev mode) and re-run the workflow.
Below are 14 frequently asked questions about the CI workflow and Gitflow process.
Answer:
By default, the workflow calculates the build number with git rev-list --count HEAD. This ensures sequential builds. If you want a custom offset or manual override, you’d need to modify the build script. However, that breaks the linear progression and isn’t recommended.
Answer: The composite pipeline only uploads artifacts and does not create GitHub releases automatically. Create releases manually through the GitHub interface or set up a separate workflow dedicated to publishing them.
Answer:
Yes, you can add logic for release-gamma/* or any naming scheme. Just update the portion of your workflow that checks branch names and appends the appropriate suffix.
Answer:
Modify the artifact collection or upload steps to match multiple .vip patterns (e.g., *.vip). Then, in the “Attach Artifacts” step, loop over all matches and upload each.
Answer:
Yes. In standard Gitflow, after merging a hotfix/* into main, you also merge it back into develop so that your fix is reflected in ongoing development. Otherwise, you risk reintroducing the bug in future releases.
Answer: The composite pipeline doesn’t create releases, so draft releases are not generated. If you require a draft or published release, create it manually or configure a separate workflow to handle release creation.
Answer:
Technically yes, if you don’t rely on alpha/beta/rc branch naming. But the workflow is designed with Gitflow in mind, so some features (like pre-release suffix detection) might not apply if you only have main.
Answer:
The Dev Mode Toggle scripts rely on a self-hosted runner context. If you’re trying to run them directly on your machine outside GitHub Actions, you might need to adapt the PowerShell scripts or replicate the environment variables. Check logs to see if your system path matches what the scripts expect.
Answer:
CI usage is standardized on LabVIEW 2021 (21.0), 32-bit and 64-bit. Other versions aren’t supported for the default workflows. If you want to use a different version locally, you’ll need to fork and update the scripts/workflows to match that version.
Answer:
Inside GitHub Actions, you can reference environment variables such as ${{ github.repository_owner }} and ${{ github.event.repository.name }}. Set them first in your workflow step and then pass them to your script:
env:
REPO_OWNER: ${{ github.repository_owner }}
REPO_NAME: ${{ github.event.repository.name }}
run: |
.\build_vip.ps1 -CompanyName "$env:REPO_OWNER" -AuthorName "$env:REPO_NAME"${{ github.repository }} returns owner/repo, so it isn’t suitable for the author field. Using the separate owner and repository values ensures your build is branded correctly when DisplayInformationJSON is injected by build_vip.ps1.
Answer:
Yes. If you don’t want to display them, pass empty strings (-CompanyName "" -AuthorName "") or remove those fields from your script’s JSON object. The final .vip file will simply show blank lines or omit those entries.
Answer:
PowerShell named parameters typically start with a single dash (-Parameter). Double-dash syntax (--param) is common in Linux CLI tools but is not standard in a typical PowerShell param() declaration. If you try to pass --arch or --lv-ver, you’ll get an error about an unrecognized parameter.
Answer:
Absolutely. You can modify $jsonObject in your script to include new keys, such as "Product Description" or "Special Internal ID". Just be sure that the VI that updates the .vipb file (Modify_VIPB_Display_Information.vi) knows how to handle those additional fields, or they might be ignored.