Skip to content
Closed
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
114 changes: 114 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,120 @@ jobs:
with:
fetch-depth: 0

- name: TEMPORARY VIPM license validation
shell: bash
env:
VIPM_SERIAL_NUMBER: ${{ secrets.VIPM_SERIAL_NUMBER }}
VIPM_FULL_NAME: ${{ secrets.VIPM_FULL_NAME }}
VIPM_EMAIL: ${{ secrets.VIPM_EMAIL }}
run: |
set -euo pipefail

echo "Checking VIPM installation"
echo "Starting Linux VIPM container..."

docker run --rm -i \
-e VIPM_SERIAL_NUMBER="${VIPM_SERIAL_NUMBER}" \
-e VIPM_FULL_NAME="${VIPM_FULL_NAME}" \
-e VIPM_EMAIL="${VIPM_EMAIL}" \
nationalinstruments/labview:latest-linux \
bash -s <<'VIPM_SCRIPT'
set -euo pipefail
echo "VIPM container script started."

if ! command -v vipm >/dev/null 2>&1; then
echo "VIPM is not installed. Installing VIPM..."
apt-get update
apt-get install -y wget ca-certificates xvfb
wget -O /tmp/vipm.deb "https://traffic.libsyn.com/secure/jkinc/vipm_26.3.1-4025_amd64.deb"
apt-get install -y /tmp/vipm.deb
else
echo "VIPM is already installed."
fi

export DISPLAY=:99
export VIPM_TIMEOUT=500

echo "DISPLAY=$DISPLAY"
echo "vipm version:"
vipm --version

if ! pgrep -x Xvfb >/dev/null 2>&1; then
echo "Starting Xvfb on DISPLAY=$DISPLAY..."
Xvfb "$DISPLAY" -screen 0 1280x720x24 -ac +extension GLX +render -noreset >/tmp/xvfb.log 2>&1 &
else
echo "Xvfb is already running."
fi

mkdir -p /tmp/natinst
echo "1" > /tmp/natinst/LVContainer.txt

if ! pgrep -x labview >/dev/null 2>&1 && ! pgrep -x labview64 >/dev/null 2>&1; then
echo "Locating LabVIEW executable..."
LABVIEW_BIN="$(command -v labview64 || true)"
if [ -z "$LABVIEW_BIN" ]; then
LABVIEW_BIN="$(find / -path '*LabVIEW*' -name labview 2>/dev/null | head -n 1)"
fi

echo "LABVIEW_BIN='$LABVIEW_BIN'"
command -v labview64 || true

if [ -z "$LABVIEW_BIN" ]; then
echo "ERROR: LabVIEW executable not found in the container."
find / -maxdepth 6 \( -path '*/LabVIEW*' -o -path '*/natinst*' \) 2>/dev/null | head -n 200 || true
exit 1
fi

if [ ! -x "$LABVIEW_BIN" ]; then
echo "ERROR: LabVIEW executable is not executable: $LABVIEW_BIN"
exit 1
fi

echo "Using LabVIEW binary: $LABVIEW_BIN"
"$LABVIEW_BIN" --headless >/tmp/labview.log 2>&1 &
LABVIEW_PID=$!
echo "Waiting for LabVIEW startup (pid $LABVIEW_PID)..."
sleep 15
if ! kill -0 "$LABVIEW_PID" 2>/dev/null; then
echo "ERROR: LabVIEW exited during startup."
cat /tmp/labview.log || true
exit 1
fi
echo "LabVIEW startup check passed."
else
echo "LabVIEW is already running."
fi

echo "Xvfb status:"
pgrep -a -x Xvfb || true

echo "LabVIEW status:"
pgrep -a labview || true
pgrep -a labview64 || true

echo "VIPM startup diagnostics complete. Attempting activation..."
if vipm activate --serial-number "$VIPM_SERIAL_NUMBER" --name "$VIPM_FULL_NAME" --email "$VIPM_EMAIL"; then
echo "VIPM activation succeeded (exit code 0)."
else
activation_status=$?
echo "VIPM activation failed (exit code $activation_status)."
exit "$activation_status"
fi

echo "Installing LUnit package..."
if vipm install astemes_lib_lunit_cli --labview-version 2026 --labview-bitness 64; then
echo "LUnit package installation succeeded (exit code 0)."
else
install_status=$?
echo "LUnit package installation failed (exit code $install_status)."
exit "$install_status"
fi

echo "VIPM validation succeeded: VIPM is installed, activated, and LUnit is available via VIPM."
VIPM_SCRIPT

echo "Linux VIPM container exited successfully."

- name: Run VI Analyzer tests
uses: ni/open-source/via-lv-docker@actions
with:
Expand Down
Loading