pipeline {
// 定义整个流水线的配置
agent {
// 指定Jenkins代理节点的配置
}
options {
// 设置流水线的全局选项
}
stages {
// 定义各个阶段(stage)的配置
stage('Build') {
// 在阶段内定义执行步骤(step)
steps {
echo 'Building the project ...'
// 构建步骤
}
}
stage('Test') {
// 在另一个阶段内定义执行步骤
steps {
echo 'Testing the project ...'
// 测试步骤
}
}
stage('Deploy') {
steps {
echo 'Deploying the project ...'
// 部署步骤
}
}
// 可以定义更多的阶段
}
post {
// 定义流水线完成后的处理
}
}
在Jenkinsfile中,您可以使用各种Groovy语法来编写流水线的逻辑和步骤。这里简单介绍一些常用的功能和语法:
agent
字段:指定Jenkins代理节点的配置,例如any
表示任何可用节点,或者docker
表示在Docker容器中执行。options
字段:设置流水线的全局选项,例如跳过默认的SCM检查、超时设置等。stages
字段:定义各个阶段(stage)的配置,在各个阶段中可以定义执行步骤。stage
字段:定义单个阶段(stage)的配置,可以给阶段命名,并在其中定义多个执行步骤。steps
字段:在阶段内定义执行步骤,可以使用Jenkins提供的各种步骤插件(如构建、测试、部署等),也可以自定义Groovy脚本。post
字段:定义流水线完成后的处理,例如执行邮件通知或清理操作。
关于全局变量,您可以在Jenkinsfile中定义全局变量并在整个流水线中使用。定义全局变量可以使用environment
或env
关键字,示例如下:
pipeline {
environment {
// 定义全局变量
CUSTOM_VAR = 'custom_value'
}
stages {
stage('Stage 1') {
steps {
// 在步骤中可以使用全局变量
echo "GLOBAL VAR: ${CUSTOM_VAR}"
}
}
// 可以定义更多的阶段
}
}
注:
在Jenkinsfile中,stages
块应当只出现一次,并且位于pipeline
块内部的顶部。stages
块包含一个或多个stage
块,每个stage
块代表一个构建阶段。