Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
26 changes: 19 additions & 7 deletions .github/workflows/reusable-vipm-lock.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ on:
required: false
type: boolean
default: false
manifest_filename:
description: 'Manifest filename (relative to working_directory) to read, e.g. "runner_dependencies.toml".'
required: false
type: string
default: 'vipm.toml'
lock_filename:
description: 'Lock filename (relative to working_directory) to generate/check, e.g. "runner_dependencies.lock".'
required: false
type: string
default: 'vipm.lock'
base_branch:
description: 'Target branch for the generated pull request.'
required: true
Expand Down Expand Up @@ -47,12 +57,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- uses: ni/open-source/refresh-vipm-lock@users/amrutha/vipm-lock-refresh-and-dependency-update
- uses: ni/open-source/refresh-vipm-lock@users/amrutha/vipm-custom-manifest-support # TODO: revert to @actions before merging
with:
working_directory: ${{ inputs.working_directory }}
labview_version: ${{ inputs.labview_version }}
labview_bitness: ${{ inputs.labview_bitness }}
check_only: ${{ inputs.check_only }}
manifest_filename: ${{ inputs.manifest_filename }}
lock_filename: ${{ inputs.lock_filename }}
vipm_serial_number: ${{ secrets.VIPM_SERIAL_NUMBER }}
vipm_full_name: ${{ secrets.VIPM_FULL_NAME }}
vipm_email: ${{ secrets.VIPM_EMAIL }}
Expand All @@ -61,19 +73,19 @@ jobs:
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
with:
name: vipm-lock
path: ${{ inputs.working_directory }}/vipm.lock
path: ${{ inputs.working_directory }}/${{ inputs.lock_filename }}
if-no-files-found: error
- uses: peter-evans/create-pull-request@5f6978faf089d4d20b00c7766989d076bb2fc7f1
if: ${{ !inputs.check_only }}
with:
commit-message: 'chore(deps): refresh vipm.lock'
title: 'chore(deps): refresh vipm.lock'
commit-message: 'chore(deps): refresh ${{ inputs.lock_filename }}'
title: 'chore(deps): refresh ${{ inputs.lock_filename }}'
body: |
Automated `vipm.lock` refresh generated by `ni/open-source`'s reusable
Automated `${{ inputs.lock_filename }}` refresh generated by `ni/open-source`'s reusable
`reusable-vipm-lock.yml` workflow.

Review the `vipm.lock` diff before merging.
Review the `${{ inputs.lock_filename }}` diff before merging.
base: ${{ inputs.base_branch }}
branch: ${{ inputs.pr_branch }}
add-paths: ${{ inputs.working_directory }}/vipm.lock
add-paths: ${{ inputs.working_directory }}/${{ inputs.lock_filename }}
labels: ${{ inputs.pr_labels }}
41 changes: 37 additions & 4 deletions .github/workflows/reusable-vipm-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,21 @@ on:
description: 'Target branch for the generated pull request in the caller repository.'
required: true
type: string
manifest_filename:
description: 'Manifest filename (relative to working_directory) to read/update, e.g. "runner_dependencies.toml".'
required: false
type: string
default: 'vipm.toml'
lock_filename:
description: 'Lock filename (relative to working_directory) to regenerate, e.g. "runner_dependencies.lock".'
required: false
type: string
default: 'vipm.lock'
include_dev_dependencies:
description: 'If true, also bumps packages declared under [dev-dependencies] in addition to [dependencies].'
required: false
type: boolean
default: true
pr_branch:
description: 'Branch name to push dependency updates to.'
required: false
Expand Down Expand Up @@ -55,6 +70,21 @@ on:
description: "Optional target branch; defaults to this repository's default branch."
required: false
type: string
manifest_filename:
description: 'Manifest filename (relative to working_directory) to read/update, e.g. "runner_dependencies.toml".'
required: false
type: string
default: 'vipm.toml'
lock_filename:
description: 'Lock filename (relative to working_directory) to regenerate, e.g. "runner_dependencies.lock".'
required: false
type: string
default: 'vipm.lock'
include_dev_dependencies:
description: 'If true, also bumps packages declared under [dev-dependencies] in addition to [dependencies].'
required: false
type: boolean
default: true
pr_branch:
description: 'Branch name to push dependency updates to.'
required: false
Expand All @@ -75,11 +105,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955
- uses: ni/open-source/update-vipm-dependencies@users/amrutha/vipm-lock-refresh-and-dependency-update
- uses: ni/open-source/update-vipm-dependencies@users/amrutha/vipm-custom-manifest-support # TODO: revert to @actions before merging
with:
working_directory: ${{ inputs.working_directory }}
labview_version: ${{ inputs.labview_version }}
labview_bitness: ${{ inputs.labview_bitness }}
manifest_filename: ${{ inputs.manifest_filename }}
lock_filename: ${{ inputs.lock_filename }}
include_dev_dependencies: ${{ inputs.include_dev_dependencies }}
vipm_serial_number: ${{ secrets.VIPM_SERIAL_NUMBER }}
vipm_full_name: ${{ secrets.VIPM_FULL_NAME }}
vipm_email: ${{ secrets.VIPM_EMAIL }}
Expand All @@ -91,10 +124,10 @@ jobs:
Automated dependency update generated by `ni/open-source`'s reusable
`reusable-vipm-update.yml` workflow.

Review the `vipm.toml` / `vipm.lock` diff before merging.
Review the `${{ inputs.manifest_filename }}` / `${{ inputs.lock_filename }}` diff before merging.
base: ${{ inputs.base_branch || github.event.repository.default_branch }}
branch: ${{ inputs.pr_branch }}
add-paths: |
${{ inputs.working_directory }}/vipm.toml
${{ inputs.working_directory }}/vipm.lock
${{ inputs.working_directory }}/${{ inputs.manifest_filename }}
${{ inputs.working_directory }}/${{ inputs.lock_filename }}
labels: ${{ inputs.pr_labels }}
15 changes: 15 additions & 0 deletions actions/OpenSourceActions.psm1
Original file line number Diff line number Diff line change
Expand Up @@ -787,6 +787,8 @@ function Invoke-SetupNipm {
# VipmDebUrl: URL for the VIPM Linux .deb package.
# DockerImage: Docker image name (default: "nationalinstruments/labview").
# ImageTag: Docker image tag (default: "latest-linux").
# ManifestFilename: Manifest filename relative to WorkingDirectory (default: "vipm.toml").
# LockFilename: Lock filename relative to WorkingDirectory (default: "vipm.lock").
# DryRun: If set, prints the command instead of executing it.
function Invoke-RefreshVipmLock {
[CmdletBinding()]
Expand All @@ -801,6 +803,8 @@ function Invoke-RefreshVipmLock {
[Parameter()] [string] $VipmDebUrl = "https://traffic.libsyn.com/secure/jkinc/vipm_26.3.1-4025_amd64.deb",
[Parameter()] [string] $DockerImage = "nationalinstruments/labview",
[Parameter()] [string] $ImageTag = "latest-linux",
[Parameter()] [string] $ManifestFilename = "vipm.toml",
[Parameter()] [string] $LockFilename = "vipm.lock",
[switch] $DryRun
)
Write-Information "Invoking RefreshVipmLock" -InformationAction Continue
Expand All @@ -827,6 +831,8 @@ function Invoke-RefreshVipmLock {
VipmDebUrl = $VipmDebUrl
DockerImage = $DockerImage
ImageTag = $ImageTag
ManifestFilename = $ManifestFilename
LockFilename = $LockFilename
} `
-DryRun:$DryRun

Expand All @@ -843,6 +849,9 @@ function Invoke-RefreshVipmLock {
# VipmDebUrl: URL for the VIPM Linux .deb package.
# DockerImage: Docker image name (default: "nationalinstruments/labview").
# ImageTag: Docker image tag (default: "latest-linux").
# ManifestFilename: Manifest filename relative to WorkingDirectory (default: "vipm.toml").
# LockFilename: Lock filename relative to WorkingDirectory (default: "vipm.lock").
# IncludeDevDependencies: If set, also bumps packages declared under [dev-dependencies].
# DryRun: If set, prints the command instead of executing it.
function Invoke-UpdateVipmDependencies {
[CmdletBinding()]
Expand All @@ -856,6 +865,9 @@ function Invoke-UpdateVipmDependencies {
[Parameter()] [string] $VipmDebUrl = "https://traffic.libsyn.com/secure/jkinc/vipm_26.3.1-4025_amd64.deb",
[Parameter()] [string] $DockerImage = "nationalinstruments/labview",
[Parameter()] [string] $ImageTag = "latest-linux",
[Parameter()] [string] $ManifestFilename = "vipm.toml",
[Parameter()] [string] $LockFilename = "vipm.lock",
[switch] $IncludeDevDependencies,
[switch] $DryRun
)
Write-Information "Invoking UpdateVipmDependencies" -InformationAction Continue
Expand All @@ -881,6 +893,9 @@ function Invoke-UpdateVipmDependencies {
VipmDebUrl = $VipmDebUrl
DockerImage = $DockerImage
ImageTag = $ImageTag
ManifestFilename = $ManifestFilename
LockFilename = $LockFilename
IncludeDevDependencies = $IncludeDevDependencies
} `
-DryRun:$DryRun

Expand Down
33 changes: 31 additions & 2 deletions dispatchers.json
Original file line number Diff line number Diff line change
Expand Up @@ -729,7 +729,7 @@
}
},
"Invoke-RefreshVipmLock": {
"description": "Generates or checks vipm.lock from vipm.toml using the VIPM CLI in a Linux Docker container. WorkingDirectory: Path (relative to the repo root) containing vipm.toml. LabVIEWVersion: LabVIEW version (YYYY) matching the [project] section of vipm.toml. LabVIEWBitness: \"32\" or \"64\" bitness matching the [project] section of vipm.toml. CheckOnly: If set, checks an existing vipm.lock or generates the initial lock when absent. VipmSerialNumber: VIPM Pro serial number (omit to skip activation). VipmFullName: Name used for VIPM Pro activation. VipmEmail: Email used for VIPM Pro activation. VipmDebUrl: URL for the VIPM Linux .deb package. DockerImage: Docker image name (default: \"nationalinstruments/labview\"). ImageTag: Docker image tag (default: \"latest-linux\"). DryRun: If set, prints the command instead of executing it.",
"description": "Generates or checks vipm.lock from vipm.toml using the VIPM CLI in a Linux Docker container. WorkingDirectory: Path (relative to the repo root) containing vipm.toml. LabVIEWVersion: LabVIEW version (YYYY) matching the [project] section of vipm.toml. LabVIEWBitness: \"32\" or \"64\" bitness matching the [project] section of vipm.toml. CheckOnly: If set, checks an existing vipm.lock or generates the initial lock when absent. VipmSerialNumber: VIPM Pro serial number (omit to skip activation). VipmFullName: Name used for VIPM Pro activation. VipmEmail: Email used for VIPM Pro activation. VipmDebUrl: URL for the VIPM Linux .deb package. DockerImage: Docker image name (default: \"nationalinstruments/labview\"). ImageTag: Docker image tag (default: \"latest-linux\"). ManifestFilename: Manifest filename relative to WorkingDirectory (default: \"vipm.toml\"). LockFilename: Lock filename relative to WorkingDirectory (default: \"vipm.lock\"). DryRun: If set, prints the command instead of executing it.",
"parameters": {
"CheckOnly": {
"type": "boolean",
Expand Down Expand Up @@ -763,6 +763,18 @@
"required": false,
"description": "LabVIEW version (YYYY) matching the [project] section of vipm"
},
"LockFilename": {
"type": "string",
"required": false,
"default": "vipm.lock",
"description": "Lock filename relative to WorkingDirectory (default: \"vipm"
},
"ManifestFilename": {
"type": "string",
"required": false,
"default": "vipm.toml",
"description": "Manifest filename relative to WorkingDirectory (default: \"vipm"
},
"VipmDebUrl": {
"type": "string",
"required": false,
Expand Down Expand Up @@ -1030,7 +1042,7 @@
}
},
"Invoke-UpdateVipmDependencies": {
"description": "Bumps every dependency in vipm.toml to its latest available version and regenerates vipm.lock. WorkingDirectory: Path (relative to the repo root) containing vipm.toml. LabVIEWVersion: LabVIEW version (YYYY) matching the [project] section of vipm.toml. LabVIEWBitness: \"32\" or \"64\" bitness matching the [project] section of vipm.toml. VipmSerialNumber: VIPM Pro serial number (`vipm add` requires Community or Professional edition). VipmFullName: Name used for VIPM Pro activation. VipmEmail: Email used for VIPM Pro activation. VipmDebUrl: URL for the VIPM Linux .deb package. DockerImage: Docker image name (default: \"nationalinstruments/labview\"). ImageTag: Docker image tag (default: \"latest-linux\"). DryRun: If set, prints the command instead of executing it.",
"description": "Bumps every dependency in vipm.toml to its latest available version and regenerates vipm.lock. WorkingDirectory: Path (relative to the repo root) containing vipm.toml. LabVIEWVersion: LabVIEW version (YYYY) matching the [project] section of vipm.toml. LabVIEWBitness: \"32\" or \"64\" bitness matching the [project] section of vipm.toml. VipmSerialNumber: VIPM Pro serial number (`vipm add` requires Community or Professional edition). VipmFullName: Name used for VIPM Pro activation. VipmEmail: Email used for VIPM Pro activation. VipmDebUrl: URL for the VIPM Linux .deb package. DockerImage: Docker image name (default: \"nationalinstruments/labview\"). ImageTag: Docker image tag (default: \"latest-linux\"). ManifestFilename: Manifest filename relative to WorkingDirectory (default: \"vipm.toml\"). LockFilename: Lock filename relative to WorkingDirectory (default: \"vipm.lock\"). IncludeDevDependencies: If set, also bumps packages declared under [dev-dependencies]. DryRun: If set, prints the command instead of executing it.",
"parameters": {
"DockerImage": {
"type": "string",
Expand All @@ -1049,6 +1061,11 @@
"default": "latest-linux",
"description": "Docker image tag (default: \"latest-linux\")"
},
"IncludeDevDependencies": {
"type": "boolean",
"required": false,
"description": "If set, also bumps packages declared under [dev-dependencies]"
},
"LabVIEWBitness": {
"type": "string",
"required": false,
Expand All @@ -1059,6 +1076,18 @@
"required": false,
"description": "LabVIEW version (YYYY) matching the [project] section of vipm"
},
"LockFilename": {
"type": "string",
"required": false,
"default": "vipm.lock",
"description": "Lock filename relative to WorkingDirectory (default: \"vipm"
},
"ManifestFilename": {
"type": "string",
"required": false,
"default": "vipm.toml",
"description": "Manifest filename relative to WorkingDirectory (default: \"vipm"
},
"VipmDebUrl": {
"type": "string",
"required": false,
Expand Down
10 changes: 10 additions & 0 deletions refresh-vipm-lock/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ inputs:
description: 'If true, checks an existing vipm.lock or generates the initial lock when absent.'
default: 'false'
required: false
manifest_filename:
description: 'Manifest filename (relative to working_directory) to read, e.g. "runner_dependencies.toml".'
default: 'vipm.toml'
required: false
lock_filename:
description: 'Lock filename (relative to working_directory) to generate/check, e.g. "runner_dependencies.lock".'
default: 'vipm.lock'
required: false
vipm_serial_number:
description: 'VIPM Pro serial number (pass from a secret in the caller).'
required: false
Expand Down Expand Up @@ -60,6 +68,8 @@ runs:
VipmDebUrl = '${{ inputs.vipm_deb_url }}'
DockerImage = '${{ inputs.docker_image }}'
ImageTag = '${{ inputs.image_tag }}'
ManifestFilename = '${{ inputs.manifest_filename }}'
LockFilename = '${{ inputs.lock_filename }}'
}
if ('${{ inputs.check_only }}' -eq 'true') { $args['CheckOnly'] = $true }
$params = @{
Expand Down
11 changes: 6 additions & 5 deletions scripts/apply-vipc/vipm.lock
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# This file is automatically generated by vipm.
# It is not intended for manual editing.

version = 2
revision = 0
updated-at = "2026-09-28T11:20:23.409677154Z"
updated-at = "2026-09-30T09:28:15.715460586Z"
requires-labview = "2021"
labview-bitness = 64

Expand All @@ -12,13 +13,13 @@ uri = "http://www.jkisoft.com/packages"

[[package]]
name = "astemes_lib_lunit"
version = "1.10.7.3"
version = "2.0.13.6"
manager = "vipm"
resolution-source = "repo"

[[package.source]]
repo = "VIPM Community"
checksum = "md5:0eec735c67849e00bacb792d90030318"
checksum = "md5:57bc42bcfdfcf898ef5e00651992a015"

[[package]]
name = "hse_lib_git_api"
Expand Down Expand Up @@ -138,7 +139,7 @@ checksum = "md5:777dcc49eebb8062cd69eb0db806df1a"

[[package]]
name = "sas_workshops_lib_lunit_for_g_cli"
version = "1.1.1.54"
version = "1.2.1.85"
manager = "vipm"
dependencies = [
"astemes_lib_lunit",
Expand All @@ -148,7 +149,7 @@ resolution-source = "repo"

[[package.source]]
repo = "VIPM Community"
checksum = "md5:58fa03e58052b1813d209fc92a748640"
checksum = "md5:c207b10fbd29d739292a672bc097c4b0"

[[package]]
name = "sas_workshops_lib_lvbuildspec_for_g_cli"
Expand Down
6 changes: 3 additions & 3 deletions scripts/apply-vipc/vipm.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ labview-version = 2021
labview-bitness = 64

[dependencies]
astemes_lib_lunit = "1.10.7.3"
astemes_lib_lunit = "2.0.13.6"
hse_lib_git_api = "2.3.4.176"
jki_lib_serialization = "1.0.1.14"
jki_lib_state_machine = "2024.0.3.23"
Expand All @@ -16,7 +16,7 @@ oglib_error = "6.0.0.26"
oglib_file = "6.0.2.28"
oglib_lvdata = "6.0.0.45"
oglib_lvzip = "5.0.9-1"
sas_workshops_lib_lunit_for_g_cli = "1.1.1.54"
sas_workshops_lib_lunit_for_g_cli = "1.2.1.85"
sas_workshops_lib_lvbuildspec_for_g_cli = "1.2.1.104"
sas_workshops_lib_vipb_builder_for_g_cli = "1.1.6.46"
wiresmith_technology_lib_g_cli = "3.0.1.98"
wiresmith_technology_lib_g_cli = "3.0.1.98"
20 changes: 17 additions & 3 deletions scripts/refresh-vipm-lock/RefreshVipmLock.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,12 @@
.PARAMETER ImageTag
Docker image tag.

.PARAMETER ManifestFilename
Manifest filename (relative to WorkingDirectory) to read. Defaults to "vipm.toml".

.PARAMETER LockFilename
Lock filename (relative to WorkingDirectory) to generate/check. Defaults to "vipm.lock".

.NOTES
Leaf script for the 'refresh-vipm-lock' dispatcher action.
#>
Expand Down Expand Up @@ -71,7 +77,13 @@ param(
[string]$DockerImage = "nationalinstruments/labview",

[Parameter(Mandatory = $false)]
[string]$ImageTag = "latest-linux"
[string]$ImageTag = "latest-linux",

[Parameter(Mandatory = $false)]
[string]$ManifestFilename = "vipm.toml",

[Parameter(Mandatory = $false)]
[string]$LockFilename = "vipm.lock"
)

Set-StrictMode -Version Latest
Expand All @@ -96,6 +108,8 @@ try {
"--labview-bitness", "'$LabVIEWBitness'"
"--check-only", "'$checkOnlyValue'"
"--vipm-deb-url", "'$VipmDebUrl'"
"--manifest-filename", "'$ManifestFilename'"
"--lock-filename", "'$LockFilename'"
)
$bashCommand = "chmod +x $containerScriptPath && $containerScriptPath $($bashArgs -join ' ')"

Expand All @@ -119,9 +133,9 @@ try {
}

if (-not $CheckOnly) {
$lockPath = Join-Path $WorkingDirectory 'vipm.lock'
$lockPath = Join-Path $WorkingDirectory $LockFilename
if (-not (Test-Path $lockPath)) {
throw "vipm.lock was not created at $lockPath"
throw "$LockFilename was not created at $lockPath"
}
}

Expand Down
Loading