CI Setup for EPICS Base

CI Setup for EPICS Base
Slide Note
Embed
Share

This content provides insights into Continuous Integration (CI) setup for EPICS Base by Ralph Lange (ITER), Andrew Johnson (APS), and Michael Davidsaver (Osprey DCS). It also covers details about EPICS platforms, unit tests in base, Java parts of V4, Jenkins instances, and next-generation CI tools like Travis CI and AppVeyor. The overview includes information on build systems for C++ and Java, test coverage, Jenkins-based CI systems, and the need for future CI tools enhancement.

  • CI setup
  • EPICS Base
  • Jenkins
  • Next Generation CI
  • Test coverage

Uploaded on Feb 17, 2025 | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. CI Setup for EPICS Base Ralph Lange (ITER), Andrew Johnson (APS), Michael Davidsaver (Osprey DCS)

  2. EPICS Platforms Native platforms: Linux, Solaris, FreeBSD, MacOS, Windows, Cygwin Cross compilation target systems: Linux, Windows, iOS, vxWorks, RTEMS Cross compilation target architectures: intel x86, arm, cris, microblaze, 68k, ppc

  3. Unit Tests in Base Number of tests and test coverage are increasing 3.14: 2.6k 3.15: 8.5k 3.16: 9.2k Test output is formatted as TAP (Test Anything Protocol)

  4. Java Parts of V4 Maven as build tool Two layers of Maven submodules: Aggregation and inheritance Parent project contains Git submodules Does not play well with some Maven plugins Deployment to Maven Central

  5. Two Jenkins Instances CloudBees: C++ and Java Linux host Release builds Pull request builds

  6. Two Jenkins Instances APS: C++ builds Only master Host builds: Linux, MacOS, Solaris, Windows Cross builds to many targets

  7. Generating CloudBees Jenkins Jobs CloudBees does not allow the Job DSL Plugin Script running on the server is too powerful Jenkins Job Builder Script creates job XML from YAML declarations (client side), then uploads to Jenkins

  8. Next Generation CI Travis CI cloud based builds host builds for Linux (gcc, clang), WINE cross builds for RTEMS

  9. Next Generation CI AppVeyor: Travis for Windows VS 2008, 2010, 2012, 2013, 2015, Cygwin, MinGW 32bit, 64bit DLL, static build debug, nodebug Full matrix: ~50 jobs, taking ~7 hours

  10. Conclusion Build systems for both C++ and Java are in a good state Test coverage is good and improving Current Jenkins based CI systems already cover a lot Work to be done for next generation CI tools Please copy and contribute

Related


More Related Content