Speaker
Description
The LHCb physics software has to support the analysis of data taken up to now and at the same time is under active development in preparation for the detector upgrade coming into operation in 2021. A continuous integration system is therefore crucial to maintain the quality of the ~6 millions of lines of C++ and Python, to ensure consistent builds of the software as well as to run the unit and integration tests. As already presented, the Jenkins automation server is used for this purpose. It builds and tests around 100 configurations and produces in the order of 1500 build 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 interoperation between the continuous integration system and the developers we decided to put in place a flexible messaging system. As soon as the build 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), that 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.