This document is based on theKeep a Changelog 1.0.0 specification.
This project follows the semantic version 2.0 specification.
Each new should include:
-
Version (semantic version)
-
Date of release (in
yyyy/mm/dd
format)
For each release, a subsection should be added for each of the following if they are non-empty:
-
Added
for new features. -
Changed
for changes in existing functionality. -
Deprecated
for soon-to-be removed features. -
Fixed
for any bug fixes. -
Removed
for now removed features. -
Security
in case of vulnerabilities.
This version requires at least Gradle 5.0+.
-
A few unintentional public functions have been moved to
internal
-
Tasks created and configured in plugins have been updated to use configuration avoidance (
named
,register
) while configurations and other domain objects have been switched back to the immediate APIs (create
,getByName
) -
Dependency version updates
-
Updated default versions:
Component From To Core
2.121.3
2.138.3
Test Harness
2.40
2.44
Workflow API Plugin
2.29
2.33
Workflow Basic Steps Plugin
2.10
2.13
Workflow CPS Plugin
2.54
2.61
Workflow Global CPS Library Plugin
2.10
2.12
Workflow Durable Task Step Plugin
2.21
2.26
Workflow Job Plugin
2.24
2.29
Workflow SCM Step Plugin
2.6
2.7
Workflow Support Plugin
2.20
2.23
This version requires at least Gradle 4.10.
-
Built with Gradle 4.10 and Kotlin DSL Plugin 1.0-rc-3
-
Updated default versions:
Component From To Core
2.107.2
2.121.3
Test Harness
2.38
2.40
Workflow API Plugin
2.26
2.29
Workflow Basic Steps Plugin
2.6
2.10
Workflow CPS Plugin
2.47
2.54
Workflow Durable Task Step Plugin
2.19
2.21
Workflow Global CPS Library Plugin
2.9
2.10
Workflow Job Plugin
2.18
2.24
Workflow Multibranch Plugin
2.17
2.20
Workflow Step API Plugin
2.14
2.16
Workflow Support Plugin
2.18
2.20
-
Rebaseline core version to latest LTS due to 2018-04-11 security advisory
Component From To Core
2.107.1
2.107.2
-
Error logs and problems with JEP-200 with latest Jenkins 2.107.1 LTS release (see these blog posts - 2018/01/13/jep-200, 2018/03/15/jep-200-lts)
-
All
org.jenkins-ci.modules
group dependencies from thejenkins-war
dependency are included in integration tests. This should hopefully reduce a lot of the standard out error noise by Jenkins during tests.
-
javapoet
,okhttp
, andkotlin-logging
package version upgrades -
Breaking - all exposed extension properties have been changed to the
Property
API. In Groovy, the existing DSL still works fine due to Gradle DSL decoration:sharedLibrary { coreVersion = "2.114" testHarnessVersion = "2.32" pluginDependencies { workflowCpsPluginVersion = "2.4" workflowCpsGlobalLibraryPluginVersion = "2.9" dependency("io.jenkins.blueocean", "blueocean-web", "1.3.0") } }
However if using the Kotlin DSL, you will need to use
.set
until kotlin-dsl/380 is resolved.sharedLibrary { coreVersion.set("2.86") testHarnessVersion.set("2.32") pluginDependencies { workflowCpsGlobalLibraryPluginVersion.set("2.9") workflowCpsPluginVersion.set("2.4") dependency("io.jenkins.blueocean", "blueocean-web", "1.3.0") } }
-
Updated default versions:
Component From To Core
2.89.4
2.107.1
Test Harness
2.34
2.38
Workflow CPS Plugin
2.45
2.47
Workflow Job Plugin
2.17
2.18
-
New plugin to integrate with a specific Jenkins instance. This will be built upon in the future to allow for auto-management of dependencies. For now, a few tasks are added to download the GDSL, retrieve the plugin lists if you have appropriate permissions, and retrieve the core version. These tasks are experimental until better support arrives.
import java.net.URL import com.mkobit.jenkins.pipelines.http.BasicAuthentication jenkinsIntegration { baseUrl = new URL('https://mycorp.jenkins.zone') authentication = providers.provider { new BasicAuthentication(property('username'), property('password') } }
./gradlew retrieveJenkinsGdsl ./gradlew retrieveJenkinsPluginData ./gradlew retrieveJenkinsVersion
-
Support for using Jenkins core and plugins in library source code
-
Support for
@Grab
in library sourceWarningUnit testing code that uses @Grab
does not seem to work. See this StackOverflow question. You can, however, still test other code that does not use@Grab
-
Updated default versions:
Component From To Core
2.89.2
2.89.4
Test Harness
2.33
2.34
Workflow API Plugin
2.24
2.26
Workflow CPS Plugin
2.42
2.45
Workflow Durable Task Step Plugin
2.17
2.19
Workflow Job Plugin
2.16
2.17
Workflow Support Plugin
2.16
2.18
-
Upgraded to Gradle 4.4.1
-
Upgraded to Kotlin 1.2.10
-
Updated default versions:
Component From To Core
2.73.2
2.89.2
Test Harness
2.31
2.33
Workflow API Plugin
2.22
2.24
Workflow CPS Plugin
2.40
2.42
Workflow Durable Task Step Plugin
2.15
2.17
Workflow Job Plugin
2.14.1
2.16
Workflow Step API Plugin
2.13
2.14
Workflow Support Plugin
2.15
2.16
Built and tested on Gradle 4.3.
-
Generated classes for integration tests in the
com.mkobit.jenkins.pipelines.codegen
package namespace. The first generated class is theLocalLibraryRetriever
which can be used as aLibraryRetriever
for fast feedback in integration tests. See the integration tests or example library for how to use the generated classes.
-
integrationTest
will executed aftertest
if they are both included in the build -
check
nowdependsOn
integrationTest
-
Default Jenkins Test Harness version:
2.28
to2.31
-
Default Jenkins Core Version version:
2.73.1
to2.73.2