gpt4 book ai didi

azure 模板不允许 jobs 关键字

转载 作者:行者123 更新时间:2023-12-03 05:28:00 25 4
gpt4 key购买 nike

请告诉我,因为这是我真正深入研究 Azure 管道的第二周,但是..我看到了一个示例,我可以在其中创建一个包含 jobs: 部分的模板..

https://learn.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops#job-stage-and-step-templates-with-parameters

这样我就可以正确地分割模板中的内容..但是当我这样做时它会提示

yaml 片段

# File: template_process_folder.yaml

parameters:
- name: folder_name
default: YOURFOLDER

jobs:
- job: ProcessFolder
pool:
vmImage: ubuntu-latest
displayName: "Processing Folder"
steps:
- bash: |
blah blah blah

错误

error line X, Col 1... Unexpected value 'jobs'

有人知道我做错了什么吗?我已经尝试过它的各个阶段..只有一份工作..等等..唯一对我有用的是仅在模板中的简单步骤

编辑:这可能是我调用模板的方式吗?有没有办法在工作级别仍然循环这些数组值?到目前为止我还没有在任何文档中看到这一点

我如何调用模板

- stage: Build
displayName: "Build"
jobs:
- job: "Execute_Tests"
displayName: "Run Tests"
steps:
- ${{each p in parameters.mylistoffolders}}:
- template: template_process_folder.yaml
parameters:
folder_name: ${{p}}

我认为这就是问题所在..现在正在从steps区域中删除模板调用并将其成功提升到jobs区域..但现在我的错误提示作业名称必须是唯一的..我想只需传递文件夹名称,但它包含不允许的 - ..现在尝试执行替换调用但不成功

新模板作业条目

jobs:
- job: ProcessFolder_${{ replace(${{parameters.folder_name}}, '-', '_') }}

我收到错误

unclosed function: 'replace'. Located at position 1 within expression replace(${{paramet....

最佳答案

在我这边测试,我可以看到相同的错误未关闭的函数:“替换”。位于表达式中的位置 1:replace(${{parameters.folder_name. 看来这个表达式在这里不起作用。

作为解决方法,您可以使用关键字 displayname,这样它就可以使用 displayName: ProcessFolder_${{parameters.folder_name}} 解决作业名称必须唯一的错误.

顺便说一句,以下 yaml 供您引用。

template_process_folder.yml

# File: template_process_folder.yml

parameters:
- name: folder_name
type: string
default: YOURFOLDER

jobs:
- job:
pool:
vmImage: ubuntu-latest
displayName: ProcessFolder_${{parameters.folder_name}}
steps:
- bash: |
echo ${{ parameters.folder_name }}

template_stage.yml

# File: template_stage.yml

parameters:
- name: mylistoffolders # defaults for any parameters that aren't specified
type: object
default:
- one
- two

stages:
- stage: Build
displayName: "Build"
jobs:
- ${{each p in parameters.mylistoffolders}}:
- template: template_process_folder.yml
parameters:
folder_name: ${{p}}

azure-pipelines.yml

pool:
vmImage: ubuntu-latest

stages:
- template: template_stage.yml
parameters:
mylistoffolders:
- test1-hi
- test2-bye

关于 azure 模板不允许 jobs 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67302681/

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