A Roadmap to Continuous Integration for ATLAS Software ... · A Roadmap to Continuous Integration...
Transcript of A Roadmap to Continuous Integration for ATLAS Software ... · A Roadmap to Continuous Integration...
A Roadmap to Continuous Integration for ATLAS Software Development
J. Elmsheuser, A. Krasznahorkay, E. Obreshkov, A. Undrus for the ATLAS Collaboration
Brookhaven National Laboratory, USA; CERN, Switzerland; University of Texas, Arlington, USA
The ATLAS Software
§ 2200 packages with 4 million C++ and 1.4 million python lines § 1000 developers § Multi-Stream development (70 branches of nightly releases) § Infrastructure with web-interfaced tools for code storage (SVN),
version management (Tag Collector), nightly building and testing (NICOS, ATN, RTT)
The ATLAS Software Infrastructure Evolution
§ Adoption of continuous integration (CI) practices § Building nightly releases early and often § Rationalize hardware resource allocation § Rigorous unit and integration testing § Use open source tools such as Jenkins, Git, CTest
Current ATLAS Software Infrastructure
Path to Continuous Integration
Continuous Integration (CI):
a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible(http://www.martinfowler.com/articles/continuousIntegration.html, 2006)
Faster Builds
CMake management,
faster machines
Continuous Deployment
CPack, RPM-based
CI-Friendly Code Repository
Git
Improved Monitoring
CDash
Integration Builds
Jenkins CI tool
Better Testing
CTest, focus on unit
testing
CODE MANAGEMENT
Tag Collector
SVN Repository
NIGHTLY SYSTEM EXTERNAL TESTING
ATLAS Run
Time Tester (RTT)
CERN AFS
CernVM-FS
Distribution KITS
Nightlies Oracle Database
Nightlies Web Server
NICOS Control System
(runs nightly jobs)
ATN Fast Testing Framework
100 daily staged build jobs on the farm of 60 multi-core
nodes
§ 500 tests / build § Multi-platform § Dynamic Web UI § Log mining § Automatic mail
LXR Code Web Browser
Switch to CMAKE completed
Current Status
CTest support is integrated in software releases,
unit tests design in progress CPack packaging works,
RPM deployment mechanism under development
ATLAS Jenkins master-slave system works in test mode
SVN to Git migration procedure developed,
Git repository model created
Evaluation of open source build monitors started