using jenkins for continuous integration, automated testing, continuous delivery · 2016-06-08 ·...

12
Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery Ron Fowler STFC

Upload: others

Post on 02-Jun-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Using Jenkins for Continuous Integration,

Automated Testing, Continuous Delivery

Ron Fowler

STFC

Page 2: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Content

• The advantages of Continuous Integration

• The Jenkins service on CCPForge & local server

• The Jenkins dashboard and configuration

• Aims for the Jenkins service

• Current status

Page 3: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Software development

• Version control system to maintain consistent source

code: SVN, GIT, etc.

• Allows separate branches/tags for release versions

and development versions.

• Does not address testing and building of release

versions.

• Build servers allow automated testing/building.

Page 4: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Benefits of Continuous Build Server

• Instant feedback on code “correctness”

– Does the whole package still compile on the current

architecture?

– Does the code compile on other architectures?

• Feedback on code quality

– e.g. doxygen comments, pylint, mlint reports

Page 5: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Benefits of Continuous Build Server (2)

• Test code correctness

– Regression testing, unit testing, integration testing, etc. e.g.

gadgetron unit & integration tests, STiR test suite.

• Build modules with latest features

– Automated compile and link can provide packages for users

to download and test. Build server can work over multiple

architectures, e.g. Linux, MacOSX, Windows.

– Possibly build “docker” releases.

Page 6: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Jenkins Build Server

• Open source Build server

• Java with web interface

• Support by CCPForge

• Large range of plugins

• CCPForge server on CentOS7

• Currently working with CentOS6 based server

– Local server, may make Matlab testing easier?

Page 7: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

7

Page 8: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

8

Page 9: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

9

Page 10: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

10

Page 11: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Aims for the build service

• Initial focus on building the Python/Matlab interfaces,

running simple tests based to demo scripts.

• Do not intend to build unit/integration tests of

Gadgetron or test suite of STiR.

• Wish to automate binary distributions of packages for

Linux and Windows.

• Provide code metric though pylint/mlint etc.

Page 12: Using Jenkins for Continuous Integration, Automated Testing, Continuous Delivery · 2016-06-08 · Benefits of Continuous Build Server (2) • Test code correctness –Regression

Current status

• Build server set up to monitor git repo of the

xGadetron extensions.

• Checks hourly for new updates if found runs script

• Build not yet working - clashes with HDF5 versions

(sys vs Anaconda)

• Looking to modify demos for basis of integration

tests.