Azure DevOps Pipelines 实战
Azure DevOps Pipeline 为支持持续交付提供了强大而丰富的能力。尽管绝大部分的用法和注意事项都在文档中,但阅读详尽的文档也是一种负担。为此,本文接续《Azure Pipelines 快速入门》一文,记录实战中的技巧和注意事项。
在管道定义中获取分支名称 🔗
当需要获取触发构建的代码库分支时,可使用预定义的变量 Build.SourceBranch
或者 Build.SourceBranchName
。大致上,前者代表当前引用的全名(比如 refs/heads/main
),而后者代表分支的名字(main
)。具体可在 “ Build variables (DevOps Services)” 一节中查看说明和示例。
值得注意的是:
- 在 build number format 中使用
Build.SourceBranch
时,/
会被替换为_
。 Build.SourceBranchName
代表的其实不是严格意义上的分支名称。对于 Git 仓库,它其实返回的是当前引用名称(ref
)以/
分割后的最后一部分。因此如果分支名称中包含了/
,那么要特别注意。比如当前分支名称为features/foo
,它代表的其实是foo
,而不是features/foo
。这类似于在 BASH 中使用“参数展开”来获取文件名:sourceBranch="/refs/heads/features/foo" echo "${sourceBranch##*/}" => foo
变量的命名和引用 🔗
根据 《Variable naming restrictions 》,变量名中可使用字母、数字、下划线(_
)和点号(.
)。但应该避免使用系统保留的前缀。
在管道定义中,可使用 ${{ variables.var }}
引用变量的值;对于包含点号的变量名,可使用中括号引用,比如 ${{ variables['var.name'] }}
。
加载中...