Dynamic Declarative Jenkinsfile in Kotlin
pipelinekt is a kotlin library that improves the Jenkinsfile development experience, especially for large projects.
Why:
- Remove several limitations imposed by the declarative syntax, for example:
- No longer need to statically define stages
- create stages in loops or by iterating over collections
- move any block of code into a separate function
- standard code sharing with actual classes
- no need to call
load
to dynamically interpret groovy scripts)
- IDE integration
- native kotlin + gradle - no custom groovy compiler
- Code completion
- Auto complete
- Configure sane defaults
- Shared steps before and after stages
- default pipeline configurations
- default
post
stage actions
Subprojects
- core - The base framework for the dsl
- internal - internal implementation for most dsl methods; not exposed to end users
- dsl - end user interface
- examples - code examples
Documentation
getting started
Please see the quickstart guide
Contributing
- Fork on GitHub
- Update minor or major as needed in [version.txt] per Semantic Versioning 2.0.0
-
Ensure all gradle tasks are successful
./gradlew build detek examples:build
-
Apply spotless before each commit
./gradlew spotlessApply
- Create PR