gpt4 book ai didi

azure-pipelines - 在可能从模板扩展的 azure pipelines yml 中使用变量?

转载 作者:行者123 更新时间:2023-12-05 04:52:26 26 4
gpt4 key购买 nike

我们正在使用扩展功能以安全的方式在我们的管道中重用模板。为了更轻松地定义模板的参数,我想使用变量,但我觉得这是不可能的。

但由于我在官方文档中找不到答案,所以我在这一轮提问。

我的 yml 文件如下所示:

name: '[$(Date:yyyyMMdd).$(Rev:r)][$(Build.SourceBranchName)]'

# ========================================================================
# Pipeline Triggers
# ========================================================================
schedules:
- cron: "0 22 * * *" # time in UTC timezone
displayName: Daily midnight build for mainline branches
branches:
include:
- develop
- master
always: true
- cron: "0 22 * * *" # time in UTC timezone
displayName: Daily midnight build for release branches
branches:
include:
- release/*
always: false

# ========================================================================
# Template resource
# ========================================================================
resources:
repositories:
- repository: templates # id for reuse in below script code
type: git
name: Tools/pipeline-templates
ref: develop

variables:
Test: TestGroup

# ========================================================================
# Template reference
# ========================================================================
extends:
template: template.yml@templates # Template reference
parameters:
Param1:
- "-T test"

当我尝试运行它时出现以下错误:

__built-in-schema.yml (Line: xx, Col: yy): 'variables' is already defined

我觉得因为我们的模板也在使用变量,所以不能在根 yml 文件中使用。

谢谢

最佳答案

你的意思是你想使用变量来帮助你定义模板参数吗?如果是,我们建议您可以使用 ${{variables.VariableName}}

这是我将阶段更改为关键字(扩展)的演示脚本:

resources:
repositories:
- repository: templates
type: git
name: Tech-Talk/template

trigger: none

variables:
- name: Test
value: TestGroup

pool:
vmImage: ubuntu-latest


extends:
template: temp.yaml@templates
parameters:
agent_pool_name: ''
db_resource_path: $(System.DefaultWorkingDirectory)
variable_group: ${{variables.Test}}

这是我的 temp.yaml:

parameters:
- name: 'variable_group'
type: string
default: 'default_variable_group'
- name: agent_pool_name
default: ""
- name: db_resource_path
default: ""


stages:
- stage:
displayName: ${{parameters.db_resource_path}}

variables:
- group: ${{parameters.variable_group}}

jobs:
- job: READ
displayName: Reading Parameters
steps:
- script: |
echo variable_group: ${{parameters.variable_group}}
- powershell: echo "$(ServiceConnection)"

附上新的测试结果:你可以发现变量TestGroup已经传递给临时yaml:

enter image description here

关于azure-pipelines - 在可能从模板扩展的 azure pipelines yml 中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66509894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com