a roadmap to continuous integration for atlas software ... · a roadmap to continuous integration...

1
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

Upload: trinhphuc

Post on 20-May-2018

227 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: A Roadmap to Continuous Integration for ATLAS Software ... · A Roadmap to Continuous Integration for ATLAS Software Development J. Elmsheuser, ... Use open source tools such as Jenkins,

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