Abstract

A continuous integration system is crucial to maintain the quality of the 6 millions lines of C++ and Python source code of the LHCb software in order to ensure consistent builds of the software as well as to run the unit and integration tests. Jenkins automation server is used for this purpose. It builds and tests around 100 configurations and produces in the order of 1500 built artifacts per day which are installed on the CVMFS file system or potentially on the developers’ machines. Faced with a large and growing number of configurations built every day, and in order to ease inter-operation between the continuous integration system and the developers, we decided to put in place a flexible messaging system. As soon as the built artifacts have been produced, the distributed system allows their deployment based on the priority of the configurations. We will describe the architecture of the new system, which is based on RabbitMQ messaging system (and the pika Python client library), and uses priority queues to start the LHCb software integration tests and to drive the installation of the nightly builds on the CVMFS file system. We will also show how the introduction of an event based system can help with the communication of results to developers.

Highlights

  • Starting from 2019, the LHCb experiment will start the detector upgrade for the stage of data taking [2] of the Large Hadron Collider (LHC)

  • Having a large code base with a large number of developers involved in its evolution, LHCb software needs a modern infrastructure capable of handling the correct compilation, testing and deployment to ensure the quality of executable software products, called artifacts

  • The paper is structured as follows: Section 2 presents the global architecture of the continuous integration system and argues the usage of RabbitMQ messaging system and Section 3 focuses on the deployment systems on CVMFS and how the nightly builds are installed

Read more

Summary

Introduction

Starting from 2019, the LHCb experiment will start the detector upgrade for the stage of data taking [2] of the Large Hadron Collider (LHC). Having a large code base with a large number of developers involved in its evolution, LHCb software needs a modern infrastructure capable of handling the correct compilation, testing and deployment to ensure the quality of executable software products, called artifacts. This can be assured by testing the software improvements using the Jenkins [4] continuous integration system to drive the nightly builds. The paper is structured as follows: Section 2 presents the global architecture of the continuous integration system and argues the usage of RabbitMQ messaging system and Section 3 focuses on the deployment systems on CVMFS and how the nightly builds are installed.

Distributed continuous integration system
Architecture
Results reporting
Why RabbitMQ as message broker?
RabbitMQ usage in LHCb continuous integration system
Deployment system
Priority policy
Future work
Summary
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call