DECTRIS Ltd. 5405 Baden-Daettwil Switzerland www.dectris.com Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Software change management
Configuration management
Agile Software Distribution
Continuous Integration (CI) By Jim Rush Version Control Build Test Report.
ICS Test Environment Alexander Söderqvist Dec 9, 2014.
Packaging of EPICS-basedControl System Software
© copyright 2014 BMC Software, Inc. DevOps consultant Niek Bartholomeus Going DevOps with BMC.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK Continuous Integration 0.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
Automating Drupal Deployment Dominique De Cooman.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
ATIF MEHMOOD MALIK KASHIF SIDDIQUE Improving dependability of Cloud Computing with Fault Tolerance and High Availability.
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
Software Engineering Modern Approaches
Created by the Community for the Community BizTalk & Build.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Installation and Maintenance of Health IT Systems
Configuration Management (CM)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 29 Slide 1 Configuration management.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
MAE Continuous Integration Administration guide July 8th, 2013.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Accelerating Scientific Exploration Using Workflow Automation Systems Terence Critchlow (LLNL) Ilkay Altintas (SDSC) Scott Klasky(ORNL) Mladen Vouk (NCSU)
Jaws Digital Courier Justin Coombes Product Manager Jaws Product Line / Global Graphics.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
1 / 22 AliRoot and AliEn Build Integration and Testing System.
Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Usage of virtualization in gLite certification Andreas Unterkircher.
GMODWeb, Biopackages, & Virtual Machines Brian O'Connor Nelson Lab, UCLA 1/16/2009.
B. Hegner, P. Mato, P. Mendez CERN, PH-SFT Group 1 ST FORUM CERN 28-SEP-2015 THE QUALITY AND TESTING INFRASTRUCTURE OF PH-SFT.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
CD FY09 Tactical Plan Status FY09 Tactical Plan Status Report for Neutrino Program (MINOS, MINERvA, General) Margaret Votava April 21, 2009 Tactical plan.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
EMI INFSO-RI EMI Quality Assurance Tools Lorenzo Dini (CERN) SA2.4 Task Leader.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
MAPPS-SCM Software Configuration Management. MAPPS-SCM System Services MAPPS Mission Analysis and Payload Planning System Geometry and Trajectory Simulation.
Cruise Training Introduction of Continuous Integration.
Process changes: Internal processes of CASA, external contributions, release schedule Mark G. Rawlings, CASA Build & Test Lead NRAO, Charlottesville Acknowledgements:
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
The Next Level Of Agile: DevOps and CD אוקטובר 2015.
Virtual Lab Overview 5/21/2015 xxxxxxxxxx NWS/MDL/CIRA.
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
Structured Container Delivery Oscar Renalias Accenture Container Lead (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Testing and Release Procedures/Tools Cristina Aiftimiei (INFN-CNAF) Mario David (LIP)
Appium Studio Appium testing made easy at any scale.
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Process improvements for better quality
Abstract After a SIG has been approved, one of the next steps is to get products out to users. During this talk, Niels will explain how the Storage SIG.
Proposed IT Infrastructure for TOP OS project
Continuous Integration (CI)
Work Package 4 Software Integration and Distribution
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Title Month Year DevOps, CI, Opensource and the Cloud
DevOps in an Embedded Environment
Simplified Development Toolkit
Automated Testing and Integration with CI Tool
Continuous deployment best practices, methods and tools.
ABHISHEK SHARMA ARVIND SRINIVASA BABU HEMANT PRASAD 08-OCT-2018
JENKINS TIPS Ideas for making your life with Jenkins easier
DAT381 Team Development with SQL Server 2005
Continuous Integration Tool
Final Review 27th March Final Review 27th March 2019.
Erik Vollebekk Application Architect
Overview on CI Use JJB (Jenkins Job Builder) to manage Jenkins jobs.
Presentation transcript:

DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker) Vittorio BOCCONE

Definitions CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. At each iteration the code is then verified by an automated build system, allowing teams to detect problems early. Continuous Delivery (CD) is a design practice used in software development to automate and improve the process of software delivery

The Integration Eldorado CI and Automatic Testing for the Fluka release using Jenkins (and Docker)

Continuous Integration tools CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Continuous Integration tools (CI) are software packages which orchestrate the build process and automate the building, testing, archiving and (eventually) deploy procedures. Functions: -Automate repetitive and error prone task; -Automate builds and test for each commit; -Execute test; -Archive artifacts; -Handle and log building report. -Report failure and possible culprits.

CI implementation CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Reliable Builds: -Creation a new expandable builders (Docker containers); -The builder live only the time to build the code and than is purged. Avoid dependencies misalignment: -Encode the dependencies source code; -Satisfy the dependencies just before building using the packages in the YUM repository; -Dependencies will also be inherited by the produced RPM package; A positive byproduct is that we could define a “fluka-toolchain” package whose dependencies solve the installation problems for the most common distributions (RH-like and Debian-like) Monitor and Evaluate the code development: -Handle the testing of the code; -Monitor the code health status; -Log the Building, Testing and Error reports.

Example of CI implementation at DECTRIS CI and Automatic Testing for the Fluka release using Jenkins (and Docker) YUM RPM Repositories Fresh Builders dectris-corelib dectris-boost jaun jaun-uidectris-hdf5 eiger eiger-tools eiger-firmware DECTRIS Main Software Components notify archive fetch build RPMs fetch commit Git SCM report Test CI Tool Testing

Why Jenkins? Why Docker? CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Jenkins (automation tool) -Relatively OS independent as it works on everything where an SSH connection or a Java apps can be run; -Integrate with SVN/Git and bug tracking tools (Jira) -Free version extendable to an Enterprise version. Cost is based on the size of the CI infrastructure; -Easy to install, setup and maintain (no hidden cost for IT); -Fastest growing tool in CI community, yet stable. Docker (lightweight Linux container alternative to VMs) -Fresh Linux container (Ubuntu, CentOS, Fedora...) in matter of seconds; -Free version extendable with plugins; -Easy to install, setup and maintain (no hidden manpower cost); -Easy to use, new clean development environment on the fly (no it needed to request a dedicated VMs); -Fastest growing tool in VM community, yet stable.

Continuous CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Tools -Jenkins as Continuous Integration manager. -Docker for the Linux builder infrastructure. Requirements -Each component must be in a versioning scheme and in a SCM; -Each (meaningful) build should be tracked and defined. -The components workflow should be defined and clear; Automatic Testing -Unit, Integration and Functional testing. -Test with real simulation input files batteries -Report generation Debugging -Automatic reporting and identification of culprits. Important: Tools are just tools and we should be flexible in case we would need to replace one tool with another

Continuous CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Continuous integration and Science -Dectris is PSI spin-off and produces X-Ray detectors for the synchrotron, laboratory and industry market; -Application of Continuous Integration methods does not only apply strictly to software development but also to simulation and calibration projects; Scientific Software -Software Core Team:6 developers (mostly physicist) + 1 (IT); packages supported (external customers + internal user) + hundreds of scripts for detector and sensor testing and calibration; -Scientific software and simulation support to the other groups (Development, Support and Production groups); -Need reliable quality assurance methods in the production phase.

` Minimal CI workflow CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Commit to SCM Trigger Build Notify Build Failure Build U/F Test Notify Test Failure Fail Pass Archive Artifact (RPM) Trigger Code Test Pass Test #N Test #1 Test [...] Report Generation Automated Procedure YUM RPM Repository

Extended CI workflow CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Commit to SCM Trigger Build Notify Build Failure Build U/F Test Notify Test Failure Fail Pass Trigger Code Test Pass Test #N Test #1 Test [...] Report Generation Result Archive Artifact (RPM) Notify Integration Failure Release ? Pass Fail Automated Procedure YUM RPM Repository

Example: FLUKA deployment test CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Process -Take the generated artifacts (RPMS and tarballs) -Apply the installation procedure:  rpm: yum install  tarball: tar -zxvf export FLUPRO=/path/to/fluka export FLUFOR=g77/gfortran make RPM Jenkins’s job -Matrix job with two axis OS (centos6, centos7) and the artifact ARCHITECTURE (32 and 64bit) -Use Docker to provide clean OS containers mkdir fluka mv "ARCHITECTURE="${ARCHITECTURE}/*.rpm fluka/ docker run --rm -v $(pwd)/fluka:/fluka -t centos:$OS bash -c 'yum \ install -y /fluka/*.rpm'

CI and Automatic Testing for the Fluka release using Jenkins (and Docker) Example: FLUKA RPM deployment test Results Each job execution is nicely logged in its own console log accessible in the job’s menu -CentOS6 (64bit): -FLUKA g77 (32bit) works out of the box -FLUKA gfortran (64bit) requires new gfortran which is not provided by the standard repositories -CentOS7 (64bit) -FLUKA gfortran (64bit) works out of the box -FLUKA g77 (32bit) requires cross compilation packages which are not included in the dependencies (and discontinued) --> Finished Dependency Resolution Error: Package: fluka c-3.x86_64 (/fluka c-3.x86_64) Requires: libgfortran.so.3(GFORTRAN_1.4)(64bit) Error: Package: fluka c-3.x86_64 (/fluka c-3.x86_64) Requires: libquadmath.so.0()(64bit) Error: Package: fluka c-3.x86_64 (/fluka c-3.x86_64) Requires: libc.so.6(GLIBC_2.14)(64bit) --> Finished Dependency Resolution Error: Package: fluka c-3.i686 (/fluka c-3.i686) Requires: compat-gcc-34

Other FLUKA-related applications CI and Automatic Testing for the Fluka release using Jenkins (and Docker) FLUKA Benchmarking/Testing -Run predefined test simulation for each version and monitor execution and result; -Trigger the analysis of the output data and provide a reliable logging of the operation. Large Projects/Simulations: -Monitor a release branch of a large scale simulation project and trigger (and analyse) test simulation (short runs) as soon a commit appears. -Identify implementation errors (i.e. geometry, settings) Flair/Geoviewer FLUPIX automatic ISO file generation Handle FLUKA development version -FLUKA collaboration members could pick them up directly from the Jenkins server. My 2cents

Testing Examples CI and Automatic Testing for the Fluka release using Jenkins (and Docker)

Monitoring Jobs

Testing Example CI and Automatic Testing for the Fluka release using Jenkins (and Docker)

Testing Examples CI and Automatic Testing for the Fluka release using Jenkins (and Docker)

DECTRIS Ltd Baden-Daettwil Switzerland Thank you for your attention!