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

Upload: others

Post on 27-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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