Azure 管道只读参数

Azure pipelines read only parameters

提问人:Sunflame 提问时间:11/16/2023 更新时间:11/16/2023 访问量:89

问:

我想通过将管道设置为只读来保护管道的参数。 我想要实现的是在 Azure 管道中有一个循环,但这不应该从外部更改,因此每次都保留阶段数。在当前实现中,当有人想要启动管道时,可以删除或修改参数,这可能会导致运行过程中的不一致。

一些相关代码:

parameters:
  - name: stage
    type: object
    default:
      - name: dev
      - name: test
      - name: prod
stages:
  - template: azure_pipeline_template.yml
    parameters:
      stage: ${{ parameters.stage }}

为简单起见,我设置了三个参数 dev、test、prod,并且我希望它们始终运行,并且当您从 ADO 点击运行管道时,无法手动删除它们。

有没有办法保护参数或在 Azure 管道中使用“硬编码”值进行循环?

azure-devops azure-pipelines

评论

0赞 wade zhou - MSFT 11/20/2023
嗨,@Sunflame,我可以知道是否有任何更新吗?请在下面查看我的回答,如果您有任何疑问,请告诉我,谢谢。

答:

2赞 wade zhou - MSFT 11/16/2023 #1

Parameter用于根据下面的文档动态选择阶段,不支持将其设置为只读。

enter image description here

运行管道时可以对其进行编辑:It can be edited when you run the pipeline:

enter image description here

为简单起见,我设置了三个参数 dev、test、prod,并且我希望它们始终运行,并且当您从 ADO 点击运行管道时,无法手动删除它们。

您只需在 yaml 中逐个添加阶段,即可执行所有步骤。

stages:
- template: azure_pipeline_template.yml  # Template reference
  parameters:
    stage: dev

- template: azure_pipeline_template.yml  # Template reference
  parameters:
    stage: test

- template: azure_pipeline_template.yml  # Template reference
  parameters:
    stage: prod

如果你想使用循环,你可以改用变量:

variables:
  - name: stage
    value: dev, test, prod

stages:
- ${{ each stage in split(variables.stage, ', ') }}:
  - template: azure_pipeline_template.yml  # Template reference
    parameters:
      stage: ${{ stage }}

azure_pipeline_template.yml:

parameters:
- name: 'stage'  # defaults for any parameters that aren't specified
  type: string

stages:
- stage: ${{ parameters.stage }}
  jobs:
  - job: Build
    steps:
    - script: echo ${{ parameters.stage }}

enter image description here

评论

0赞 wade zhou - MSFT 11/22/2023
@Sunflame,我可以知道是否有任何更新吗?如果您有任何疑问,请告诉我。谢谢。