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/

Slides:



Advertisements
Similar presentations
© 2011 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Ashish Mishra Automation Lifecycle of Mobile Applications.
Advertisements

Integrated Platform version 5.2
EGit wird erwachsen Git, Github und Gerrit – alles in der IDE += Dr. Stefan Lay (SAP AG)
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger.
Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)
Jenkins User Conference Jenkins User Conference Israel, 06 June 2013 #jenkinsconf Pre-Tested Commits with Jenkins and Reviewboard Yardena Meymann VMware.
Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Dean Yu Yahoo!, Inc. Continuous Integration.
Developing in CAS. Why? As distributed you edit CAS 3 with Eclipse and build with Maven 2 – Best Practice for Release Engineering – Difficult edit-debug.
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
Jenkins User Conference Jenkins User Conference San Francisco, Sept #jenkinsconf Using Jenkins in the Enterprise and the Cloud Mark Prichard Kohsuke.
Jenkins User Conference Jenkins User Conference San Francisco, Sept #jenkinsconf Using Jenkins for the build and deployment of.NET applications.
AgriDrupal - a “suite of solutions” for agricultural information management and dissemination, built on the Drupal CMS; - the community of practice around.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
Jenkins User Conference Jenkins User Conference San Francisco, Sept #jenkinsconf Take Control. Write a Plugin. Part II Baruch Sadogursky JFrog.
Enterprise Workflow CPSC 476 Lightening Talk Brenda Griffith/Katie Soto.
Version Enterprise Architect Redefines Modeling in 2006 An Agile and Scalable modeling solution Provides Full Lifecycle.
Understanding and Managing WebSphere V5
Google App Engine Google APIs OAuth Facebook Graph API
Eclipse is an open source IDE (Integrated Development Environment) for developing applications in Java, C/C++, HTML, Cobol, Perl, etc. The official Eclipse.
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009.
Jenkins User Conference Jenkins User Conference San Francisco, Oct 2 nd 2011 #jenkinsconf Addressing Key Challenges with Viral Adoption of Jenkins Sacha.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
MAE Continuous Integration Administration guide July 8th, 2013.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Development Environment Matthew Sell, CSSE Student MASS Research Participant, October 2014.
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Version Control Systems with Subversion (SVN) and Tortoise.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
LHCb Software Week November 2003 Gennady Kuznetsov Production Manager Tools (New Architecture)
INFSO-RI Enabling Grids for E-sciencE SCDB C. Loomis / Michel Jouvin (LAL-Orsay) Quattor Tutorial LCG T2 Workshop June 16, 2006.
Bloomer User Notes Installing and Running a Bloomer Installation Jack Park Latest: Project Home:
Liferay Installation Prepared by: Do Xuan Hai 8 August 2011.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
What's New in Kinetic Calendar 2.0 Jack Boespflug Kinetic Data.
Wordpress with Mina Automated Deployment Solution Jonathan Gravato DIG 4104c.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
I Copyright © 2007, Oracle. All rights reserved. Module i: Siebel 8.0 Essentials Training Siebel 8.0 Essentials.
Surya Bahadur Kathayat Outline  Ramses  Installing Ramses  Ramses Perspective (Views and Editors)  Importing/Exporting Example.
Jan Hatje, DESY CSS – Control System Studio EPICS collaboration meeting CSS – Control System Studio Update EPICS collaboration meeting 2008 Shanghai.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
All the dSoftArk Tools Getting started!. Tools dSoftArk is a semi-realistic, agile, development project –Industrial strength software (programming, TDD,
© 2012 LogiGear Corporation. All Rights Reserved FitNesseFitNesse Authors: Nghia Pham 1.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Test Automation Using Selenium Presented by: Shambo Ghosh Ankit Sachan Samapti Sinhamahapatra Akshay Kotawala.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Activiti Dima Ionut Daniel. Contents What is Activiti? Activiti Basics Activiti Explorer Activiti Modeler Activiti Designer BPMN 2.0 Activiti Process.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTERSTAGE BPM ARCHITECTURE BPMS.
V7 Foundation Series Vignette Education Services.
Review for Eclipse Release Review | © 2012 by Review for Eclipse Committers, made available under the EPL v1.0 1 Review for Eclipse (R4E) 0.11 Release.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED INTRODUCTION TO INTERSTAGE BPM.
© 2013 IBM Corporation IBM UrbanCode Deploy v6.0 Support Enablement Training Jenkins plug-in 1 November 2013.
Open-O Integration Project Introduction
UML(Unified Modeling Language)
Version control, using Git
Unified Modeling Language
Simplified Development Toolkit
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
Java Code Review with CheckStyle
Presentation transcript:

Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco JENKINS/Jenkow+Plugin

Jenkins User Conference San Francisco, Sept #jenkinsconf Goals Attract users Get feedback Gain contributors

Jenkins User Conference San Francisco, Sept #jenkinsconf Agenda What is BPMN & Activiti? How to setup & use Jenkow plugin – For Jenkins admins Plugin internals – For Plugin developers Future Features

Jenkins User Conference San Francisco, Sept #jenkinsconf Problem: Job Orchestration Putting jobs into relation Defining logic for execution of multiple jobs Existing orchestration mechanisms – Built-in Upstream / Downstream – Join Plugin – Locks and Latches Plugin – Drools Plugin (deprecated) – Build Flow Plugin –...

Jenkins User Conference San Francisco, Sept #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

Jenkins User Conference San Francisco, Sept #jenkinsconf BPMN Concepts Process: workflow definition Process instance: “running” workflow Task: workflow step

Jenkins User Conference San Francisco, Sept #jenkinsconf Basic BPMN Constructs Start / End Events Script Task – Groovy – Javascript – No concurrency! User Task – Executed by real person Jenkins Task – Invoke Jenkins job

Jenkins User Conference San Francisco, Sept #jenkinsconf Basic BPMN Constructs Parallel Gateway

Jenkins User Conference San Francisco, Sept #jenkinsconf Basic BPMN Constructs Exclusive Gateway

Jenkins User Conference San Francisco, Sept #jenkinsconf More complex workflow

Jenkins User Conference San Francisco, Sept #jenkinsconf BPMN Benefits It’s a standard Geared towards non-software developers Constructs for interactions with other actors (persons and systems) Powerful graphical notation Existing tooling Well-documented XML

Jenkins User Conference San Francisco, Sept #jenkinsconf Open Source (Apache License) BPMN 2.0 workflow engine Implemented in Java Web-based Workflow Management Workflow Editor – Activiti Designer (Eclipse Plugin) Extensible – Web-based Activiti Modeler not under active development

Jenkins User Conference San Francisco, Sept #jenkinsconf Earlier Activiti / Jenkins Integration Part of a larger commit automation effort Jenkins as Execution Engine Activiti Workflow Engine in Apache ServiceMix Container (OSGi) Using Jenkins’ Channel (ssh) mechanism

Jenkins User Conference San Francisco, Sept #jenkinsconf Jenkow Overview Jenkins plugin ("Jenkins On Workflow") Early release (v0.2.4) Emphasis on workflow editor Activiti Engine in Jenkins Activiti 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

Jenkins User Conference San Francisco, Sept #jenkinsconf Jenkow Setup (one time) Install plugin from “Available” catalog If authorization is on, configure SSH public key – To allow push into workflow Git repository – People  userid  Configure  SSH Public Keys

Jenkins User Conference San Francisco, Sept #jenkinsconf

Jenkins User Conference San Francisco, Sept #jenkinsconf Jenkow Setup Create first job with workflow step – Job Configure  Build  Add build step  BPMN Workflow Workflow Name: first-workflow – If workflow doesn’t exist, a simple “hello world” workflow gets created

Jenkins User Conference San Francisco, Sept #jenkinsconf Jenkow Setup Build first job

Jenkins User Conference San Francisco, Sept #jenkinsconf Workflow Editor Setup (one time) Get Eclipse (3.7 Indigo) – (Eclipse IDE for Java Developer) Or install EGit – Help  Eclipse Marketplace…  Find:egit  Install

Jenkins User Conference San Francisco, Sept #jenkinsconf Workflow Editor Setup (one time) Install Jenkow Activiti Designer – Jenkins: Eclipse Update Site  copy URL – Eclipse: Help  Install new Software…  Add…  Name:Jenkow, Location: paste URL  OK

Jenkins User Conference San Francisco, Sept #jenkinsconf Import Workflow Project (one time) Git repository in Jenkins Jenkow: copy Git ssh URI

Jenkins User Conference San Francisco, Sept #jenkinsconf Import Workflow Project (one time) Import in Eclipse (1/2) File  Import…  Git  Projects from Git  Next URI  Next  URI: paste Git URI  Next

Jenkins User Conference San Francisco, Sept #jenkinsconf Import Workflow Project (one time) Import in Eclipse (2/2) … Branch selection: select master  Next Local Destination …  Next …Import existing project…  Next Import Projects: select jenkow-workflows  Finish

Jenkins User Conference San Francisco, Sept #jenkinsconf Import Workflow Project (one time) Open Workflow Project Project Explorer: jenkow-worfklows  src/main/resources  diagrams  first-wf.bpmn

Jenkins User Conference San Francisco, Sept #jenkinsconf Edit Workflow Script Task

Jenkins User Conference San Francisco, Sept #jenkinsconf Edit Workflow Jenkins Task

Jenkins User Conference San Francisco, Sept #jenkinsconf Push changed Workflow Save workflow Commit Project Explorer: right-click jenkow-workflows  Team  Commit…  Commit message  Commit Push Project Explorer: right-click jenkow-workflows  Team  Push to Upstream  OK

Jenkins User Conference San Francisco, Sept #jenkinsconf Run changed Workflow Create “called-by-wf” job Kick “first-job”

Jenkins User Conference San Francisco, Sept #jenkinsconf

Jenkins User Conference San Francisco, Sept #jenkinsconf Example Launch Sequence

Jenkins User Conference San Francisco, Sept #jenkinsconf Implementation Details

Jenkins User Conference San Francisco, Sept #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

Jenkins User Conference San Francisco, Sept #jenkinsconf Plugin Elements Eclipse Graphiti Activiti Designer + Patch: Palette Extension Provider (Eclipse Extension Point) Jenkow IDE Config Jenkow Designer Extension Jenkow Update Site Activiti Workflow Engine Jenkow Plugin ~/.jenkow/lib/ Eclipse EGit  

Jenkins User Conference San Francisco, Sept #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

Jenkins User Conference San Francisco, Sept #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

Jenkins User Conference San Francisco, Sept #jenkinsconf JenkowBuilder (start workflow)

Jenkins User Conference San Francisco, Sept #jenkinsconf JenkowBuilder (end workflow)

Jenkins User Conference San Francisco, Sept #jenkinsconf JenkinsTask

Jenkins User Conference San Francisco, Sept #jenkinsconf JenkinsTaskDelegate

Jenkins User Conference San Francisco, Sept #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

Jenkins User Conference San Francisco, Sept #jenkinsconf Future Features Job parameter support More task types for other Jenkins functions – Slave node management – Build promotion – … Multi-instance task support

Jenkins User Conference San Francisco, Sept #jenkinsconf Future Features Find alternative to bundling Eclipse update site with Jenkow plugin Other mechanisms to expose workflow repository – Eclipse EFS over SSH

Jenkins User Conference San Francisco, Sept #jenkinsconf Jenkow Take Away Use for complex job orchestration Git Server Plugin usage example Eclipse Update Site usage example – Maven / Tycho integration Resources

Jenkins User Conference San Francisco, Sept #jenkinsconf Thank You To Our Sponsors