是否可以在Azure Repos Git中动态设置源?

时间:2019-10-02 10:26:13

标签: azure-devops azure-pipelines azure-pipelines-build-task azure-repos

我正在寻找一种解决方案,以动态选择要在Azure管道中构建的分支。我有Azure Repos Git,可以在其中选择项目,存储库和默认分支。我希望能够基于变量选择分支。

我现在正在尝试使用Command Line任务并触发git checkout命令(例如branch是一个变量):

git checkout $(branch)

我无法确认它是否正常工作我确认它可以工作,但是我觉得有一个更好的选择,那就是签出默认分支,然后用命令行切换分支。

1 个答案:

答案 0 :(得分:1)

更新:

如果要使用单个管道可以为不同的分支构建不同的分支(版本分支),则只需在分支过滤器的触发器中指定它们即可。这不会建立所有分支。

您在构建定义中选择的分支只是手动对新构建进行排队时使用的默认分支。 OTOH构建触发器确定要下载的分支,例如如果构建是由分支开发上的git push触发的,则这是一个已签出并构建的。看一下此链接:Get the sources from the branch that triggered the build in Team Services

此外,您可以禁用默认的获取源代码步骤。然后使用您自己的powershell脚本和git命令手动获取源代码(正是您想要的)并签出分支,最后根据您的变量进行构建。


  

假设您正在选择默认分支。 这并不意味着   这是该构建定义可以构建的唯一分支。

     

您可以选择要监视CI的分支(在“触发器”标签上,   您可以添加多个分支过滤器来代表您想要的分支   以建立提交),相应的分支将被检出   当触发构建时。您也可以选择其他分支   手动排队构建时。

     

源链接:Get Sources from multiple branches

如果要如下动态选择 default branch ,则此功能目前不可用。

enter image description here

  

这是您手动设置为默认的分支   排队这个构建。如果您为构建设置了计划的触发器,则此   是您的版本将从中获取最新资源的分支。

     

触发构建时,默认分支不起作用   通过持续集成(CI)。通常,您将其设置为   与存储库的默认分支相同(例如,   “大师”)。

此处有一个相关的用户声音:When triggering a build, use the same branch as the trigger build.您可以投票支持并跟踪该过程。