jenkins user conference san francisco, sept 30 2012 #jenkinsconf business process model &...

44
Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco https://wiki.jenkins-ci.org/display/ JENKINS/Jenkow+Plugin

Upload: tiana-musson

Post on 02-Apr-2015

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Business Process Model & Notation (BPMN) Workflows in Jenkins

Max SpringCisco

https://wiki.jenkins-ci.org/display/JENKINS/Jenkow+Plugin

Page 2: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Goals

Attract usersGet feedbackGain contributors

Page 3: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Agenda

What is BPMN & Activiti?How to setup & use Jenkow plugin– For Jenkins admins

Plugin internals– For Plugin developers

Future Features

Page 4: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Problem: Job Orchestration

Putting jobs into relationDefining logic for execution of multiple jobsExisting orchestration mechanisms– Built-in Upstream / Downstream– Join Plugin– Locks and Latches Plugin– Drools Plugin (deprecated)– Build Flow Plugin– ...

Page 5: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

BPMN

Business Process Model & Notation– Similarity with UML activity diagrams

BPMN < 2.0– Just modeling standard

BPMN 2.0– Introduced in 2011– Added well-defined execution

semantics

Page 6: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

BPMN Concepts

Process: workflow definitionProcess instance: “running” workflowTask: workflow step

Page 7: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Basic BPMN Constructs

Start / End Events

Script Task– Groovy– Javascript– No concurrency!

User Task– Executed by real person

Jenkins Task– Invoke Jenkins job

Page 8: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Basic BPMN Constructs

Parallel Gateway

Page 9: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Basic BPMN Constructs

Exclusive Gateway

Page 10: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

More complex workflow

Page 11: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

BPMN Benefits

It’s a standardGeared towards non-software developersConstructs for interactions with other actors (persons and systems)Powerful graphical notationExisting toolingWell-documented XML

Page 12: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

http://activiti.orgOpen Source (Apache License) BPMN 2.0 workflow engineImplemented in JavaWeb-based Workflow ManagementWorkflow Editor– Activiti Designer (Eclipse Plugin)

• Extensible

– Web-based Activiti Modelernot under active development

Page 13: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Earlier Activiti / Jenkins Integration

Part of a larger commit automation effortJenkins as Execution EngineActiviti Workflow Engine in Apache ServiceMix Container (OSGi)Using Jenkins’ Channel (ssh) mechanism

Page 14: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Jenkow Overview

Jenkins plugin ("Jenkins On Workflow")Early release (v0.2.4)Emphasis on workflow editorActiviti Engine in JenkinsActiviti Designer in Eclipse– Bundled with Jenkow– Served by Jenkins Update Site plugin

Git repository in Jenkins to store workflows– Using Git Server plugin (thanks

Kohsuke)– Version-controlled workflows

Page 15: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Jenkow Setup (one time)

Install plugin from “Available” catalogIf authorization is on,configure SSH public key– To allow push into workflow Git

repository– PeopleuseridConfigureSSH Public Keys

Page 16: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

<demo>

Page 17: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Jenkow Setup

Create first job with workflow step– Job ConfigureBuildAdd build step

BPMN WorkflowWorkflow Name: first-workflow

– If workflow doesn’t exist,a simple “hello world” workflow gets created

Page 18: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Jenkow Setup

Build first job

Page 19: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Workflow Editor Setup (one time)

Get Eclipse (3.7 Indigo)– http://www.eclipse.org/downloads/

(Eclipse IDE for Java Developer)

Or install EGit– Help

Eclipse Marketplace…Find:egitInstall

Page 20: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Workflow Editor Setup (one time)

Install Jenkow Activiti Designer– Jenkins: Eclipse Update Site copy URL– Eclipse:

HelpInstall new Software…Add…Name:Jenkow, Location: paste URL OK

Page 21: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Import Workflow Project (one time)

Git repository in JenkinsJenkow: copy Git ssh URI

Page 22: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Import Workflow Project (one time)

Import in Eclipse (1/2)FileImport…GitProjects from GitNextURINext URI: paste Git URINext

Page 23: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Import Workflow Project (one time)

Import in Eclipse (2/2)…Branch selection: select masterNextLocal Destination … Next…Import existing project…NextImport Projects: select jenkow-workflowsFinish

Page 24: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Import Workflow Project (one time)

Open Workflow ProjectProject Explorer: jenkow-worfklowssrc/main/resourcesdiagramsfirst-wf.bpmn

Page 25: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Edit Workflow

ScriptTask

Page 26: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Edit Workflow

JenkinsTask

Page 27: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Push changed Workflow

Save workflowCommitProject Explorer: right-click jenkow-workflowsTeamCommit…Commit messageCommit

PushProject Explorer: right-click jenkow-workflowsTeamPush to UpstreamOK

Page 28: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Run changed Workflow

Create “called-by-wf” jobKick “first-job”

Page 29: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

</demo>

Page 30: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Example Launch Sequence

Page 31: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Implementation Details

Page 32: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Execution Modes

“Script Mode”– Build step– Occupies executor– No persistency– Short running

“Workflow Mode” (not yet implemented)– Workflow Job Type– No executor wasted– Workflow state persisted in DB– Long “running” (days, weeks, …)– Interact with other systems / actors

Page 33: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Plugin Elements

Eclipse Graphiti

Activiti Designer+ Patch: Palette Extension

Provider(Eclipse Extension Point)

Jenkow IDE ConfigJenkow Designer Extension

Jenkow Update Site

ActivitiWorkflow Engine

Jenkow Plugin

~/.jenkow/lib/

Eclipse

EGit

Page 34: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Jenkins

Run Time

EGit

~/.jenkow/lib/ jenkow-designer-extension.jar

$JENKINS_HOME/ jenkow-repository/ .git/ jenkow-workflows/

Eclipse

Activiti Designer

Jenkow IDE Config

Activiti Workflow Engine

Jenkow Plugin

Git Server Plugin (JGit)

Eclipse Update Site Plugin

CI Server Admin Workstation

git reset --hard

DB

Page 35: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

EGit

~/.jenkow/lib/ jenkow-designer-extension.jar

Eclipse

Activiti Designer

Jenkow IDE Config

Admin Workstation

Jenkins

Run Time & External DB

$JENKINS_HOME/ jenkow-repository/ .git/ jenkow-workflows/

Activiti Workflow Engine

Jenkow Plugin

Git Server Plugin (JGit)

Eclipse Update Site Plugin

CI Server

Database Activiti Explorer

Page 36: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

JenkowBuilder (start workflow)

Page 37: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

JenkowBuilder (end workflow)

Page 38: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

JenkinsTask

Page 39: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

JenkinsTaskDelegate

Page 40: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Future Features

Workflow Job Type (workflow mode)– How to manage active workflows?

Workflow diagrams in Jenkins– Showing execution state

Integrate Activiti Web UIs?– Activiti Modeler

Page 41: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Future Features

Job parameter supportMore task types for other Jenkins functions– Slave node management– Build promotion– …

Multi-instance task support

Page 42: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Future Features

Find alternative to bundling Eclipse update site with Jenkow pluginOther mechanisms to expose workflow repository– Eclipse EFS over SSH

Page 43: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Jenkow Take Away

Use for complex job orchestrationGit Server Plugin usage exampleEclipse Update Site usage example– Maven / Tycho integration

Resourceshttps://wiki.jenkins-ci.org/display/JENKINS/Jenkow+Plugin

http://www.activiti.org/

Page 44: Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco

Jenkins User Conference San Francisco, Sept 30 2012 #jenkinsconf

Thank You To Our Sponsors