56
• Continuous Integration https://store.theartofservice.com/the-continuous- integration-toolkit.html

Continuous Integration

Embed Size (px)

Citation preview

Page 1: Continuous Integration

• Continuous Integration

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 2: Continuous Integration

Continuous integration

1 Continuous integration

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 3: Continuous Integration

Continuous integration

1 Continuous integration (CI) is the practice, in software engineering, of

merging all developer working copies with a shared mainline several times

a day

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 4: Continuous Integration

Continuous integration - Theory

1 Continuous integration involves integrating early and often, so as to

avoid the pitfalls of "integration hell". The practice aims to reduce rework

and thus reduce cost and time.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 5: Continuous Integration

Continuous integration - Theory

1 The rest of this article discusses best practice in how to achieve

continuous integration, and how to automate this practice. Build

automation is a best practice itself.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 6: Continuous Integration

Continuous integration - Principles

1 Continuous integration – the practice of frequently integrating one's new or changed code with the existing

code repository – should occur frequently enough that no

intervening window remains between commit and build, and such that no errors can arise without developers noticing them and correcting them

immediatelyhttps://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 7: Continuous Integration

Continuous integration - Principles

1 To achieve these objectives, continuous integration relies on the following principles.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 8: Continuous Integration

Continuous integration - Automate the build

1 Other more recent tools are frequently used in continuous integration environments

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 9: Continuous Integration

Continuous integration - Everyone commits to the baseline every day

1 Committing all changes at least once a day (once per feature built) is generally considered part of the

definition of Continuous Integration

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 10: Continuous Integration

Continuous integration - Every commit (to baseline) should be built

1 The system should build commits to the current working version in order to verify that they integrate correctly. A common practice is to use Automated Continuous Integration, although this may be done

manually. For many, continuous integration is synonymous with using Automated

Continuous Integration where a continuous integration server or daemon monitors the revision control system for changes, then

automatically runs the build process.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 11: Continuous Integration

Continuous integration - History

1 Continuous Integration emerged in the Extreme Programming (XP) community,

and XP advocates Martin Fowler and Kent Beck first wrote about continuous

integration circa 1999. Fowler's paper is a popular source of information on the

subject. Beck's book Extreme Programming Explained, the original

reference for Extreme Programming, also describes the term.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 12: Continuous Integration

Continuous integration - Software

1 Comparison of continuous integration

software

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 13: Continuous Integration

Continuous integration - Software

1 Software tools for continuous

integration include:

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 14: Continuous Integration

Continuous integration - Software

1 Urbancode AnthillPro now Ubuild: continuous integration server.

[Urbancode has been acquired by IBM]

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 15: Continuous Integration

Continuous integration - Software

1 Apache Continuum: continuous integration server supporting Apache Maven and Apache

Ant.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 16: Continuous Integration

Continuous integration - Software

1 Apache Gump: continuous integration tool.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 17: Continuous Integration

Continuous integration - Software

1 AppVeyor CI: hosted continuous integration

service for .NET developers.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 18: Continuous Integration

Continuous integration - Software

1 AutomatedQA Automated Build Studio: proprietary automated build, continuous integration and release

management system

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 19: Continuous Integration

Continuous integration - Software

1 Atlassian Software Systems Bamboo: proprietary continuous integration server.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 20: Continuous Integration

Continuous integration - Software

1 BuildHive: free cloud-hosted continuous integration service for GitHub projects, based

on Jenkins.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 21: Continuous Integration

Continuous integration - Software

1 Inedo BuildMaster: proprietary application lifecycle management and continuous

integration tool.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 22: Continuous Integration

Continuous integration - Software

1 Cascade: proprietary continuous

integration tool.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 23: Continuous Integration

Continuous integration - Software

1 Circle CI: hosted continuous integration for web

applications.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 24: Continuous Integration

Continuous integration - Software

1 cisimple: hosted continuous integration

for mobile.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 25: Continuous Integration

Continuous integration - Software

1 codeBeamer: proprietary collaboration software with built-in continuous integration

features.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 26: Continuous Integration

Continuous integration - Software

1 Continua CI: proprietary continuous

integration server.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 27: Continuous Integration

Continuous integration - Software

1 CruiseControl.NET: .NET-based automated continuous

integration server.https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 28: Continuous Integration

Continuous integration - Software

1 CruiseControl.rb: lightweight, Ruby-based continuous integration server

that can build any codebase, not only Ruby; released under Apache Licence

2.0.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 29: Continuous Integration

Continuous integration - Software

1 Electric Cloud ElectricCommander: proprietary continuous integration and release management product.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 30: Continuous Integration

Continuous integration - Software

1 FinalBuilder Server: VSoft Technologies proprietary automated

build and continuous integration server.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 31: Continuous Integration

Continuous integration - Software

1 Microsoft Team Foundation Server: proprietary software development

collaboration platform with continuous integration server and

source code repository.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 32: Continuous Integration

Continuous integration - Software

1 Qhode: Hosted continuous

integration with support for many

languages.https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 33: Continuous Integration

Continuous integration - Software

1 TeamCity: a closed source, Java-based build management and

continuous integration server from JetBrains

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 34: Continuous Integration

Continuous integration - Software

1 Tddium: cloud-hosted elastic continuous integration service for Ruby and JavaScript

applications.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 35: Continuous Integration

Continuous integration - Software

1 Vector Software VectorCAST/Manage: a proprietary automated regression testing and continuous integration

tool.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 36: Continuous Integration

Continuous integration - Software

1 Xcode 5 also contains a proprietary continuous integration system, works

closely with OS X Server for OS X Mavericks.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 37: Continuous Integration

Continuous integration - Further reading

1 Duvall, Paul M. (2007). Continuous Integration. Improving Software

Quality and Reducing Risk. Addison-Wesley. ISBN 0-321-33638-0.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 38: Continuous Integration

List of build automation software - Continuous integration tools

1 * Atlassian bamboo|Bamboo, continuous integration software

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 39: Continuous Integration

List of build automation software - Continuous integration tools

1 * Automated BuildStudio, a system for automating and managing software build, test and deploy

processes, with build scheduling and continuous integration support

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 40: Continuous Integration

List of build automation software - Continuous integration tools

1 * BuildBot, a Python-based software development continuous integration

tool which automates the compile/test cycle

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 41: Continuous Integration

List of build automation software - Continuous integration tools

1 * Cascade (software)|Cascade, a continuous integration tool that

builds and tests software components after each change is committed to the repository. Also

provides a checkpointing facility by which changes can be built and

tested before they are committed

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 42: Continuous Integration

List of build automation software - Continuous integration tools

1 * Hudson (software)|Hudson, an extensible continuous

integration enginehttps://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 43: Continuous Integration

List of build automation software - Continuous integration tools

1 * Jenkins (software)|Jenkins, an extensible continuous integration

engine, fork (software development)|forked from Hudson

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 44: Continuous Integration

List of build automation software - Continuous integration tools

1 * [http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx Team Foundation

Server], an extensible continuous integration engine from Microsoft

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 45: Continuous Integration

Multi-stage continuous integration

1 'Multi-stage continuous integration' is a software

development technique intended to achieve highly integrated parallel

development activity while reducing the scope of integration problems. http://www.ddj.com/development-

tools/212201506 Multi-Stage Continuous Integration accessdate

2009-02-25, Poole, Damon, 2008-12-02 Dr. Dobb's, Published by TechWeb

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 46: Continuous Integration

Multi-stage continuous integration - Theory

1 Multi-stage continuous integration takes advantage of a basic unifying pattern of

software development: software moves in stages from a state of immaturity to a state

of maturity, and the work is broken down into logical units performed by interdependent

teams that integrate the different parts together over time. What changes from shop to shop is the number of stages, the number and size of teams, and the structure of the

team interdependencies.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 47: Continuous Integration

Multi-stage continuous integration - Recommended Practices

1 Multi-stage continuous integration is an expansion upon continuous

integration, it presumes that you are already following those

recommended practices.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 48: Continuous Integration

Multi-stage continuous integration - Recommended Practice #1

1 As they make changes, continuous integration is done against that team's

branch

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 49: Continuous Integration

Multi-stage continuous integration - Recommended Practice #1

1 http://www.cmcrossroads.com/content/view/12685/135/ Large Scale

Continuous Integration, Poole, Damon, 2009-01-19 CMCrossroads

Published by CMC Media

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 50: Continuous Integration

Multi-stage continuous integration - Recommended Practice #2

1 For multi-stage continuous

integration, each team must have its

own branch.https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 51: Continuous Integration

Multi-stage continuous integration - Tools

1 Tools that support multi-stage continuous

integration include:

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 52: Continuous Integration

Multi-stage continuous integration - Tools

1 * AccuRev_SCM|AccuRevhttp://www.accurev.com/press-releases/030408-

accurev-electriccloud.html AccuRev and Electric Cloud Partner to

Advance Multistage Continuous Integration and Scalable Agile Best Practices, accessdate 2009-03-19 -

Version Control and ALM tool

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 53: Continuous Integration

Multi-stage continuous integration - Tools

1 * Electric Cloudhttp://www.accurev.com/press-

releases/030408-accurev-electriccloud.html AccuRev and

Electric Cloud Partner to Advance Multistage Continuous Integration and Scalable Agile Best Practices,

accessdate 2009-03-19 — Build, test and deployment framework tool

designed to automate the software production lifecycle

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 54: Continuous Integration

Comparison of continuous integration software

1 Continuous integration describes a set of software engineering practices

that speed up the delivery of software by decreasing integration

times. Software that accomplish this practice is called 'continuous

integration software'.

https://store.theartofservice.com/the-continuous-integration-toolkit.html

Page 55: Continuous Integration

Extreme programming practices - Continuous integration

1 The development team should always be working on the latest version of the

software. Since different team members may have versions saved locally with

various changes and improvements, they should try to upload their current version to

the code repository every few hours, or when a significant break presents itself. Continuous integration will avoid delays later on in the project cycle, caused by

integration problems.https://store.theartofservice.com/the-continuous-integration-toolkit.html