Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as...

14
Susan Duncan, Winston Prakash Best Practices for using Hudson as part of your Agile Strategy

Transcript of Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as...

Page 1: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Susan Duncan, Winston Prakash

Best Practices for using

Hudson as part of your

Agile Strategy

Page 2: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Agile Strategy?

• Iterative, incremental, collaborative, rapid, flexible

• Improving our development process

– Better builds, faster

– Better testing

– Better visibility

– Better feedback

– Better metrics

Page 3: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Continuous Integration (CI)

• Software Development Process• Keep your work in a repository

• Integrate your work frequently

• Each integration is automatically built

• Test integrated with build

• Discovers errors more quickly thereby reducing fix time

• Makes the project available to everyone to install

• Everyone is involved and therefore takes a stake in maintenance

• Commit Builds/Nightly Build

Integration

Test Build

Page 4: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

What is Required of Good CI?

• Run automatically

– SCM operation triggered

– Build and deploy

– Integrated tests

• Feedback

– Email, IM, RSS feeds, etc…

• Analysis

– reporting, graphs . . .

Page 5: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Introduction to Hudson CI

• Eclipse Foundation Top Level Project• M2 release

• Easy installation and configuration

• Web-based interface

• Extendable through plug-ins • Maintained outside Eclipse

• Tiered

Page 6: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Hudson CI = Good CI

• Runs automatically – SCM: SVN, Git, CVS, Perforce …– Builds: Ant, Maven, scripts …– Integrate tests: JUnit, Selenium, Abbott…– Deploy: files, App server…

• Feedback via – Email, IM, RSS feeds …

• Analysis– reporting, graphs: Clover, Sonar, PMD …

• Much more . . .

Page 7: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Make it Modular!

Page 8: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

• Upstream/Downstream Jobs – fingerprints

• Parameterized Trigger

• Promoted Builds

• Build Pipeline

• Join

Making it Modular

Page 9: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

• Standard job properties

• Inherited by jobs

• Over-write as

needed

Cascading Jobs

Page 10: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Configure Job Standards

• Use Clean Builds from SCM

• Integrate with Issues

• Generate trend reports

• Use Maven3 integration

Page 11: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Distribute the Load

Master/Slave mode– Distributes load

– Executors

–Matrix

–Managed/Unmanaged

– Active Managed (cloud)

Page 12: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Maintain and Backup

• Setup on partition with most free space

• Archive unused jobs for performance

• Limit # of kept builds

• Backup job configurations (thinbackup)

• Version job configuration (versioning)

Page 13: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

Run and Secure

• Standalone/Java EE server

• Front with HTTP proxy

• Configure as service

• Enable Security

• Integrate with SSO

http:hudson.eclipse.org/hudson

Page 14: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,

BOF Tonight

Is Continuous Integration Achievable?

What does it mean?

Informal discussion 7pm Regency Ballroom B