You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Jenkins脚本传递用户输入值并设为全局变量?

实现方案

1. 配置参数化构建,让用户输入值

先给Jenkins作业开启参数化构建,添加对应类型的参数(比如字符串、选择框等),示例步骤:

  • 进入作业配置页,勾选「This project is parameterized」
  • 点击「Add Parameter」,选择合适的类型(比如「String Parameter」)
  • 设置参数名(比如USER_INPUT)和描述,保存配置

用户手动触发作业时,页面会显示输入框,直接输入值即可;用CLI/API触发时,也能通过参数传递值(比如CLI命令:java -jar jenkins-cli.jar -s http://你的Jenkins地址 build "作业名" -p USER_INPUT=输入内容)

2. 在PowerShell脚本中捕获并设置全局变量

自由风格作业场景

PowerShell脚本里可以直接通过$env:参数名获取用户输入,再将其设置为全局环境变量,让后续所有步骤都能调用:

# 获取用户输入的参数值
$inputValue = $env:USER_INPUT

# 设置为全局环境变量,后续步骤(Shell、其他脚本)都能直接用
Set-Item -Path Env:GLOBAL_USER_INPUT -Value $inputValue

# 验证输出
Write-Host "已设置全局变量GLOBAL_USER_INPUT为: $env:GLOBAL_USER_INPUT"

Pipeline作业场景(更推荐,全局变量管理更直观)

直接在Pipeline的environment块中将用户参数转为全局环境变量,整个流水线的所有阶段都能调用:

pipeline {
    agent any
    parameters {
        string(name: 'USER_INPUT', description: '请输入需要传递的值')
    }
    // 定义全局环境变量,全程可用
    environment {
        GLOBAL_VAR = "${params.USER_INPUT}"
    }
    stages {
        stage('PowerShell处理') {
            steps {
                powershell '''
                    # PowerShell中直接调用全局变量
                    Write-Host "用户输入的全局变量值: $env:GLOBAL_VAR"
                    # 也可在此扩展,将变量写入本地环境供后续步骤使用
                    Set-Item -Path Env:LOCAL_GLOBAL_VAR -Value $env:GLOBAL_VAR
                '''
            }
        }
        stage('后续步骤验证') {
            steps {
                echo "全局变量值: ${env.GLOBAL_VAR}"
                // 其他构建步骤(比如Shell、部署脚本)都能直接引用这个变量
            }
        }
    }
}

3. 注意事项

  • 自由风格作业中,设置的环境变量仅在当前作业的会话中有效,同一节点的后续构建步骤无需额外配置即可直接调用
  • Pipeline的environment变量是跨阶段全局生效的,不管是PowerShell、Shell还是其他插件步骤都能直接使用
  • 如果需要输入校验或动态选项,可安装「Active Choice Parameter」插件实现更复杂的参数逻辑

内容的提问来源于stack exchange,提问作者Tracey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:18:16