Welcome to the jenkins-job-dsl wiki!
- The formal documentation and full syntax reference is detailed in [[Job DSL Commands]].
- There are also tips on [[more advanced usage and workflows|User Power Moves]].
- The forum has lots of information, some of which is making its way to the [[FAQ|Frequently Asked Questions]].
- If you want to get more involved, here's how to contribute...
Highly recommended starting point is [[the tutorial|Tutorial - Using the Jenkins Job DSL]].
Once you know how to create a "seed" job from the tutorial, start looking at the [[real world examples|Real World Examples]] for examples to steal from. After you get familiar with some of the commands, try them out at the Job DSL Playground.
If you want to get fancy you'll want to read up on [[configure block|The Configure Block]], which gives you direct access to the config.xml
.
Have a look at the Jenkins Job DSL Gradle example to see how to organize a SCM repository for Job DSL scripts.
- 1.35 (unreleased)
- Added closure method for logRotator
- Enhanced DSL support for the Job DSL plugin
- Fixed problem when deleting views from already deleted folder (JENKINS-28458)
- Fixed Parameterized Trigger Plugin build step (JENKINS-28353)
- Enhanced support for the HTML Publisher Plugin (JENKINS-28564)
- Removed anything that has been deprecated in 1.27, see [[Migration#migrating-to-127]] (JENKINS-27492)
- 1.34 (May 08 2015)
- Enhanced support for the Publish Over SSH Plugin (JENKINS-26636)
- Fixed XML encoding issue when using a single conditional build step (JENKINS-28308)
- Fixed issue with multiple (script) parameters for Groovy build steps (JENKINS-28310)
- Deprecated an undocumented variant of the
runner
method inconditionalSteps
context, see [[Migration]] - 1.33 (May 07 2015)
- Enhanced support for the Git Plugin (JENKINS-27891, JENKINS-28264)
- Added support for the Build Publisher Plugin
- Added support for the Naginator Plugin
- Added support for the Sidebar-Link Plugin
- Added support for the Custom Job Icon Plugin
- Added support for "Build after other projects are built" trigger
- Added more options for
archiveArtifacts
- The
latestOnly
option ofarchiveArtifacts
is deprecated, see [[Migration]] - Enhanced support for the Robot Framework Plugin
- Enhanced support for RunDeck Plugin
- Enhanced support for the Mercurial Plugin
- Support for the older versions of the Mercurial Plugin is deprecated, see [[Migration]]
- Enhanced support for the Flexible Publish Plugin
- Support for the older versions of the Flexible Publish Plugin is deprecated, see [[Migration]]
- Enhanced support for the Copy Artifact Plugin (JENKINS-27838, JENKINS-27894)
- Enhanced support for the GitHub Pull Request Builder Plugin (JENKINS-27932)
- Support for the older versions of the Copy Artifact Plugin is deprecated, see [[Migration]]
- Enhanced support for the Robot Framework Plugin
- Support for the older versions of the Robot Framework Plugin is deprecated, see [[Migration]]
- Variants of
copyArtifacts
with more than two parameters have been replaced and are deprecated, see [[Migration]] - Added a Jenkins extension point for adding DSL methods
- Added support for HipChat Plugin
- Added support for uploading user conent
- Increased the minimum supported Jenkins version to 1.565 (JENKINS-28167)
- 1.32 (April 07 2015)
- Added support for PowerShell Plugin (JENKINS-27820)
- Fixed problem with publishers in Maven jobs (JENKINS-27767)
- 1.31 (April 04 2015)
- Added support for Categorized Jobs View
- Added support for Build Node Column Plugin
- Added support for Pre-SCM Build Step Plugin
- Added support for Sonar Plugin
- Added support for Debian Package Builder Plugin
- Added support for Plot Plugin
- Added support for Git Parameter Plugin
- Added
recurse
option for list views - Added
ignorePostCommitHooks
option for SCM trigger - Added
commentFilePath
option for GitHub Pull Request Builder Plugin - Added "Configure Project" column for Extra Columns Plugin
- Added support for PostBuildScript Plugin
- Added support for Xvfb Plugin
- Enhanced support for the Credentials Binding Plugin
- Enhanced support for the Multijob Plugin
- Enhanced support for the NodeJS Plugin
- Enhanced support for the Maven Project Plugin
- Enhanced support for the Description Setter Plugin
- Enhanced support for (Cloudbees Folders Plugin)
- Support all available permissions (JENKINS-16365)
- Deprecated the Permissions enum, see [[Migration]]
- The
tagFilterRegex
argument oflistTagsParam
can be null or empty - The enum argument of
localRepository
for the Maven job and context has changed, see [[Migration]] - Support for the older versions of the Multijob Plugin is deprecated, see [[Migration]]
- The views closure of the nested view type has been changed, see [[Migration]]
- Removed anything that has been deprecated in 1.26, see [[Migration#migrating-to-126]]
- 1.30 (March 08 2015)
- Added support for Custom Tools Plugin
- Added support for Flaky Test Handler Plugin
- Added configure block to the Multijob job context
- Added strategy option for the Git Plugin
- Added strategy build chooser for the Gerrit Trigger
- Enhanced support for the Subversion Plugin
- Added
abortBuild
action for the Build Timeout - Deprecated the
failBuild
action with a boolean parameter for the Build Timeout, see [[Migration]] - Deprecated the
javaposse.jobdsl.dsl.helpers.wrapper.WrapperContext.Timeout
enum, see [[Migration]] - Added support for label parameters from the NodeLabel Parameter Plugin
- Added populateToolInstallations and overrideBuildVariables options for the EnvInject Plugin
- Added groovy option in the wrappers context for the EnvInject Plugin
- Fixed the
notifySuspects
option for the Jabber Plugin - Fixed
extendedEmail
configure block resolve strategy (JENKINS-27063) - Deprecated some overloaded DSL methods for the Jabber Plugin, see [[Migration]]
- Introduced new factory methods and deprecated the generic factory and
name
methods, see [[Migration]] - Finding credentials by description is deprecated, see [[Migration]]
- 1.29 (February 05 2015)
- Show seed job and template job info in the generated jobs
- Added CoreMirror support for the DSL script input field
- Added support for renaming existing Jobs based on a regular expression
- Added support for the Repository Connector Plugin
- Added support for the Workflow Plugin
- Added support for the View Job Filters Plugin
- Enhanced support for the Parameterized Remote Trigger Plugin
- Enhanced support for the Claim Plugin
- Enhanced DSL support for the Job DSL plugin
- Fixed support for JARs in the "Additional classpath" option of the "Process Job DSLs" build step
- Allow Ant-style patterns in the "Additional classpath" option of the "Process Job DSLs" build step
- Support for the
@Grab
and@Grapes
annotations is deprecated, see [[Migration]] - Deprecated
perModuleEmail
option for Maven jobs (JENKINS-26284) - Removed deprecated build timeout methods, see [[Migration|Migration#migrating-to-124]]
- 1.28 (January 01 2015)
- Added support for the Credentials Binding Plugin
- Added support for the HTTP Request Plugin
- Added support for the Build Monitor Plugin
- Added support for the Publish Over SSH Plugin
- Added support for the Team Concert Plugin
- Enhanced support for the Config File Provider Plugin
- Added allow missing option for the HTML Publisher Plugin
- Added clone timeout option for the Git Plugin
- Support more trigger for Email-ext Plugin
- Fixed documentation for the Release Plugin (JENKINS-25945)
- Fixed
copyArtifacts
build step for matrix jobs, minimum supported version of Copy Artifact Plugin raised to 1.26 - Allow the Job DSL build step to be used as conditional build step (JENKINS-25961)
- Allow views to be deleted (JENKINS-26152)
- The non-closure variants of the
report
methods in thepublishHtml
context are deprecated, see [[Migration]] - Set return type for most DSL methods to void, see [[Migration]]
- Moved
Context
andContextHelper
to packagejavaposse.jobdsl.dsl
, see [[Migration]] - 1.27 (December 05 2014)
- Added support for the Rbenv Plugin
- Added support for the NodeJS Plugin
- Added support for the Golang Plugin
- Added more support for the Gradle Plugin
- Added
forcePush
option for Git Publisher - Improved build step console output
- added
entries
method inpublishScp
closure to add multiple entries - The context helper classes have been removed
- Top-level
permission
methods are deprecated, see [[Migration]] pattern
method inarchiveArtifacts
closure can be called multiple times to collect patterns- Added a no parameter variant of
colorizeOutput
to match documentation. - The
name
method with a closure parameter in thejob
closure is deprecated, see [[Migration]] - Fixed time condition for Run Condition Plugin
- 1.26 (October 04 2014)
- Support for "Pipeline starts with parameters" for Build Pipeline Plugin
- Support for Build User Vars Plugin
- Support for Test Stability Plugin
- Support for Mask Passwords Plugin
- Support for Analysis Collector Plugin
- Support for Delivery Pipeline Plugin
- Support for Notification Plugin
- Allow to merge more than one branch with Git SCM
- Support for S3 Plugin
- Removed unnecessary undocumented methods in Gerrit trigger (JENKINS-24787)
- Short names in the Gerrit trigger event closure have been replaced by DSL methods, see [[Migration]]
- The
archiveJunit
method with boolean arguments has been deprecated, see [[Migration]] - The
xvnc
method with boolean arguments has been deprecated, see [[Migration]] - Support to specify the xAuthority file option of the Xvnc Plugin
javaposse.jobdsl.dsl.helpers.step.AbstractStepContext
has been removed, see [[Migration]]- Fixed endless recursion when calling
properties
in configure blocks (JENKINS-22708) - Support for Flexible Publish Plugin
- Support for Any Build Step Plugin
- Support to specify the Stash browser URL for the Git Plugin
- Partial support for NodeLabel Parameter Plugin
- Increased minimum supported Jenkins core version to 1.509.3
- 1.25 (September 01 2014)
- Dropped support for Java 5, Java 6 or later is required at runtime
- Support for Rake Plugin
- Support for Lockable Resources Plugin
- Support for vSphere Cloud Plugin
- Support for Sectioned View Plugin
- Support for M2 Release Plugin
- Support for Nested View Plugin
- Support for Config File Provider Plugin
- Support more options of the Multijob Plugin
- Added option to add classpath entries for Job DSL runs
- Added localBranch option for Git SCM
- Added method to read a file from any job's workspace
- Fixed workspace cleanup external delete command (JENKINS-24231)
- Fixed Build Timeout Plugin no activity timeout (JENKINS-24258)
- Fixed alwaysRun and neverRun conditions (JENKINS-24510)
- 1.24 (July 05 2014)
- Support for Build Name Setter Plugin
- Support for RunDeck Plugin
- Support for ClearCase Plugin
- Support for Keychains and Provisioning Profiles Plugin
- Support for xUnit Plugin
- Support for Batch Task Plugin
- Support for Matrix Projects
- Extend support for Build Timeout
- Added option for treating job names relative to the seed job
- Added pruneBranches option for Git SCM
- Fixed ClassCastException when removing folder (JENKINS-23289)
- Fixed GerritContext not honoring default settings (JENKINS-23318)
- Moved PerforcePasswordEncryptor to javaposse.jobdsl.dsl.helpers.scm package
- Support for Exclusion Plugin
- 1.23 (May 23 2014)
- Added support for injecting globally defined passwords (EnvInject Plugin)
- Added file name to exception message when reading missing workspace files (JENKINS-23006)
- Fixed behavior when creating Jabber targets that are not group chats (JENKINS-23090)
- Create and update folders (Cloudbees Folders Plugin)
- Allow to create or update views within folders
- Removed multiscm limit
- Fixed support for the Description Setter Plugin
- new parameter for CopyArtifact's StatusBuildSelector to consider only stable builds
- Limited Extra Columns Plugin support
- Flowdock Plugin
- More conditions for the Conditional BuildStep Plugin supported
- Initial support for the Stash Notifier Plugin
- Support for LogFileSizeChecker Plugin
- Support for Maven Deployment Linker Plugin
- Added support for parameterized manual jobs for the Build Pipeline Plugin
- Support for Workspace Cleanup Plugin
- 1.22 (Apr 05 2014)
- Fixed support for the Conditional BuildStep Plugin
- Github Pull Request Builder Plugin
- Workspace Cleanup Plugin
- Parameterized Remote Trigger Plugin
- Git Publisher
- Support for the
changeBuildStatus
element for Jacoco Code Coverage publisher - Jenkins Release Plugin
- Support for buildnumbers as strings in Copy Artifacts
- 1.21 (Mar 06 2014)
- Build Flow job type
- Execute concurrent builds job option
- Github Commit Notifier publisher
- Build Pipeline Plugin
- Views
- Publish Robot Framework reports
- Templates within folders can be used
- Tool Environment Plugin
- 1.20 (Jan 27 2014)
- Allow to set the Maven installation
- Maven step supports more options
- Maven pre/post build steps supported
- Conditional BuildStep Plugin
- Added allowEmpty option to archiveArtifacts
- Throttle Concurrent Builds Plugin
- Some implementation classes have been moved to avoid problems with Groovy closures (BREAKING CHANGE, see [[Migration]])
- Parameterized Trigger Plugin for build steps
- Associated Files Plugin
- JSHint Checkstyle Plugin
- Emma Plugin
- Added support for advanced Git SCM options
- Added ItemDiscover, ItemCancel, and ScmTag permissions to the Permissions enum
- 1.19 (Dec 19 2013)
- Javadoc Plugin
- Added support to allow seed jobs in folders. #109
- Groovy Postbuild Plugin
- XVNC Plugin
- Prerequisite Build Step
- Aggregate Downstream Test Results
- Post Build Task
- AnsiColor Plugin
- new wrappers block, containing all build wrapper methods (BREAKING CHANGE, see [[Migration]])
- Timestamper
- JENKINS-20284
- Text Finder
- 1.17
- Static Analysis Plugins (PMD, Checkstyle, Findbugs, DRY, Tasks, CCM, Lint, OWASP Dependency Check, Compiler warnings,
- Description Setter Plugin
- Keep Dependencies and Fingerprinting
- Mailer
- SSH Agent
- General Improvements (Filter for Run Build Parameter, support Folders)
- Isolated Local Maven Repositories
- Node Stalker Plugin
- JaCoCo Plugin
- Claim plugin
- 1.16
- Clone Workspace SCM
- Block on upstream/downstream jobs
- Job DSL Plugin (to create DSL build steps in a job)
- Build Timeout Plugin
- Cobertura Plugin
- Port Allocator Plugin
- RVM Plugin
- URL Trigger
- Better Gerrit support
- SBT Plugin
- Update blockOn call
- [[Help method to read files from the workspace|Job-DSL-Commands#reading-files-from-workspace]]
- Queue jobs after execution of the DSL
- MultiJob Support
- 1.15
- [[@Grab Support|Grab Support]]
- Build Parameters
- GitHub SCM Context
- IRC Publisher
- Environment Variables From Groovy Script
- Priority Sorter Plugin
- 1.14
- Environment Variables
- Groovy Build Steps
- System Groovy Build Steps
- Maven Project Support
- 1.13
- Make it possible to forget generated jobs
- JENKINS-16931, JENKINS-16998
- 1.12
- Copy Artifacts Plugin
- Batch File Build Step
- Violations Publisher Plugin
- 1.11
- Able to specify description
- Build Blocker Plugin
- Downstream Extended - Extended version of downstream that can also pass in complex parameters
- Downstream - Specify a downstream job
- SCP Publisher
- Jabber Publisher - Publish builds to Jabber
- Archive Junit - Archiving the results from JUnit
- Ant - Apache Ant Build Step
- logRotator - How long to keep builds
- publishHtml - Publish HTML Files
- archiveArtifacts - Archive artifacts into the build
- 1.10
- Encrypt P4 Passwords
- Start building onejar
- 1.9
- Fix label() to force canRoam to false
- 1.8
- Bug fixes
- 1.7
- Move to GroovyEngine, to look at Workspace for other Groovy scripts that can be used for re-usable helper classes
- 1.6
- Refactored DSL from Plugin, so that they're in different modules
- 1.5
- Fix for #39
- label() - Assign which labels this job can run on
- timeout(Integer timeoutInMinutes, boolean shouldFailBuild) - Build Timeout Plugin
- chucknorris() - Chuck Norris Plugin
- 1.4
- Parameters and Environment variables are binded to the script and can be used directly
- svn(svnUrl, closure)
- p4(viewspec, user, password, closure)
- 1.3
- Support for Node as argument to div(), meaning that more complex structures can be used in div statements.
- multiscm(closure) - Supoprt multi-scm plugin, alternative to scm tag to allow multiple SCMs
- 1.2
- permissionAll(String userName) - Add all available permissions for a user
- 1.1
- extendedEmail(recipients, subject, content, closure) - Configure email-ext plugin
- gerrit(closure) - Configure Gerrit Trigger plugin
- 1.0
- Initial release