Submitted by kohsuke on Tue, 2015-01-27 13:54
In tomorrow's Jenkins office hours, Jesse Glick will talk about two topics in the workflow plugin that he has been asked about:
- Security model: script security, permissions
- Plugin compatibility: SimpleBuildStep and friends, custom steps, etc.
The session should be interesting to anyone using workflow or thinking about using workflow. Jesse is one of the top contributors in the community, so it'd be definitely worth your time!
Jenkins started with a notion of jobs and builds at heart. One script is one job, and as you repeatedly execute jobs, it creates builds as records. As the use case of Jenkins gets more sophisticated, people started combining jobs to orchestrate ever more complex activities.
A number of plugins have been developed to enable all sorts of different ways to compose jobs, and many are used quite successfully in production. But this resulted in a certain degree of complexity for users to figure out how to assemble these plugins.
So we felt the need to develop a single unified solution that subsumes all these different ways to orchestrate activities that may span across multiple build slaves, code repositories, etc. Various inputs from users as well as other plugin developers played a key role.
The result of this is the workflow plugin, which is what a number of us, including Jesse Glick an myself, are focused on in the past few months.
The plugin approaches the problem by defining a DSL for you to describe an execution of a job. Various convenient primitives are available, such as executing shell scripts, checking out the source code, obtaining an executor or a build workspace, etc.
(This is a guest post from Daniel Spilker)
Jenkins supports building plugins using Gradle for a while now. Last week a new version of the Gradle JPI plugin has been released to iron out some issues.
The Gradle JPI plugin enables a 100% groovy plugin development environment with Groovy as primary programming language, Spock for writing tests and Gradle as build system. Have a look at the Job DSL plugin for an example.
An existing Maven build can be converted to Gradle by using the build.gradle template from the Gradle JPI plugin's README.
Jesse and I will walk through the source code of the workflow plugin, highlights key abstractions and extension points, and discuss how they are put together.
If you are interested in developing or retrofitting plugins to work with workflows, I think you'll find this session interesting.
The event will be on Google Hangout tomorrow. The time of the day is the same as usual office hours.