How many clicks does it take you from saving your VI to getting your built project to your customer?
For us, it’s a lot. That’s what motivated us to look into automating some of our build steps. Today, our automation chain covers most of the important steps in our release process.
Available Automation Tools
Join our webinars to learn more about our Release Automation Tools.
Currently we don’t have any dates fixed, but please reach out to us if you’re interested. We’re happy to accommodate a one-on-one meeting or another public webinar. We can also share recordings of past webinars.
On-Demand RAT Webinar
Release Automation Tools – An Introduction
Introduction into the overall structure and process landscape.
Live demonstration of triggering the automation.
Introduction of available RAT steps/scripts.
Requirements for running RAT on your own infrastructure.
- On Demand
Besides running our Release Automation Tools on our own servers, we offer commercial licenses so you can facilitate the same tools in your own infrastructure for your own projects.
The license comes exclusively as part of a consulting project: Collaborating closely with your team, we install and setup our tools in your infrastructure and introduce the necessary processes and methods to fully leverage them.
We’d be happy to discuss all the details in a personal call. Please get in touch with your contact details, and we’ll call you back. You can use the following button:
What’s been going lately with our tools?
Version 3.14 adds support for building NI Packages to RAT. Another package format we support! On top of that, we implemented a few minor fixes.
- v3.14.3 (2021-05-04)
- [FIX] open only references to VIs defined in the xxx_PROJECT_SRCDIR yaml variable (issue #108)
- v3.14.2 (2021-04-26)
- [FEATURE] speed up updating VI descriptions (issue #105)
- [FEATURE] optimize display output (issue #104)
- [FEATURE] allow deployr to move the results from multiple builds in one single run (issue #100)
- [FEATURE] stop building in temp directory (issues #98, #101)
- [FIX] don’t create zip file, if no files were found (issues #103, #64)
- v3.14.1 (2021-03-04)
- [FEATURE] upgrade HSE State Machine Parser (issue #89)
- [FEATURE] upgrade VIPM API (issue #90)
- [FIX] bug with latest-but-one tag (issue #87)
- v3.14.0 (2021-03-02)
- [FEATURE] Support NI Package building (issue #82)
- [FIX] allow spaces in filenames for documentr (issue #83)
- [FIX] fix parsing/usage of 4th CLI parameter as commit tag (issue #85)
Version 3.13 brings VI Package building to RAT – finally! We’ve been wanting to implement this for a long time. It also comes with an improved documentation and, as always, a few fixes.
- v3.13.1 (2021-02-23)
- [FEATURE] Improve state machine parsing (issue #77)
- [FEATURE] Upgrade to Antidoc v126.96.36.199 (issue #79)
- [FIX] Release tag parsing (issue #78)
- [FIX] CLI output for RT executables (issue #80)
- v3.13.0 (2021-02-13)
- [FEATURE] Support building of VI packages (issue #44)
- [FEATURE] Reset git repository during initialization (issue #61)
- [FEATURE] Support for Antidoc v1.2.1 (issue #70)
- [FEATURE] Improve error handling for .vipc (issue #71)
- [FEATURE] Improve output when building installers (issue #76)
Version 3.12 is all about improving support for various release tag formats. It also comes with some other handy features like installing .vipc files automatically, clearing out caches and other small fixes.
- v3.12.1 (2020-12-16)
- [FIX] use the supplied or derived release tag prefix for finding current and previous git tags
- v3.12.0 (2020-12-10)
- [FEATURE] Install .vipc files before building (#45)
- [FEATURE] Overwrite instead of add outputs to CLI (#54)
- [FEATURE] Create CodeClimate Code Quality reports (#56)
- [FEATURE] Clear Object Cache before building (#57)
- [FEATURE] Allow Extended Commit Tags as RAT YAML prefix (see our Dokuwiki) (#66)
- [FEATURE] Optionally provide both YAML prefix and Commit Tag via CLI (#68)
- [FEATURE] Improve parsing of YAML variables
- [FIX] Use Build Spec name instead of RAT YAML prefix for package file names to make them unique (#65)
- [FIX] Output status and errors when calling asciidoctor binary from LabVIEW (#63)
- [FIX] Various small bug fixes
1. Changes are pushed to Source Control Server
Gitflow dictates the way we create and merge branches in our repos, and when and where we create releases. Hence, it also defines the calling points of our automation.
Whenever a developer pushes back to the master repo (the origin), the GitLab CI/CD automation mechanism is triggered and executes according to its configuration.
Watch a screencast of this at youtu.be/ue0NeYNEYf0.
2. Source Control Server triggers Build Server
The .gitlab-ci.yml configuration file, which is part of the repo and therefore project-specific, defines which actions to take on which event („when to call which scripts“).
In order to execute actions on a build server, the GitLab Runner has to be installed on the build server. It is called from the GitLab CI and executes the actions defined in the .gitlab-ci.yml file.
On our system, the runner is called whenever a tag is pushed.
Watch a screencast of this at youtu.be/1MGP5X-LmYE.
3. Build Server executes Tools
The runner executes the scripts defined in the .gitlab-ci.yml file: Our Release Automation Tools. These tools are a collection of custom-built LabVIEW VIs that do the actual work: Validating, analyzing, testing, documenting, building, packaging and deploying our LabVIEW projects.
The VIs are built on JKI State Machines for macro functionality, and they are executed by the runner via Wiresmith Technology’s G-CLI tool, which allows to output data to the command line – and feed back to GitLab – while the VI is still running.
Watch a screencast of this at youtu.be/FTYpQNPgwAQ.
4. Built files are published
The last step in the build chain is taking the build results and moving them to a networked location (a NAS) that is accessible from the public web.
We use Dokuwiki to serve build results on the web. Our proprietary Dokuwiki plugin queries the GitLab API for the project’s tags. Based on the tag list, it queries the file server for files related to each tag and auto-generates the download links on the release webpage.
Watch a screencast of this at youtu.be/POB25NRlxD4.