Transcript
Page 1: Buildbot: The Continuous Integration Python framework

BuildbotThe Continuous Integration

Python framework

Page 2: Buildbot: The Continuous Integration Python framework

Steps

● Continuous Integration○ Definition○ Benefits

● Buildbot○ Architecture○ Views○ Configuration

● Conclusions, tips, Q&A, ...

Page 3: Buildbot: The Continuous Integration Python framework

Who am I?

Page 4: Buildbot: The Continuous Integration Python framework

CI: Definition by Martin Fowler

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. 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.

http://goo.gl/FC9S4U 1/3

Page 5: Buildbot: The Continuous Integration Python framework

CI: Benefits

● Reduce risk and time.● Reduce manual repetitive processes.● Create a version of software by a known,

reliable, proven and repeatable process versioning.

● Improve visibility of project status.● Achieve greater self-confidence and

security in the development team.

2/3

Page 6: Buildbot: The Continuous Integration Python framework

CI: Why? How?

● Process quality.

● Product quality.

● People quality.

3/3

Page 7: Buildbot: The Continuous Integration Python framework

Buildbot: System Architecture

1/2

BUILDSLAVESCHANGES = CHANGESOURCESSCHEDULERS

COMMANDS = BUILDERSFACTORY = STEPS

STATUS TARGETS

Page 8: Buildbot: The Continuous Integration Python framework

Buildbot: Buildmaster Architecture

2/2

Page 9: Buildbot: The Continuous Integration Python framework

View: Waterfall

1/3

Page 10: Buildbot: The Continuous Integration Python framework

View: Build Slaves

2/3

Page 11: Buildbot: The Continuous Integration Python framework

View: Console

3/3

Page 12: Buildbot: The Continuous Integration Python framework

Config: HTML Templates = Jinja2

1/7

Page 13: Buildbot: The Continuous Integration Python framework

Config: PROJECT IDENTITY + DB URL

2/7

SQLiteMySQL

PostgreSQL

Page 14: Buildbot: The Continuous Integration Python framework

Config: BUILDSLAVES

3/7

Page 15: Buildbot: The Continuous Integration Python framework

Config: CHANGESOURCES

4/7

Page 16: Buildbot: The Continuous Integration Python framework

Config: SCHEDULERS

SingleBranchSchedulerAnyBranchSchedulerDependent SchedulerPeriodic SchedulerNightly SchedulerTry SchedulersTriggerable SchedulerNightlyTriggerable SchedulerForceScheduler Scheduler 5/7

Page 17: Buildbot: The Continuous Integration Python framework

Config: BUILDERS

ShellCommand

BuildEPYDocSphinxPyFlakesPyLintFileExistsCopyDirectoryRemoveDirectoryMakeDirectory 6/7

Page 18: Buildbot: The Continuous Integration Python framework

Config: STATUS TARGETS

WebStatusMailNotifierIRC Bot

StatusPush (to callback)HttpStatusPush (in json)GerritStatusPushGitHubStatus 7/7

Page 19: Buildbot: The Continuous Integration Python framework

Conclusions, tips, Q&A, ...

● Display = Collaboration

● Python framework

● X branches * Y schedulers * Z status * N slaves

● A starting point: http://goo.gl/AcKoGZ

(https://github.com/carlessanagustin/buildbot-bootstrap)

Page 20: Buildbot: The Continuous Integration Python framework

Thank you very much@carlesanagustin

___@carlessanagustin.___

www.carlessanagustin.com

+34 655 4XX XXX


Top Related