trigger: none
pr:
  branches:
    include:
    - main
    - release/*
    exclude:
    - release/*.0.2xx
    - release/*.0.3xx
    - release/*.0.4xx

parameters:
- name: vmrBranch
  displayName: dotnet/dotnet branch to push to
  type: string
  default: ' '

- name: disableVmrBuild
  displayName: Skip source-building the VMR
  type: boolean
  default: false

variables:
- ${{ if ne(parameters.vmrBranch, ' ') }}:
  - name: VmrBranch
    value: ${{ replace(parameters.vmrBranch, ' ', '') }}
- ${{ else }}:
  - name: VmrBranch
    value: ${{ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}

resources:
  repositories:
  - repository: vmr
    type: github
    name: dotnet/dotnet
    endpoint: dotnet
    ref: ${{ variables.VmrBranch }}

stages:
# You can temporarily disable the VMR Build stage by setting the disableVmrBuild variable
- ${{ if not(parameters.disableVmrBuild) }}:
  - template: templates/stages/vmr-build.yml
    parameters:
      vmrBranch: ${{ variables.VmrBranch }}
      isBuiltFromVmr: false

# In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate
# that the PR can be merged and later synchronized into the VMR without problems.
- ${{ else }}:
  - stage: Synchronize_VMR
    displayName: Synchronize VMR
    dependsOn: []
    jobs:
    - template: templates/jobs/vmr-synchronization.yml
      parameters:
        vmrBranch: ${{ variables.VmrBranch }}
        noPush: true