Jenkins Pipeline (or simply "Pipeline") provides an extensible set of tools for modeling simple-to-complex delivery pipelines "as code"
. The definition of a Jenkins Pipeline is typically written into a text file (called a Jenkinsfile
) which in turn is checked into a project’s source control repository.
- Declarative Pipeline
- Scripted Pipeline (a limited form of Groovy)
Both are DSLs to describe portions of your software delivery pipeline.
Pipeline 可以使用下面三种方法创建:
- Through Blue Ocean
- Through the classic UI
- In SCM
Jenkinsfile (Declarative Pipeline)
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building..'
}
}
stage('Test') {
steps {
echo 'Testing..'
}
}
stage('Deploy') {
steps {
echo 'Deploying....'
}
}
}
post {
always {
junit '**/target/*.xml'
}
failure {
mail to: team@example.com, subject: 'The Pipeline failed :('
}
}
}
The Global Variable Reference only contains documentation for variables provided by Pipeline or plugins.
http://localhost:8080/pipeline-syntax/globals
Environment variables can be set globally or per stage. Setting environment variables per stage means they will only apply to the stage in which they’re defined.
env.PATH
pipeline {
agent any
environment {
COOKBOOK = 'propel_ha'
}
stages {
stage('Build') {
environment {
DEPLOY_UI = 'yes'
}
steps {
echo "Global Environment Variable COOKBOOK = $env.COOKBOOK"
echo "Stage Environment Variable DEPLOY_UI = $env.DEPLOY_UI"
sh 'env'
}
}
}
}
params.sap_adapter_gitsha
currentBuild.result