9-13 July 2018
Sofia, Bulgaria
Europe/Sofia timezone

Automation and Testing for Simplified Software Deployment

10 Jul 2018, 16:00
Sofia, Bulgaria

Sofia, Bulgaria

National Culture Palace, Boulevard "Bulgaria", 1463 NDK, Sofia, Bulgaria
Poster Track 5 – Software development Posters


Andre Sailer (CERN)


Creating software releases is one of the more tedious occupations in the life of
a software developer. For this purpose we have tried to automate as many of the
repetitive tasks involved from getting the commits to running the software as
possible. For this simplification we rely in large parts on free collaborative
services build around GitHub: issue tracking, code review (GitHub), continuous
integration (Travis-CI), static code analysis (coverity). The dependencies and
compilers used in the continuous integration are obtained via CVMFS used inside
docker. This allows one to run any desired compiler version (e.g., gcc 6.2 ,
llvm 3.9) or tool (e.g, clang-format, pylint). To create tags for the software
package the powerful GitHub API is used. A script was developed that first
collates the release notes from the description of each pull request, commits
the release notes file, and finally makes a tag. This moves the burden of
writing release notes to the individual developer and away from the package
maintainer. The deployment of software releases to CVMFS is handled via
GitLab-CI. When a tag is made the software is built and automatically
deployed. In this presentation we will describe the software infrastructure used
for the iLCSoft and iLCDirac projects, which are used by CLICdp and the ILC detector
collaborations, and give many examples of automation which might be useful
for other collaborations as well.

Primary authors

Presentation Materials