Top Banner
Continuous Integration Sebastian Kurfürst [email protected]
61

Continuous Integration at T3CON08

Dec 05, 2014

Download

Technology

Introducing Continuous Integration based on Hudson integrated into our main development platform: forge.typo3.org
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Integration at T3CON08

Continuous IntegrationSebastian Kurfürst

[email protected]

Page 2: Continuous Integration at T3CON08

Audience

Developers

Project Managers

Page 3: Continuous Integration at T3CON08

forge.typo3.org

Subversion

Development Tools

Continuous Integration

Wiki Bugtracker

Collaboration Platform

Page 4: Continuous Integration at T3CON08

Abstract

Test-Driven Development

Version ControlRequirements {

What is CI?

Integration with forge

Your own CI Server

Conclusion

ContinuousIntegration {

Page 5: Continuous Integration at T3CON08

Version Control

SubversionRepository

Commit Update Update

- Requirements -

Page 6: Continuous Integration at T3CON08

Synchronize Often!

1 2 3 4

1

Repository

WorkingCopy

Split your workinto smaller chunks!

Page 7: Continuous Integration at T3CON08

Short Development Cycles

Page 8: Continuous Integration at T3CON08
Page 9: Continuous Integration at T3CON08

How many of you have ever written a unit test?

Page 10: Continuous Integration at T3CON08

How many of you write unit tests during your

daily work?

Page 11: Continuous Integration at T3CON08

»

«SCRUM and XP from the Trenches

Henrik Kniberg

Test-Driven Development

... means that you write an automated test, then you write just enough code to make that one test pass, then you refactor the code primarily to improve readability and remove duplication.

Page 12: Continuous Integration at T3CON08

Test-Driven Development

Test Case ImplementationFAIL OK Refactoring OK

Page 13: Continuous Integration at T3CON08

Test-Driven Development

- Demonstration -

Page 14: Continuous Integration at T3CON08

An Academic Example

• Write a Mathematical Helpers class, which has a method „square“, which multiplies a number with itself.

Page 15: Continuous Integration at T3CON08

1. Write a test case!

Page 16: Continuous Integration at T3CON08

How to use it

• Nicely integrated with forge

Page 17: Continuous Integration at T3CON08

The test case fails

Page 18: Continuous Integration at T3CON08

2. Implement!

Page 19: Continuous Integration at T3CON08

The test case...

Page 20: Continuous Integration at T3CON08
Page 21: Continuous Integration at T3CON08

Spot design flaws earlier!

Page 22: Continuous Integration at T3CON08

Unit tests are a Safety net for the future

Page 23: Continuous Integration at T3CON08
Page 24: Continuous Integration at T3CON08

What is CI?

Integration with forge

Your own CI Server

Page 25: Continuous Integration at T3CON08

»

«http://martinfowler.com/articles/continuousIntegration.html

Martin Fowler

Continuous Integration... is a software development practice where members of a team integrate their work frequently. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.

Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.

Page 26: Continuous Integration at T3CON08

Integrate frequently!

Integrate every few hours, at least daily!

Hi! I am Mr. Hudson and I will do the integration work for you,

and report back!

Page 27: Continuous Integration at T3CON08

Build code documentation (soon)

Run Unit Tests... on Linux, Windows and Mac

I will do the following:

Test your coding style

Page 28: Continuous Integration at T3CON08

Workflow

SubversionRepository

1. Commit

3. Run tests

2. Start Build

4. Show Results

Page 29: Continuous Integration at T3CON08

Integration with forge

Page 30: Continuous Integration at T3CON08

Daily Use

Page 31: Continuous Integration at T3CON08
Page 32: Continuous Integration at T3CON08

For Power Users

Page 33: Continuous Integration at T3CON08
Page 34: Continuous Integration at T3CON08

I will do the integration work for you, and report back!

Jabber Integration

Page 35: Continuous Integration at T3CON08

How to use jabber notifications

Page 36: Continuous Integration at T3CON08

Download hudson.war

1Your own CI server

Page 37: Continuous Integration at T3CON08

Run hudson.

2Your own CI server

Page 38: Continuous Integration at T3CON08
Page 39: Continuous Integration at T3CON08

https://svn.typo3.org/Teams/forge.typo3.org/hudson-helpers/

Check out our build scripts:

3Your own CI server

Page 40: Continuous Integration at T3CON08

cd /path/to/hudson-helpersphing/phing/phing -f build.xml all -Dpackage=PACKAGE_KEY

Use the following „execute shell“ build target:

4Your own CI server

Page 41: Continuous Integration at T3CON08
Page 42: Continuous Integration at T3CON08

Enjoy hudson!5

Your own CI server

Page 43: Continuous Integration at T3CON08

What about

Monitor the project status and progress

Page 44: Continuous Integration at T3CON08
Page 45: Continuous Integration at T3CON08

Productivity

Page 46: Continuous Integration at T3CON08

Conventional development

Feature A Feature B

Implementation

Test A Test B

Testing

Many context switches

Page 47: Continuous Integration at T3CON08

TDD Workflow

Page 48: Continuous Integration at T3CON08

Increased productivity

Page 49: Continuous Integration at T3CON08

Survey about agile methods

Project visibility

Team morale

Productivity

Software quality

Reduced risk

Time to market

0 25 50 75 100

%

improved significantly improved

Page 50: Continuous Integration at T3CON08

Conclusion

Page 51: Continuous Integration at T3CON08

Development Practicesfor FLOW3

Unit Testing

Test-Driven Development

Project Mana-gement: SCRUM

Continuous Integration

Collaboration: Subversion

Page 52: Continuous Integration at T3CON08

Test Driven Developmentrocks!

Page 53: Continuous Integration at T3CON08

Test Driven Development

makes you happy!

Page 54: Continuous Integration at T3CON08

Increase productivity!

Page 55: Continuous Integration at T3CON08

Collaborateon forge.typo3.org!

Page 56: Continuous Integration at T3CON08

our knowledgeTake

your company!into

Page 57: Continuous Integration at T3CON08
Page 58: Continuous Integration at T3CON08

?????????????

Page 59: Continuous Integration at T3CON08

Thank you for listening!

Page 61: Continuous Integration at T3CON08

Thank you for listening!