使用模板天蓝色管道时不会发生变量替换
variable replacement not happening when using templates azure pipelines
所以我正在尝试将一个参数提交到我的模板部署中,但不确定其他参数按预期工作有什么问题只是新参数不起作用,但如果我将其设置为不带参数的布尔值它有效。
似乎有一些变量替换没有发生,我只是想不通为什么它必须是简单的东西,但我就是找不到它
usek8s
没用,图片来自变量选项卡
来自 azure 的代码段-pipelines.yml 当它不起作用时
- template: yml/pipeline-templates/deployment.yaml@parent
parameters:
usek8s: $(usek8s)
stageId: Deploy_Dev
vmImage: $(vmVersion)
environment: 'dev'
targetBranch: 'master'
namespace: $(k8sNamespace)
imagePullSecret: $(imagePullSecret)
containerRegistry: $(dockerRegistryServiceConnection)
tag: $(tag)
imageRepository: $(imageRepository)
kubernetesServiceConnection: $(k8sConnectionDev)
dependsOn: Build_Docker_Deventer
来自 azure-pipelines.yml 的片段
- template: yml/pipeline-templates/deployment.yaml@parent
parameters:
usek8s: false
stageId: Deploy_Dev
vmImage: $(vmVersion)
environment: 'dev'
targetBranch: 'master'
namespace: $(k8sNamespace)
imagePullSecret: $(imagePullSecret)
containerRegistry: $(dockerRegistryServiceConnection)
tag: $(tag)
imageRepository: $(imageRepository)
kubernetesServiceConnection: $(k8sConnectionDev)
dependsOn: Build_Docker_Deventer
来自父模板的片段
parameters:
- name: usek8s
displayName: 'Use k8s deploy process?'
type: boolean
default: false
- name: stageId
- name: vmImage
- name: targetBranch
- name: environment
- name: namespace
- name: imagePullSecret
- name: containerRegistry
- name: tag
- name: imageRepository
- name: kubernetesServiceConnection
- name: dependsOn
default: []
stages:
- stage: ${{ parameters.stageId }}
displayName: '${{ parameters.stageId }}'
dependsOn: ${{ parameters.dependsOn }}
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/heads/${{ parameters.targetBranch }}'), eq(${{ parameters.usek8s }}, true))
jobs:
我收到错误
如果我删除布尔数据类型并仅 运行 它的名称,我只会在条件行中得到相同类型的错误
variable replacement not happening when using templates azure pipelines
这是一个已知问题,已报告给 MS 团队。您可以查看以下线程以了解一些详细信息:
Queue Time Variables Do Not Override Default Variable
那是因为我们不能使用队列变量来覆盖编译时参数。
因此,MS 团队最近推出了一项新功能 Runtime parameters,允许您将数据注入流水线编译的预处理器阶段:
参数:
- 名称:usek8s
显示名称:UseUsek8s?
类型:布尔值
默认值:假
当我们对管道进行排队时,如果我们使用 usek8s
:
我们可以 select
希望对您有所帮助。
所以我正在尝试将一个参数提交到我的模板部署中,但不确定其他参数按预期工作有什么问题只是新参数不起作用,但如果我将其设置为不带参数的布尔值它有效。
似乎有一些变量替换没有发生,我只是想不通为什么它必须是简单的东西,但我就是找不到它
usek8s
没用,图片来自变量选项卡
来自 azure 的代码段-pipelines.yml 当它不起作用时
- template: yml/pipeline-templates/deployment.yaml@parent
parameters:
usek8s: $(usek8s)
stageId: Deploy_Dev
vmImage: $(vmVersion)
environment: 'dev'
targetBranch: 'master'
namespace: $(k8sNamespace)
imagePullSecret: $(imagePullSecret)
containerRegistry: $(dockerRegistryServiceConnection)
tag: $(tag)
imageRepository: $(imageRepository)
kubernetesServiceConnection: $(k8sConnectionDev)
dependsOn: Build_Docker_Deventer
来自 azure-pipelines.yml 的片段
- template: yml/pipeline-templates/deployment.yaml@parent
parameters:
usek8s: false
stageId: Deploy_Dev
vmImage: $(vmVersion)
environment: 'dev'
targetBranch: 'master'
namespace: $(k8sNamespace)
imagePullSecret: $(imagePullSecret)
containerRegistry: $(dockerRegistryServiceConnection)
tag: $(tag)
imageRepository: $(imageRepository)
kubernetesServiceConnection: $(k8sConnectionDev)
dependsOn: Build_Docker_Deventer
来自父模板的片段
parameters:
- name: usek8s
displayName: 'Use k8s deploy process?'
type: boolean
default: false
- name: stageId
- name: vmImage
- name: targetBranch
- name: environment
- name: namespace
- name: imagePullSecret
- name: containerRegistry
- name: tag
- name: imageRepository
- name: kubernetesServiceConnection
- name: dependsOn
default: []
stages:
- stage: ${{ parameters.stageId }}
displayName: '${{ parameters.stageId }}'
dependsOn: ${{ parameters.dependsOn }}
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/heads/${{ parameters.targetBranch }}'), eq(${{ parameters.usek8s }}, true))
jobs:
我收到错误
如果我删除布尔数据类型并仅 运行 它的名称,我只会在条件行中得到相同类型的错误
variable replacement not happening when using templates azure pipelines
这是一个已知问题,已报告给 MS 团队。您可以查看以下线程以了解一些详细信息:
Queue Time Variables Do Not Override Default Variable
那是因为我们不能使用队列变量来覆盖编译时参数。
因此,MS 团队最近推出了一项新功能 Runtime parameters,允许您将数据注入流水线编译的预处理器阶段:
参数: - 名称:usek8s 显示名称:UseUsek8s? 类型:布尔值 默认值:假
当我们对管道进行排队时,如果我们使用 usek8s
:
希望对您有所帮助。