Bamboo Plugins               And Remote AgentsBrydie McCoy
Me Brydie McCoy 5 years on Bamboo Mainly Java, but not exclusive Written many plugin points and plugins
Bamboo Concepts
Agents                                Machine B                                Remote Agent                               ...
Tasks
Terminolgy                 User                                    Developer                 Plan                     Chai...
Bamboo Is not for    everyone.CI is complexLack of resources and and expertiseYou don’t want us writing support for yoursy...
Yet.Bamboo is a plugin platformFill holes in the marketFill holes in your team
Available Plugin    points in BambooBuild Agent Requirement Filter Module       Report ModuleBuild Complete Action Module ...
Build Process    Build is Triggered        Trigger Reason                              Trigger Condition Changes retrieved...
Requirements + Capabalties                                           Failed Stage Restarted                     Calculated...
Job              Queue                                    Agent           Prepare build            directories         Ret...
Remote Agents   Taking StormCustomers have too many buildsCustomers need multiple OS, platforms ordevicesOn Demand - Remot...
Whats available?        Not Available              Available•Database  •Bandana  •ActiveMQ             •Build Working Dire...
Tasks
TaskDefinition
TaskConfiguration
TaskContextBuildContext.getBuildResult.getTaskResults().
SavingTaskDataBuildContext.getBuildResult.getTaskResults().
CustomDataMap
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Upcoming SlideShare
Loading in...5
×

Developing for Remote Bamboo Agents, AtlasCamp US 2012

1,670

Published on

Brydie McCoy, Java Developer

As more and more peoples' building demands grow, they expand from building everything locally to a distributed building system or the elastic cloud. And for OnDemand the elastic cloud is the only option. Unfortunately developing plugins for remote/elastic agents has its own set of gotchas. Most plugins written for Bamboo do not work properly on remote agents. This talk will cover the core principles of developing for remote agents, what you can and can't do, as well as more advanced topics such as data transfer and communication between the agent and the server.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,670
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • Who I Am. Why You should listen to\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "Developing for Remote Bamboo Agents, AtlasCamp US 2012"

    1. 1. Bamboo Plugins And Remote AgentsBrydie McCoy
    2. 2. Me Brydie McCoy 5 years on Bamboo Mainly Java, but not exclusive Written many plugin points and plugins
    3. 3. Bamboo Concepts
    4. 4. Agents Machine B Remote Agent Remote Agent Machine ABamboo Server Remote Agent Local Agent Amazon Elastic Local Agent Cloud Local Agent Elastic Agent Elastic Agent Elastic Agent
    5. 5. Tasks
    6. 6. Terminolgy User Developer Plan Chain, TopLevelPlan, Build (legacy) Stage ChainStage Job Job, Buildable, Build (legacy) Plan Branch ChainBranch Build/Plan Result/Build Result ChainResultSummary Stage Result ChainStageResult Job Result BuildResultsSummary+ “Plan” is the common interface for all Jobs, Chains and Branches+ Immutable versions of most of these classes.
    7. 7. Bamboo Is not for everyone.CI is complexLack of resources and and expertiseYou don’t want us writing support for yoursystemsBamboo would become bloated.
    8. 8. Yet.Bamboo is a plugin platformFill holes in the marketFill holes in your team
    9. 9. Available Plugin points in BambooBuild Agent Requirement Filter Module Report ModuleBuild Complete Action Module Web Repository Viewer ModuleBuild Processor Module XWork Plugin ModuleBuild Processor Server Module Capability Type ModuleBuild Trigger Condition Module Index Reader ModuleCommand Decorator Module Plan Deletion Interceptor Action ModuleCustom Build Definition Transformer Module Post Build Index Writer ModulePost-Build Completed Action Module Post Chain Index Writer ModulePost-Chain Action Module Event Listeners (33 events to lock into?)Post-Job Action Module Component Import Plugin ModulePost-Stage Action Module Component Plugin ModulePre-Build Action Module Module Type Plugin ModulePre-Build Queued Action Servlet Context Listener Plugin ModulePre-Chain Action Module Servlet Context Parameter Plugin ModulePre-Job Action Module Servlet Filter Plugin ModulePre-Stage Action Module Servlet Plugin ModuleRestart Failed Stage Action Module Template Context Item Plugin ModuleResume Manual Stage Action Module Web Item Plugin ModuleStop On Manual Stage Action Module Web Panel Plugin ModuleSource Repository Module Web Panel Renderer Plugin ModuleTask Plugin Module Web Resource Plugin ModuleTrigger Reason Module Web Resource Transformer Plugin ModuleNotification Condition Module Web Section Plugin ModuleNotification Recipient Module REST plugin module typeNotification Type Module Gadget plugin module typeAdditional Build Configuration Module
    10. 10. Build Process Build is Triggered Trigger Reason Trigger Condition Changes retrieved for all repositories Source Repository Allocate Build NumberCreation and persistence of Database ObjectsCreation of Build Contexts Pre Chain Begin Chain Execution Action Branch Merging Stage Execution Logic Branch Push Post Chain Finalise Chain Execution Action Chain Execution Complete
    11. 11. Requirements + Capabalties Failed Stage Restarted Calculated Pre Build Queued Action Manual Stage Resumed Action Jobs Places on JMS queue Execute Next Stage Build Agent Requirement Fileter Pre Stage Action Capability Type Pre Job Job Queue Trigger all jobs for stage Action Wait For Job Job Execution Completeion Logic Finalise Stage Post Stage Action Process Job State Build Processor Server Result No Did the last stage Yes Save Job Post Build Index Writer fail? to DB and Index No Tell chain the Job Post Job Yes Stop on Manual Stage is finished Action Have we hit a manual stage No Post Job Events Post Build Complete Action NoYes Is there another stage to run? Are All Jobs In Stage Finished?
    12. 12. Job Queue Agent Prepare build directories Retrieve artifacts Source Repository Process from server Prepare Job Pre Build Action Run Regular Task Task Command Decorator Source RepositoryYes Did task Succeed? Is there Another Task? No Run Finalising Task Task Command Decorator Source RepositoryYes Is there Another Task? No Calculate Build State Build Processor Send Artifacts to Server Send Results Back To Server
    13. 13. Remote Agents Taking StormCustomers have too many buildsCustomers need multiple OS, platforms ordevicesOn Demand - Remote is the only option
    14. 14. Whats available? Not Available Available•Database •Bandana •ActiveMQ •Build Working Directory•File System •Passed Artifacts •Lucene Index •Checkout out code•Other Plans •Products of previous tasks•Previous Jobs •Job Configuration•Historical data•Managers
    15. 15. Tasks
    16. 16. TaskDefinition
    17. 17. TaskConfiguration
    18. 18. TaskContextBuildContext.getBuildResult.getTaskResults().
    19. 19. SavingTaskDataBuildContext.getBuildResult.getTaskResults().
    20. 20. CustomDataMap
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×