Versioning Test-Equipment Configurations with GitLab CI
Published by: Sohoprolab Editorial Team | Date: July 8, 2025
Why Version-Control Test Configurations?
Modern test systems involve more than just instruments. They include drivers, measurement scripts, calibration files, firmware versions, and DAQ setups. Without versioning, teams risk deploying inconsistent environments — making bugs hard to trace and test results impossible to reproduce. Git-based version control solves this, and GitLab CI extends it by automating the deployment and validation of configurations across test benches.
Typical Assets to Version
- LabVIEW or Python measurement scripts
- Instrument driver versions and INI files
- Calibration and offset data (CSV or JSON)
- SystemLink configuration exports
- NI MAX hardware and VISA aliases
- PXI chassis layout diagrams
These files can be committed to a Git repository and deployed using GitLab CI runners.
Example GitLab CI Pipeline
Here’s a sample .gitlab-ci.yml for validating and archiving a test setup:
stages:
- validate
- deploy
validate_configs:
stage: validate
script:
- python validate_config.py configs/
tags: [pxi]
deploy_to_bench:
stage: deploy
script:
- scp configs/* bench@192.168.1.100:/opt/testbench/configs/
- ssh bench@192.168.1.100 "systemctl restart test-runner"
only:
- main
This pipeline checks the validity of configuration files, then deploys them to a PXI controller running Linux RT or Windows.
Managing PXI Configurations
Each PXI system should be treated like code. Tag configurations with semantic versions (v1.2.3) and store detailed READMEs describing:
- Module slot locations (e.g., NI PXIe-4309 in Slot 2)
- Driver compatibility (e.g., NI-DAQmx 2025 Q1)
- Firmware build numbers
You can generate chassis maps from PXI Chassis documentation and automate updates via post-commit hooks.
Integration with LabVIEW
Use the G CLI or command-line VI runners to validate instrument communication inside CI pipelines. You can also log test coverage using external Python test harnesses that wrap LabVIEW VIs through command-line calls or TestStand sequences.
Collaboration and Traceability
GitLab’s merge request workflow allows peer reviews of test changes. Audit trails are created automatically, and test bench setup history becomes transparent across teams.
Relevant Tools and Resources
- PXI Platform — Modular systems ideal for Git-managed test environments
- Data Acquisition & Control — Test equipment suitable for scripted automation
- Test Equipment Parts & Accessories — GPIB, USB, and power options
FAQs
- Can Git track binary files like LabVIEW VIs?
- Yes, but text-based VIs or build scripts are easier to diff. Consider exporting configs in INI or JSON format.
- Is GitLab CI usable offline?
- Yes, GitLab CE (Community Edition) can run on isolated test networks with local runners.
- What if I use SystemLink?
- You can export settings and deploy them with GitLab CI. Combine with NI’s RESTful SystemLink APIs for automation.
You said:
Using n8n for Automatic Notifications When Test Cycles Finish
Using n8n for Automatic Notifications When Test Cycles Finish
Published by: Sohoprolab Editorial Team | Date: July 8, 2025
Why Real-Time Notifications Matter
In automated test systems—especially those using PXI, DAQ, or SMU hardware—monitoring test cycle completion is critical. Delays in reviewing pass/fail outcomes can bottleneck production or R&D. By integrating notification workflows with n8n, you can alert operators, engineers, or cloud systems immediately after a test finishes.
What Is n8n?
n8n is a powerful open-source workflow automation tool that allows you to create logic-based pipelines using drag-and-drop nodes. It supports triggers from webhooks, emails, files, MQTT, and REST APIs—and can respond by sending messages via email, Slack, Microsoft Teams, or even HTTP POST requests to other systems.
Triggering n8n When a Test Ends
There are several ways to connect your test system (LabVIEW, Python, or TestStand-based) to n8n:
- ???? Webhooks: Add a webhook node in n8n and send a POST from your test software
- ???? File Watch: Trigger when a new test log file appears in a shared folder
- ????️ Database Polling: Monitor your PostgreSQL or SQLite table for new test result entries
In LabVIEW, use the HTTP VIs to POST to your n8n webhook endpoint as the final step of a test cycle.
Popular Notification Targets
- Email — Send a summary to a test engineer
- Slack — Post results to a specific channel with custom formatting
- Webhook — Push status to MES, ELK, or data dashboards
- Telegram or Microsoft Teams — Useful for mobile alerts
You can customize the message to include test name, DUT serial, test result (PASS/FAIL), timestamp, and operator ID.
PXI Hardware and n8n Integration
n8n is platform-agnostic and can run on the same machine as your PXI controller (if running Windows/Linux) or on a central orchestration server. It can also receive messages from DAQ systems controlled via Python or NI MAX-based test routines.
Workflow Example: Slack Alert
Step 1: Create a webhook trigger in n8n
Step 2: Add a Slack “Send Message” node
Step 3: Format the message as:
✅ Test Completed Device: SN-982345 Test: Voltage Stability Result: PASS Operator: Alex M.
Step 4: Send a POST request to the webhook from your test software
Security and Reliability
Use basic authentication or tokens on webhook URLs. Consider self-hosted n8n instances with TLS/HTTPS for secure deployments on internal networks. For redundancy, n8n can retry failed messages or log failures for review.
FAQs
- Can n8n run offline?
- Yes — self-hosted versions work in offline factory networks with no cloud access.
- Does n8n support retries?
- Yes — you can configure retry logic and error workflows in each node.
- Can I use n8n with SCPI-controlled instruments?
- Yes — use Python/PyVISA to monitor SCPI status and trigger n8n workflows.