我目前正在使用 Azure DevOps,并且我有一个管道作业,我希望在其中包含手动干预。我目前正在“库”-->“变量组”中列出我的电子邮件:
Variable group name: MyVariableGroup
Variables Names: notifyEmails
Value: [email protected],[email protected]
parameters:
- name: emails
type: string
jobs:
- job: PromptUserInput
displayName: 'Manual Validation'
pool: server
timeoutInMinutes: 180
steps:
- task: ManualValidation@0
timeoutInMinutes: 120
inputs:
notifyUsers: ${{ parameters.emails }}
instructions: 'Please review'
onTimeout: 'reject'
displayName: 'Manual Validation Step'
问题是,当我仅使用一封电子邮件[电子邮件受保护]时,会发送一封电子邮件,但如果我包含多于一封电子邮件,则不会发送任何电子邮件。如何确保notifyEmails 中的每个人都收到电子邮件?
如何向多个收件人发送手动验证电子邮件
要将手动验证电子邮件发送给多个收件人,您需要使用以下格式:
- task: ManualValidation@0
timeoutInMinutes: 120
inputs:
notifyUsers: |
[email protected]
[email protected]
instructions: 'Please review'
onTimeout: 'reject'
displayName: 'Manual Validation Step'
每行代表一个电子邮件地址。所以需要使用多行变量。
使用变量组设置变量时,仅支持一行变量值。所以不能满足你的要求。
要解决此问题,您可以在 YAML 管道中定义多行变量。
例如:
variables:
- name: emails
value: |
[email protected]
[email protected]
jobs:
- job: PromptUserInput
displayName: 'Manual Validation'
pool: server
timeoutInMinutes: 180
steps:
- task: ManualValidation@0
timeoutInMinutes: 120
inputs:
notifyUsers: |
$(emails)
instructions: 'Please review'
onTimeout: 'reject'
displayName: 'Manual Validation Step'
或者您可以使用 YAML Pipeline 中的对象类型参数来设置电子邮件。
例如:
parameters:
- name: emails
type: object
jobs:
- job: PromptUserInput
displayName: 'Manual Validation'
pool: server
timeoutInMinutes: 180
steps:
- task: ManualValidation@0
timeoutInMinutes: 120
inputs:
notifyUsers: |
${{parameters.emails}}
instructions: 'Please review'
onTimeout: 'reject'
displayName: 'Manual Validation Step'
当您运行Pipeline时,您可以输入具有多行值的电子邮件。
例如: