using jenkins for continuous integration, automated testing, continuous delivery · 2016-06-08 ·...
TRANSCRIPT
Using Jenkins for Continuous Integration,
Automated Testing, Continuous Delivery
Ron Fowler
STFC
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
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.
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
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.
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?
7
8
9
10
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.
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.