Windows环境下无需Bash设置Azure Pipelines自定义变量的正确语法
Azure Pipelines Windows环境下设置自定义流水线变量的正确方法
直接用set命令只能修改当前脚本进程的环境变量,无法同步到Azure Pipelines的全局变量上下文,所以你之前的两种写法都不会生效。要修改流水线级别的变量,必须使用Azure Pipelines的任务日志命令,具体分两种场景:
仅当前作业后续任务生效
在Cmd脚本任务中,使用以下语法更新变量:
- script: echo "##vso[task.setvariable variable=BuildDir]$(Agent.BuildDirectory)" displayName: '更新BuildDir变量'
执行该任务后,当前作业里后续的所有任务都能读取到更新后的$(BuildDir)值。
让变量在后续作业中生效
如果需要跨作业传递更新后的变量,需添加isoutput=true标记将其设为输出变量:
jobs: - job: Job1 variables: - name: BuildDir value: "test" steps: - script: echo "##vso[task.setvariable variable=BuildDir;isoutput=true]$(Agent.BuildDirectory)" displayName: '设置输出变量BuildDir' name: SetBuildDirVar # 给步骤命名,方便后续作业引用 - job: Job2 dependsOn: Job1 # 必须声明依赖关系 variables: - name: BuildDirFromJob1 value: $[ dependencies.Job1.outputs['SetBuildDirVar.BuildDir'] ] steps: - script: echo $(BuildDirFromJob1) displayName: '读取跨作业传递的BuildDir变量'
内容的提问来源于stack exchange,提问作者RoachFIsher
相关产品推荐
相关产品推荐

