正在按变量设置管道部署组



我需要设置部署管道的"部署组";根据一些变量。这将帮助我为许多部署组创建相同的管道。

不确定我是否完全理解,但我会尽力在这里提供帮助。

我错过了您的管道结构的一些上下文-是某个主.yaml文件,它反过来调用具有相关参数的其他.yaml,然后相应地进行部署,还是其他星座?这个上下文将给出你在这里试图解决的问题。

这么说-这可能会有所帮助:

  1. 使用变量组-您已经知道相关值,并且可以在管道中的任何位置使用它
  2. 使用运行时参数-您可以根据需要在管道的一个步骤中动态设置参数,并将其传递给管道的另一个步骤-在这种情况下,您可以评估值并做出决定

假设您有一个管道,您需要在其中决定应该部署到哪个服务器/环境。

  • 第一步将是一个管道,它将做出这个决定并输出一些参数
  • 下一步-我们可以在接下来的步骤中使用这个值,对其进行评估并相应地触发下一步

在下一个示例中,第一步将输出['WhichEnvironment.EnvChoose.TargetEnv'],其中将包含要部署到的目标环境的值。在接下来的步骤中,将对其进行评估,以决定运行哪个步骤。注意,参数是硬编码的,因为我们无法将其作为变量传递,如上面Azure文档中所述。

参数仅在模板解析时可用。

示例

stages:
- stage: HelmsmanDryRun
condition: succeeded()

displayName: Helmsman Dry Run
jobs:
- template: kubernetes/helmsman-pr-validate.yml@pipeline-templates
parameters:
region: eu-west-1

- stage: HelmsmanApplyDev
dependsOn: HelmsmanDryRun
condition: and(eq(dependencies.HelmsmanDryRun.outputs['WhichEnvironment.EnvChoose.TargetEnv'],'dev'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
displayName: Helmsman Apply Dev
jobs:
- template: kubernetes/helmsman-pr-deploy.yml@pipeline-templates
parameters:
targetEnvironment: dev
region: eu-west-1
- stage: HelmsmanApplyQA
dependsOn: HelmsmanDryRun
condition: and(eq(dependencies.HelmsmanDryRun.outputs['WhichEnvironment.EnvChoose.TargetEnv'],'qa'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
displayName: Helmsman Apply QA
jobs:
- template: kubernetes/helmsman-pr-deploy.yml@pipeline-templates
parameters:
targetEnvironment: qa
region: eu-west-1

希望这能给你一些方向,你正在寻找什么。

最新更新