如何将Azure DevOps UI流水线任务设置为多选模式?
实现Azure DevOps流水线任务标签多选功能
可以改成多选模式,具体修改步骤如下:
1. 修改主流水线的参数定义
将原有的taskTag参数开启多选配置,默认值改为数组形式:
# Rest of the code - name: taskTag displayName: 'Select Task' type: string default: ['all'] values: - all - prechecks - user_create - group_create - security_set multiple: true # 开启多选功能
2. 修改Ansible模板的参数与脚本
因为多选后taskTag会变成字符串数组,需要适配Ansible的--tags参数格式(逗号分隔):
模板参数部分
将taskTag的类型改为数组,默认值同步调整:
parameters: - name: Path type: string default: '' - name: extraVars type: string default: '' - name: targetDir type: string default: '' - name: taskTag type: array default: ['all']
Bash脚本部分
使用Azure DevOps的join函数将数组转为逗号分隔的字符串:
steps: - task: Bash@3 displayName: 'Playbook' inputs: targetType: 'inline' script: | cd ${{ parameters.targetDir }} ansible-playbook \ ${{ parameters.Path }} \ --extra-vars '{"user_prompt": {"user_input": "${{ parameters.extraVars }}"}}' \ --tags "${{ join(',', parameters.taskTag) }}" \
注意事项
如果同时选择all和其他标签,Ansible会优先执行all标签对应的任务,其他标签会被忽略。建议要么单独选all,要么选择多个具体任务标签的组合。
内容的提问来源于stack exchange,提问作者scrapkowe
相关产品推荐
相关产品推荐

