aspnetcore/.azure/pipelines/azure-pipelines-mirror-with...

72 строки
2.7 KiB
YAML

# Configure which branches trigger builds
trigger:
batch: true
branches:
include:
- internal/release/8.0
parameters:
# Run the pipeline manually (usually disallowed)
- name: manualRun
default: false
displayName: Are you sure you want to run this pipeline manually?
type: boolean
variables:
- group: Mirror-Credentials
- template: /eng/common/templates/variables/pool-providers.yml
# Merges code from one AzDO branch into another
jobs:
- ${{ if and(contains(variables['Build.SourceBranch'], 'internal'), or(eq(variables['Build.Reason'], 'BatchedCI'), eq(parameters.manualRun, 'true'))) }}:
- template: /eng/common/templates/jobs/jobs.yml
parameters:
enableTelemetry: true
helixRepo: dotnet/aspnetcore
jobs:
- job: Merge_Azure_DevOps_Branches
enableSBOM: false
pool:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals 1es-windows-2019
variables:
- name: WorkingDirectoryName
value: repo-dir
- name: AzdoRepo
value: dotnet-aspnetcore
steps:
- powershell: |
$branch = "$(Build.SourceBranch)".Replace("refs/heads/", "");
$suffix = "-nonstable"
Write-Host "##vso[task.setvariable variable=BranchToMirror]$branch"
Write-Host "##vso[task.setvariable variable=TargetBranchName]$branch$suffix"
displayName: Calculate Mirrored Branch Names
- script: |
git clone https://dn-bot:$(dn-bot-dnceng-build-rw-code-rw)@dev.azure.com/dnceng/internal/_git/$(AzdoRepo) $(WorkingDirectoryName) --recursive --no-tags --branch $(TargetBranchName)
displayName: Clone AzDO repo
- script: |
git -c user.email="dotnet-bot@microsoft.com" -c user.name="dotnet-bot" merge origin/$(BranchToMirror) -m "Merge in '$(BranchToMirror)' changes"
displayName: Merge head branch to target branch
workingDirectory: $(WorkingDirectoryName)
- script: |
git push origin $(TargetBranchName)
displayName: Push changes to Azure DevOps repo
workingDirectory: $(WorkingDirectoryName)
- task: PowerShell@1
displayName: Broadcast target, branch, commit in metadata
continueOnError: true
condition: always()
inputs:
scriptType: inlineScript
arguments: '$(BranchToMirror)'
workingDirectory: $(WorkingDirectoryName)
inlineScript: |
param([string]$branch)
$commit = (git rev-parse HEAD).Substring(0, 7)
$target = "$branch".Replace('/', ' ')
Write-Host "##vso[build.updatebuildnumber]$target $commit"
Write-Host "##vso[build.addbuildtag]$target"