68
Friday, 30 September 11

Awesome New Bamboo Plugin Capabilities

Embed Size (px)

DESCRIPTION

Bamboo is on a tear – three major releases so far this year and more on the way. And every release has brought more capabilities to plugin developers. The Bamboo Product Manager will show you examples of the awesome new pluggability of Bamboo. You'll learn how to build reusable build system components with Bamboo's Task API and share them with other developers on the Atlassian Plugin Exchange.

Citation preview

Page 1: Awesome New Bamboo Plugin Capabilities

Friday, 30 September 11

Page 2: Awesome New Bamboo Plugin Capabilities

2Friday, 30 September 11

Page 3: Awesome New Bamboo Plugin Capabilities

3Friday, 30 September 11

Page 4: Awesome New Bamboo Plugin Capabilities

Building awesome Bamboo plugins with ease

Jens Schumacher, James DumayAtlassian

Bamboo Tasks

4Friday, 30 September 11

Page 5: Awesome New Bamboo Plugin Capabilities

5

Status Ribbon

Details

Shared Artifacts

History

Test Summary

Code Changes

JIRA Issues

Friday, 30 September 11

Page 6: Awesome New Bamboo Plugin Capabilities

6

Plan

Stage

Job

Friday, 30 September 11

Page 7: Awesome New Bamboo Plugin Capabilities

7Friday, 30 September 11

Page 8: Awesome New Bamboo Plugin Capabilities

8Friday, 30 September 11

Page 9: Awesome New Bamboo Plugin Capabilities

9Friday, 30 September 11

Page 10: Awesome New Bamboo Plugin Capabilities

9Friday, 30 September 11

Page 11: Awesome New Bamboo Plugin Capabilities

10Friday, 30 September 11

Page 12: Awesome New Bamboo Plugin Capabilities

The #bamboo 3.1 task plugin api looks great. No

more excuses #adaptavist for not upgrading

bamboo

Dev Doctor (dev_doctor) via

”“

11Friday, 30 September 11

Page 13: Awesome New Bamboo Plugin Capabilities

12

One method to implement

Friday, 30 September 11

Page 14: Awesome New Bamboo Plugin Capabilities

13Friday, 30 September 11

Page 15: Awesome New Bamboo Plugin Capabilities

14Friday, 30 September 11

Page 16: Awesome New Bamboo Plugin Capabilities

15Friday, 30 September 11

Page 17: Awesome New Bamboo Plugin Capabilities

16Friday, 30 September 11

Page 18: Awesome New Bamboo Plugin Capabilities

Task Competition

17Friday, 30 September 11

Page 19: Awesome New Bamboo Plugin Capabilities

Task Competition

17Friday, 30 September 11

Page 20: Awesome New Bamboo Plugin Capabilities

Task Competition

17Friday, 30 September 11

Page 21: Awesome New Bamboo Plugin Capabilities

Task Competition

17Friday, 30 September 11

Page 22: Awesome New Bamboo Plugin Capabilities

Task Competition

17Friday, 30 September 11

Page 23: Awesome New Bamboo Plugin Capabilities

#atlascamp

TAKE-AWAYS

Writing Task Plugins for Bamboo is easy. And

sharing Plugins just got easier. “ ”

18Friday, 30 September 11

Page 24: Awesome New Bamboo Plugin Capabilities

Friday, 30 September 11

Page 25: Awesome New Bamboo Plugin Capabilities

20

HaHandwavium

Friday, 30 September 11

Page 26: Awesome New Bamboo Plugin Capabilities

20

HaHandwavium

Friday, 30 September 11

Page 27: Awesome New Bamboo Plugin Capabilities

21

Why would you want to create a Bamboo Task?

Friday, 30 September 11

Page 28: Awesome New Bamboo Plugin Capabilities

22

Its more than tests

Friday, 30 September 11

Page 29: Awesome New Bamboo Plugin Capabilities

23

What is automation?

Friday, 30 September 11

Page 30: Awesome New Bamboo Plugin Capabilities

24

Releasing Bamboo

Friday, 30 September 11

Page 31: Awesome New Bamboo Plugin Capabilities

24

Build and test Bamboo

Releasing Bamboo

Friday, 30 September 11

Page 32: Awesome New Bamboo Plugin Capabilities

24

Build and test Bamboo

Publishes virtual machine image on Amazon ec2

Releasing Bamboo

Friday, 30 September 11

Page 33: Awesome New Bamboo Plugin Capabilities

24

Build and test Bamboo

Copies artifacts to the public Maven repo

Publishes virtual machine image on Amazon ec2

Releasing Bamboo

Friday, 30 September 11

Page 34: Awesome New Bamboo Plugin Capabilities

24

Build and test Bamboo

Copies artifacts to the public Maven repo

Publishes virtual machine image on Amazon ec2

Copies .dmg, .exe’s, .wars and .tars to atlassian.com

Releasing Bamboo

Friday, 30 September 11

Page 35: Awesome New Bamboo Plugin Capabilities

25

As we add complexity, our tools fail us

Friday, 30 September 11

Page 36: Awesome New Bamboo Plugin Capabilities

26

You might have something like this

Friday, 30 September 11

Page 37: Awesome New Bamboo Plugin Capabilities

26

You might have something like this

Friday, 30 September 11

Page 38: Awesome New Bamboo Plugin Capabilities

27

But all that trouble could be as easy as...

Friday, 30 September 11

Page 39: Awesome New Bamboo Plugin Capabilities

27

But all that trouble could be as easy as...

Friday, 30 September 11

Page 40: Awesome New Bamboo Plugin Capabilities

28

Made possible by Java

Friday, 30 September 11

Page 41: Awesome New Bamboo Plugin Capabilities

29

Some history

Friday, 30 September 11

Page 42: Awesome New Bamboo Plugin Capabilities

30

Builder API

Friday, 30 September 11

Page 43: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.MyBuilder

Builder API

Friday, 30 September 11

Page 44: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

Builder API

Friday, 30 September 11

Page 45: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

Builder API

or...

Friday, 30 September 11

Page 46: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

Builder API

or...

Friday, 30 September 11

Page 47: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.atlassian.v2.builder.BuilderV2

Builder API

or...

Friday, 30 September 11

Page 48: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.atlassian.v2.builder.BuilderV2

Builder API

or...WTF?!!!

Friday, 30 September 11

Page 49: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.atlassian.v2.builder.BuilderV2

c.a.bamboo.atlassian.builder.PostConfigurableBuilder

Builder API

or...WTF?!!!

Friday, 30 September 11

Page 50: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.atlassian.v2.builder.BuilderV2

c.a.bamboo.atlassian.builder.PostConfigurableBuilder

Builder API

or...WTF?!!!

Apparently NOT optional...

Friday, 30 September 11

Page 51: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.atlassian.v2.builder.BuilderV2

c.a.bamboo.atlassian.builder.PostConfigurableBuilder

Builder API

c.a.bamboo.builder.MutableEnvironmentVariables...

or...WTF?!!!

Apparently NOT optional...

Friday, 30 September 11

Page 52: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.builder.EnvironmentVariablesAwareBuilder

c.a.bamboo.atlassian.v2.builder.BuilderV2

c.a.bamboo.atlassian.builder.PostConfigurableBuilder

Builder API

c.a.bamboo.builder.MutableEnvironmentVariables...

or...WTF?!!!

Apparently NOT optional...

Friday, 30 September 11

Page 53: Awesome New Bamboo Plugin Capabilities

30

c.a.bamboo.builder.AbstractBuilder

c.a.bamboo.builder.MyBuilder

com.atlassian.bamboo.builder.Builder

c.a.bamboo.builder.EnvironmentVariablesAwareBuilder

c.a.bamboo.atlassian.v2.builder.BuilderV2

c.a.bamboo.atlassian.builder.PostConfigurableBuilder

Builder API

c.a.bamboo.builder.MutableEnvironmentVariables...

or...WTF?!!!

Apparently NOT optional...

No javadoc!?

Friday, 30 September 11

Page 54: Awesome New Bamboo Plugin Capabilities

31Friday, 30 September 11

Page 55: Awesome New Bamboo Plugin Capabilities

32

Task API

@PublicApipublic interface TaskType { TaskResult execute(TaskContext taskContext) throws TaskException;}

Friday, 30 September 11

Page 56: Awesome New Bamboo Plugin Capabilities

32

Task API

@PublicApipublic interface TaskType { TaskResult execute(TaskContext taskContext) throws TaskException;}

Only interface you must implement

Friday, 30 September 11

Page 57: Awesome New Bamboo Plugin Capabilities

32

Task API

@PublicApipublic interface TaskType { TaskResult execute(TaskContext taskContext) throws TaskException;}

Only interface you must implement

Do what you need todo here

Friday, 30 September 11

Page 58: Awesome New Bamboo Plugin Capabilities

32

Task API

@PublicApipublic interface TaskType { TaskResult execute(TaskContext taskContext) throws TaskException;}

Only interface you must implement

Do what you need todo here Provides configuration, working directory and other context info

Friday, 30 September 11

Page 59: Awesome New Bamboo Plugin Capabilities

32

Task API

@PublicApipublic interface TaskType { TaskResult execute(TaskContext taskContext) throws TaskException;}

Only interface you must implement

Do what you need todo here Provides configuration, working directory and other context info

Success or failure?

Friday, 30 September 11

Page 60: Awesome New Bamboo Plugin Capabilities

32

Task API

@PublicApipublic interface TaskType { TaskResult execute(TaskContext taskContext) throws TaskException;}

Only interface you must implement

Do what you need todo here Provides configuration, working directory and other context info

Success or failure?

We now mark whats safe to use!!

Friday, 30 September 11

Page 61: Awesome New Bamboo Plugin Capabilities

33

Available in Bamboo 3.1 and up

Friday, 30 September 11

Page 62: Awesome New Bamboo Plugin Capabilities

33

Available in Bamboo 3.1 and up

Yep, we are keepin

g it stable

Friday, 30 September 11

Page 63: Awesome New Bamboo Plugin Capabilities

33

Available in Bamboo 3.1 and up

Yep, we are keepin

g it stable

...and in 3.3, installable without restarts!

Friday, 30 September 11

Page 64: Awesome New Bamboo Plugin Capabilities

34

SCP

Friday, 30 September 11

Page 65: Awesome New Bamboo Plugin Capabilities

#atlascamp

TAKE-AWAYS

Its never been easier to use Bamboo to build your

own custom automation processes, quickly, cheaply

and without fear. Just keep it simple.

“”

35Friday, 30 September 11

Page 66: Awesome New Bamboo Plugin Capabilities

36

Available now under the Apache 2 License at https://bitbucket.org/atlassian

SCP Xcode .NET Tomcat

Friday, 30 September 11

Page 67: Awesome New Bamboo Plugin Capabilities

37

developer.atlassian.com

Where can I get help?

Use tags: bamboo & bamboo-development

Atlassian Developer Network

@atldevtools

answers.atlassian.com

Atlassian Answers

@jensschumacher@i386

Friday, 30 September 11

Page 68: Awesome New Bamboo Plugin Capabilities

Thank you!

Friday, 30 September 11