4. 参数化构建
任务说明
为 Jenkins 项目配置参数化构建,支持字符串、布尔值、选择三类参数,并在流水线中读取这些参数控制构建逻辑。完成后,每次构建时 Jenkins 会提示输入参数,构建过程根据参数值产生不同行为。
实现步骤
- 在 Jenkins 任务配置中勾选“参数化构建过程”,添加三类参数。
- 在流水线脚本中通过
params对象读取参数值。 - 根据参数值执行不同分支逻辑。
完整实现
以下为 Jenkinsfile(Declarative Pipeline)完整内容,可直接粘贴到 Jenkins 任务的 Pipeline 脚本中:
pipeline {
agent any
parameters {
string(name: 'BRANCH', defaultValue: 'main', description: '要构建的分支名称')
booleanParam(name: 'RUN_TESTS', defaultValue: true, description: '是否执行单元测试')
choice(name: 'DEPLOY_ENV', choices: ['dev', 'staging', 'prod'], description: '部署目标环境')
}
stages {
stage('Checkout') {
steps {
echo "Checking out branch: ${params.BRANCH}"
// 实际项目中此处为: git branch: "${params.BRANCH}", url: 'your-repo-url'
}
}
stage('Build') {
steps {
echo "Building application..."
// 模拟编译过程
sh 'echo "Compiling code..."'
}
}
stage('Test') {
when {
expression { return params.RUN_TESTS }
}
steps {
echo "Running unit tests..."
sh 'echo "Executing test suite..."'
}
}
stage('Deploy') {
steps {
echo "Deploying to ${params.DEPLOY_ENV} environment"
sh "echo 'Deploying to ${params.DEPLOY_ENV}'"
}
}
}
post {
always {
echo "Build completed. Branch: ${params.BRANCH}, Tests: ${params.RUN_TESTS}, Env: ${params.DEPLOY_ENV}"
}
}
}
参数配置说明
| 参数类型 | 名称 | 配置项 | 用途 |
|---|---|---|---|
| String | BRANCH | 默认值 main | 指定源码分支 |
| Boolean | RUN_TESTS | 默认勾选 | 控制是否执行测试阶段 |
| Choice | DEPLOY_ENV | dev/staging/prod | 选择部署环境 |
运行与验证
- 在 Jenkins 中新建任务,选择“流水线”(Pipeline)类型。
- 在 Pipeline 区域选择“Pipeline script”,将上述代码粘贴到 Script 输入框。
- 点击“保存”,然后点击“立即构建”——此时 Jenkins 会弹出参数填写页面。
- 修改参数值(例如将
RUN_TESTS取消勾选,选择DEPLOY_ENV=prod),点击“构建”。
通过条件:
- 构建开始时出现参数填写界面,且三类参数均正确显示。
- 控制台输出中,
Checkout阶段显示填写的分支名。 - 当
RUN_TESTS未勾选时,Test阶段被跳过;勾选时则执行。 Deploy阶段输出显示所选环境(如Deploying to prod)。- 构建最终状态为成功,
post步骤打印包含全部参数值的汇总信息。
常见问题
- 参数不生效:确认任务配置中已勾选“参数化构建过程”,且参数名称与
params.XXX完全一致(区分大小写)。 - Choice 参数默认值:第一个选项为默认选中项,如需修改默认环境,调整 choices 列表顺序即可。
- 自由风格任务:若使用自由风格任务,可在构建步骤中通过环境变量
$BRANCH、$RUN_TESTS、$DEPLOY_ENV引用参数值,效果相同。