19–23 Oct 2020
Fritz-Haber-Institut
Europe/Berlin timezone

Implementation of modern CI/CD tools for IOCs development

21 Oct 2020, 18:50
5m
https://primetime.bluejeans.com/a2m/live-event/hdvqeypx (Fritz-Haber-Institut)

https://primetime.bluejeans.com/a2m/live-event/hdvqeypx

Fritz-Haber-Institut

BlueJeans Event https://primetime.bluejeans.com/a2m/live-event/hdvqeypx
LightningTalk EPICS base EPICS base

Speaker

Kacper Klys (E9Controls Ltd)

Description

Continuous development of software technologies, as well as an increasing number of frameworks, have made the development process and its optimisation crucial part of applications’ delivery. The development team should be able to focus on writing solid code, while the rest of the processes related to automatic execution of builds, tests and deployments should take place with a minimum number of manual steps. Research facilities often focuses too much on application development and forgets how essential tests and deployment are.

The paper describes the building process of the control software infrastructure for 100Hz/10J laser system designed by HiLASE Centre and UKRI/STFC. The software based on EPICS framework and CI/CD approach have been adapted during IOCs development.

Continuous integration in this case means regular IOC re-builds and tests (with each commit to any branch of the single IOC repository). To verify applications’ functioning, LeWIS framework (based on Python language) was used to emulate real device behaviour with corresponding communication protocols. Thanks to that, each modification in the IOC code could be verified just after pushing it to the repository. Those tests were part of repository pipelines and their results determined further actions.

Continuous deployment have been automated using Ansible tool. The specific role in Ansible was implemented. It allows to deploy IOC and configure it depending on environment (staging or production). Automatic deployment installs IOC as a service on the server and it is the user who decided when it should be launched. For staging (or test) environment ansible role is a part of pipeline which is triggered with IOCs master branch pipeline; for production it is manually run process.

The presented approach tries to introduce to scientific environment the most current methodologies and tools like Ansible and CI/CD. Thanks to that, the quality can be improved and the stability of the software increased.

Primary authors

Marcin Lukaszewski (E9 Controls Ltd) Kacper Klys (E9Controls Ltd)

Co-authors

Mr Martin Divoky (HiLASE Centre) Mr Tinesimba Zata (UKRI/STFC) Mr Klaus Ertel (UKRI/STFC) Mr John Collier (UKRI/STFC) Mr Thomas Butcher (UKRI/STFC) Mr Antonio Lucianetti (HiLASE Centre) Mr Tomas Mocek (HiLASE Centre)

Presentation materials