-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Closed
Labels
Description
Currently, Jenkinsfile is in a scripted format.
Therefore, while more changes are suggested to improve the CI, like #8673, #8674 and #8675 the script will grow a lot.
So, I suggest migrating it to declarative style to have access to Jenkins helpers directly.
Pipeline syntax differences
Declarative pipelines always begin with the word pipeline. Scripted pipelines, on the other hand, always begin with the word node. Declarative pipelines break down stages into individual stages that can contain multiple steps. Scripted pipelines use Groovy code and references to the Jenkins pipeline DSL within the stage elements without the need for steps.
Declarative style example
pipeline {
agent any
stages {
stage('Deploy') {
steps {
timeout(time: 3, unit: 'MINUTES') {
retry(5) {
sh ...
}
}
}
}
}
}
Pros:
- A cleaner Jenkinsfile, easier to maintain, add features.
- Direct access to declarative syntax, wrappers and functions from Jenkins syntax.
- Can add
postpipeline action to sent status on email, Slack, discord etc.
areusch