我们在Azure管道中有这个步骤。如果分支为main,则运行npm run publish-shell-ui,否则跳过该步骤。我想修改此步骤,以便在分支不是main的情况下添加--dry-run选项。
- task: Npm@1
displayName: "Publish"
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
inputs:
command: 'custom'
customCommand: 'run publish-shell-ui'
workingDir: '$(BuildRoot)'我知道我可以通过添加第二个“预演发布”任务来解决这个问题,这个任务只在分支不是main时运行,但我在问是否可以创建一个可以处理这两种情况的任务,因为我怀疑这样的解决方案会更容易阅读。
- task: Npm@1
displayName: "Dry-Run Publish"
condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/main'))
inputs:
command: 'custom'
customCommand: 'run publish-shell-ui --dry-run'
workingDir: '$(BuildRoot)'发布于 2021-02-13 00:41:02
我过去使用的是变量来存储值,这些值根据传递到YAML管道/模板的参数进行更改。
我相信这样的东西会实现你正在寻找的东西:
- script: |
branch='$(Build.SourceBranch)'
if [[ $branch == *"/main"* ]]
then
echo '##vso[task.setvariable variable=PublishCommand]run publish-shell-ui
else
echo '##vso[task.setvariable variable=PublishCommand]run publish-shell-ui --dry-run
fi
displayName: "Set Publish Command"
condition: ne(variables['Build.SourceBranch'], 'refs/heads/main')
- task: Npm@1
displayName: "Publish"
condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/main'))
inputs:
command: 'custom'
customCommand: $(PublishCommand)
workingDir: '$(BuildRoot)'https://stackoverflow.com/questions/66161525
复制相似问题