azure-pipelines - 有条件地将 --dry-run 添加到 Azure Pipelines 中的发布步骤
问题描述
我们的 Azure Pipeline 中有这一步。npm run publish-shell-ui
如果分支是 则运行main
,否则跳过步骤。我想修改此步骤,以便--dry-run
在分支不是main
.
- 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)'
我知道我可以通过添加第二个“Dry-Run Publish”任务来解决这个问题,该任务只会在分支不是时运行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)'
解决方案
我过去使用的东西是用于存储值的变量,这些值根据传递到 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)'
推荐阅读
- django - 创建用户时如何根据当前用户的值设置字段的值
- sql-server - 如何在 mssql 服务器视图中查询访问表
- xml - 当缺少 xml 标记并提供架构时,Databricks-spark-xml 无法将不良记录过滤到不良记录列中
- c - Mac os 终端:终端窗口中的可点击文本(c 可执行文件)
- ios - Appcelerator Titanium iOS - ti.main.js 文件未找到错误
- css - Angular 7 - Autoprefixer 不适用于 CSS Grid
- javascript - 如何将动态高度和宽度设置为 HTML 表格?
- javascript - 如何在 highstock 股票图表中动态更改图表类型?
- docker - 监控 Kubernetes 资源
- swift - `运算符'<'的结果是未使用的`,而实际上它已被使用