gpt4 book ai didi

azure - 如何将此重复的 Azure DevOps 步骤拆分为可重用模板

转载 作者:行者123 更新时间:2023-12-05 02:08:13 25 4
gpt4 key购买 nike

我有以下 Azure DevOps 模板,当前已硬编码到某些特定文件。我希望使用循环将其重构为更简单的模板,这样我就不需要复制(和硬编码)特定文件。

[为了简洁起见,使用伪代码]

#tests.yml

steps:

# pre-test steps. This is done once.

- script: install tool1
- script: install tool2
- script: setup path stuff.

# Tests
- script: test project1 |
display codecoverage to console-out
- script: test project 2 |
display codecoverage to console-out

# Post-tests
- script: upload coverage report for project1
- script: upload coverage report for project2
- task: PublishTestResults@2 # publish test results to Azure DevOps.

请注意我在每个项目中是如何做的

  • 测试项目
  • 将代码覆盖结果显示到控制台输出(这样我就可以在这里看到结果)
  • 将结果上传到第三方网站(供其他人查看)

我希望有一种方法可以让我将信息传递到模板中,然后循环遍历输入数据数组。

像这样..

steps:

# pre tests.
...

# tests
foreach project in projects
- script: test project |
display code coverage report
- script: upload report

# post-test
...

这可以在 Azure DevOps 中完成吗?

    -

最佳答案

就个人而言,也许关键字each是您要找的吗?

示例:

azure-pipelines.yml

extends:
template: template.yml
parameters:
buildArgs:
Arg1 : $(arg1-value)
Arg2 : $(arg2-value)

模板.yml

parameters:
- name: buildArgs
type: object
default: []
stages:
- stage: EachLoop
displayName: Run Each extends
jobs:
- job: looping
steps:
- ${{ each arg in parameters.buildArgs }}:
- bash: |
echo ${{ arg.key }}
echo ${{ arg.value }}
echo "##vso[task.setvariable variable=buildOther]${{ arg.value }}"
displayName: ${{ arg.key }}
- bash: |
echo "buildstring=$(buildOther)"
displayName: ECHO-${{ arg.key }}

enter image description here

<小时/>

对于您的场景,只需将 run test/display/upload 步骤放入 template.yml 中。使用 eachparameters 来扩展模板,以便实现循环。

关于azure - 如何将此重复的 Azure DevOps 步骤拆分为可重用模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61081717/

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