Azure管道中的FileTransformTaskV2变量替换规则是什么



我有一个Azure DevOps管道

pool:
vmImage: 'windows-latest'
variables:
System.Debug: true
one: actual-value
Two: actual-value
MappedValue: actual-value
steps:
- task: FileTransform@2
displayName: V2 - Transform
env:
Three: actual-value
four: actual-value
five: $(MappedValue)
Six: $(MappedValue)
inputs:
folderPath: ./
jsonTargetFiles: settings.json
xmlTargetFiles: ''
xmlTransformationRules: ''
- pwsh: "Get-ChildItem Env:"

- publish: settings.json
artifact: settings.json

和以下设置.json文件

{
"one":"default",
"two":"default",
"three":"default",
"four":"default",
"five":"default",
"six":"default"
}

现在我希望文件转换任务能够替换设置文件中的所有值,但实际上只有";一个";被替换。

注意事项:

  1. ONE和TWO设置为env变量,如列表所示
  2. settings.json中只有一个被替换,但有两个没有
  3. 二被定义为Pascal大小写,但在设置文件中是小写
  4. 在列出的env变量中,one和Two都以大写形式出现
  5. 三个、四个、五个和六个映射到任务环境变量
  6. 映射的变量也不会在设置中进行转换

所以我的问题是,转换任务能够替换设置文件中的值的规则是什么?为什么只有一个有效,没有其他有效,即使它们被映射到env变量都是大写的?

替换是基于管道变量而不是环境变量完成的。

看看这个:

pool:
vmImage: 'windows-latest'
variables:
System.Debug: true
one: actual-value
two: actual-value
MappedValue: actual-value
three: $(MappedValue)
four: actual-value
five: $(MappedValue)
Six: $(MappedValue)
steps:
- task: FileTransform@2
displayName: V2 - Transform
inputs:
folderPath: ./
jsonTargetFiles: settings.json
xmlTargetFiles: ''
xmlTransformationRules: ''
- pwsh: "Get-ChildItem Env:"

- publish: settings.json
artifact: settings.json

我得到了:

{
"one": "actual-value",
"two": "actual-value",
"three": "actual-value",
"four": "actual-value",
"five": "actual-value",
"six": "default"
}

Beacuse替换区分大小写,未替换six

相关内容

  • 没有找到相关文章

最新更新