Automatic ("Nightly") Build of FESA Projects on Jenkins

The FESA projects are set up for automatic ("nightly") builds on the buildserver https://builder.acc.gsi.de/jenkins/ (Kerberos log-in required). The projects are checked out from the software repository (trunk) on the build server. Everything is built using the makefile structure for the framework projects and using maven for the plug-in related projects.

The build system Jenkins indicates the build/test status of the projects using weather icons.

If the sources change in the software repository the next scheduled build will use the changed sources and trigger depending projects.

Email notifications may be sent per project to the project members automatically if the build failed or is stable again.

Structure

The FESA related projects (https://builder.acc.gsi.de/jenkins/job/fesa/) are structured as follows on the build server:
Directory Description
3rdPartyProjects Contains 3rd-party dependencies such as ctr-lib, gtest&gmock, WRTimingLibraries
FWK Contains FESA FWK related projects such as codegen, model, core and core-tests
FESA UI Contains maven built projects for the Eclipse Plug-In and the command line tool

Dependencies

The following illustrates the dependencies between the projects set up on Jenkins.

3rd-Party Projects

Project Description Sources Requires Triggers
3rdPartyProjects/ctr-lib C++ implementation of the CERN timing receiver driver https://www-acc.gsi.de/svn/fesa/framework/trunk/3rd_party/CTRLib   FWK/fesa-core-gsi
3rdPartyProjects/WRTimingLibraries Builds etherbone and SAFTlib library from a github repository branch

git://github.com/GSI-CS-CO/ci_cd

branch: fixing_socat

  FWK/fesa-core-gsi
3rdPartyProjects/gtest Google C++ testing framework (V1.6.0 currently) from github repository release branch https://github.com/google/googletest/archive/release-$VERSION.zip   3rdPartyProjects/gmock
3rdPartyProjects/gmock Google C++ testing framework (V1.6.0 currently) from github repository release branch https://github.com/google/googlemock/archive/release-$VERSION.zip 3rdPartyProjects/gtest  

FESA FWK

Building the C++ part of the FESA framework on the build server requires also the middleware libraries. Since they are built from a fixed tag, not from a development trunk, they are not used as triggers. Both the middleware and the FESA projects use the generic makefiles and the boost library (currently version 1.54.0) from the generics part.

All these projects are built on the build server using classical shell commands. Note that the structure has to be reflected by adjusting paths for the makefiles relative to the projects in the workspace on the buildserver.
Project Description Sources Requires Triggers
FWK/fesa-codegen Core part of code generation https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-codegen   FWK/fesa-codegen-gsi
FWK/fesa-codegen-gsi Specific part of code generation https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-codegen-gsi FWK/fesa-codegen  
FWK/fesa-core Core part of FESA core https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-core generics/generic-makefiles

FWK/fesa-core-gsi

FWK/fesa-core-test

FWK/fesa-core-gsi Specific part of FESA code https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-core-gsi

3rdPartyProjects/WRTimingLibraries

3rdPartyProjects/ctr-lib

FWK/fesa-core

FWK/fesa-core-gsi-test
FWK/fesa-core-test FESA core tests https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-core-test FWK/fesa-core FWK/fesa-core-gsi-test
FWK/fesa-core-gsi-test Specific FESA core tests https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-core-gsi-test

FWK/fesa-core-gsi

FWK/fesa-core-gsi-test

 
FWK/fesa-environment-gsi FESA environment (e.g. makefiles, configuration files, documentation) https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-environment-gsi    
FWK/fesa-fwk FESA FWK environment https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-fwk    
FWK/fesa-model Core part of the FESA model https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-model   FWK/fesa-model-gsi
FWK/fesa-model-gsi Specific part of the FESA model https://www-acc.gsi.de/svn/fesa/framework/trunk/fesa-model-gsi FWK/fesa-model  

FESA UI

Project Description Sources Requires Triggers
FESA UI/fesa-eclipse-plugin-neon Projects and libraries constituting the FESA Eclipse plug-in, built using maven https://www-acc.gsi.de/svn/fesa/framework/trunk/plug-in/neon   FESA UI/fesa-cli-tool
FESA UI/fesa-cli-tool   https://www-acc.gsi.de/svn/fesa/framework/trunk/cli-tool FESA UI/fesa-eclipse-plugin-neon  
-- SolveighMatthies - 30 Nov 2016
Topic revision: r3 - 22 May 2018, SolveighMatthies
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback