Title of talk
Business Process Model & Notation (BPMN) Workflows in JenkinsMax SpringCiscohttps://wiki.jenkins-ci.org/display/JENKINS/Jenkow+PluginJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfGoalsAttract usersGet feedbackGain contributorsJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfAgendaWhat is BPMN & Activiti?How to setup & use Jenkow pluginFor Jenkins adminsPlugin internalsFor Plugin developersFuture Features
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfProblem: Job OrchestrationPutting jobs into relationDefining logic for execution of multiple jobsExisting orchestration mechanismsBuilt-in Upstream / DownstreamJoin PluginLocks and Latches PluginDrools Plugin (deprecated)Build Flow Plugin...
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJoin Plugin: provides concurrency join operation (last release v1.15 3-May-2012)Locks and Latches: another plugin to control parallel execution (last release v0.6 16-Apr-2010)Drools: similar to Jenkow in using graphical editor in EclipseBuild Flow: define workflow in DSL (last release v0.5 3-Sep-2012)
https://wiki.jenkins-ci.org/display/JENKINS/Join+Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Locks+and+Latches+pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Drools+Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin
4BPMNBusiness Process Model & NotationSimilarity with UML activity diagramsBPMN < 2.0Just modeling standardBPMN 2.0Introduced in 2011Added well-defined execution semantics
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfBPMN ConceptsProcess: workflow definitionProcess instance: running workflowTask: workflow stepJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfTask in BPMN: similar to task in Rally, resolved by a human actor/6Basic BPMN ConstructsStart / End Events
Script TaskGroovyJavascriptNo concurrency!
User TaskExecuted by real person
Jenkins TaskInvoke Jenkins job
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfBasic BPMN ConstructsParallel Gateway
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfBasic BPMN ConstructsExclusive Gateway
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfMore complex workflow
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf10BPMN BenefitsIts a standardGeared towards non-software developersConstructs for interactions with other actors (persons and systems)Powerful graphical notationExisting toolingWell-documented XMLJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf
http://activiti.orgOpen Source (Apache License) BPMN 2.0 workflow engineImplemented in JavaWeb-based Workflow ManagementWorkflow EditorActiviti Designer (Eclipse Plugin)ExtensibleWeb-based Activiti Modelernot under active developmentJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfPost subject: Re: Activiti Modeler by SignavioPosted: Tue Mar 27, 2012 11:30 am Sure, the Activiti Designer is supported in the Activiti project.The Activiti modeler codebase isn't part of the Activiti codebase, that's the reason it isn't supported.Best regards,Tijs Rademakers
12Earlier Activiti / Jenkins IntegrationPart of a larger commit automation effortJenkins as Execution EngineActiviti Workflow Engine in Apache ServiceMix Container (OSGi)Using Jenkins Channel (ssh) mechanismJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow OverviewJenkins plugin ("Jenkins On Workflow")Early release (v0.2.4)Emphasis on workflow editorActiviti Engine in JenkinsActiviti Designer in EclipseBundled with JenkowServed by Jenkins Update Site pluginGit repository in Jenkins to store workflowsUsing Git Server plugin (thanks Kohsuke)Version-controlled workflowsJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow Setup (one time)Install plugin from Available catalogIf authorization is on,configure SSH public keyTo allow push into workflow Git repositoryPeopleuseridConfigureSSH Public Keys
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow SetupCreate first job with workflow stepJob ConfigureBuildAdd build stepBPMN WorkflowWorkflow Name: first-workflowIf workflow doesnt exist,a simple hello world workflow gets created
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow SetupBuild first job
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfWorkflow Editor Setup (one time)Get Eclipse (3.7 Indigo)http://www.eclipse.org/downloads/(Eclipse IDE for Java Developer)
Or install EGitHelpEclipse MarketplaceFind:egitInstall
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfWorkflow Editor Setup (one time)Install Jenkow Activiti DesignerJenkins: Eclipse Update Site copy URLEclipse:HelpInstall new SoftwareAddName:Jenkow, Location: paste URL OK
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Git repository in JenkinsJenkow: copy Git ssh URI
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Import in Eclipse (1/2)FileImportGitProjects from GitNextURINext URI: paste Git URINext
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Import in Eclipse (2/2)Branch selection: select masterNextLocal Destination NextImport existing projectNextImport Projects: select jenkow-workflowsFinish
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImport Workflow Project (one time)Open Workflow ProjectProject Explorer: jenkow-worfklowssrc/main/resourcesdiagramsfirst-wf.bpmn
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfEdit WorkflowScriptTask
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfEdit WorkflowJenkinsTask
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfPush changed WorkflowSave workflowCommitProject Explorer: right-click jenkow-workflowsTeamCommitCommit messageCommitPushProject Explorer: right-click jenkow-workflowsTeamPush to UpstreamOK
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfRun changed WorkflowCreate called-by-wf jobKick first-job
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfExample Launch Sequence
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfImplementation Details
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfExecution ModesScript ModeBuild stepOccupies executorNo persistencyShort runningWorkflow Mode (not yet implemented)Workflow Job TypeNo executor wastedWorkflow state persisted in DBLong running (days, weeks, )Interact with other systems / actorsJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfPlugin ElementsEclipse GraphitiActiviti Designer+ Patch: Palette Extension Provider(Eclipse Extension Point)Jenkow IDE ConfigJenkow Designer ExtensionJenkow Update SiteActivitiWorkflow EngineJenkow Plugin~/.jenkow/lib/EclipseEGitJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkinsRun TimeEGit~/.jenkow/lib/ jenkow-designer-extension.jar$JENKINS_HOME/ jenkow-repository/ .git/ jenkow-workflows/EclipseActiviti DesignerJenkow IDE ConfigActiviti Workflow EngineJenkow PluginGit Server Plugin (JGit)Eclipse Update Site PluginCI ServerAdmin Workstationgit reset --hardDB
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfEGit~/.jenkow/lib/ jenkow-designer-extension.jarEclipseActiviti DesignerJenkow IDE ConfigAdmin WorkstationJenkinsRun Time & External DB$JENKINS_HOME/ jenkow-repository/ .git/ jenkow-workflows/Activiti Workflow EngineJenkow PluginGit Server Plugin (JGit)Eclipse Update Site PluginCI ServerDatabaseActiviti Explorer
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkowBuilder (start workflow)
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkowBuilder (end workflow)
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkinsTask
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkinsTaskDelegate
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfFuture FeaturesWorkflow Job Type (workflow mode)How to manage active workflows?Workflow diagrams in JenkinsShowing execution stateIntegrate Activiti Web UIs?Activiti ModelerJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfFuture FeaturesJob parameter supportMore task types for other Jenkins functionsSlave node managementBuild promotionMulti-instance task supportJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfFuture FeaturesFind alternative to bundling Eclipse update site with Jenkow pluginOther mechanisms to expose workflow repositoryEclipse EFS over SSHJenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfJenkow Take AwayUse for complex job orchestrationGit Server Plugin usage exampleEclipse Update Site usage exampleMaven / Tycho integration
Resourceshttps://wiki.jenkins-ci.org/display/JENKINS/Jenkow+Plugin
http://www.activiti.org/
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconfThank You To Our Sponsors
Jenkins User ConferenceSan Francisco, Sept 30 2012 #jenkinsconf
Top Related