Oct 28 2023
03:13 PM
- last edited on
Mar 05 2024
04:58 PM
by
TechCommunityAP
Oct 28 2023
03:13 PM
- last edited on
Mar 05 2024
04:58 PM
by
TechCommunityAP
According to this documentation, the "Resources:Repositories:Ref" property supports template expressions, so that one can parameterize the ref property as follows:
For our use case, this is so that we can check out the same branch across dependency repos in the pipeline:
or...
Using ref: ${{ variables['Build.SourceBranch'] }} works great when the pipeline is triggered manually through the ADO GUI: if the develop branch is selected, the dependency repos also check out the develop branch and likewise for release.
The problem occurs with PR build triggers, since ${{ variables['Build.SourceBranch'] }} resolves to refs/pull/1/merge, rather than develop or release.
The dependency repos, naturally, do not have a corresponding refs/pull/1/merge branch, but even if they did, we want ${{ variables['Build.SourceBranch'] }} to resolve to the PR's target branch (either develop or release, so that the dependency repo's develop or release branch will also be checked out).
So, we have tried many ways to conditionally set the value for ref, for example, using a variable:
Oct 29 2023 12:52 PM - edited Oct 29 2023 12:53 PM
Hi @blashmet ,
Thanks for your great question. I see in your example that in the Manual case your reference SourceBranchName and in the PR case your reference targetBranch without the Name suffix in the variable name. In the documentation on system variables it describes how the `System.PullRequest.targetBranchName` variable contains the branch name and the `System.PullRequest.TargetBranch` variable contains the full ref. This behaviour is the same for the `Build.SourceBranch` and `Build.SourceBranchName` variables. Where again the first contains the full ref and the other just the branch name.
So in your case I would try to use `System.PullRequest.targetBranchName` instead of `System.PullRequest.targetBranch`. Hope that helps in solving your issue.
See Predefined variables - Azure Pipelines | Microsoft Learn for details on the variations
Oct 29 2023 07:56 PM
Oct 30 2023 11:43 AM