72 lines
2.5 KiB
YAML
72 lines
2.5 KiB
YAML
### These steps synchronize new code from product repositories into the VMR (https://github.com/dotnet/dotnet).
|
|
### They initialize the darc CLI and pull the new updates.
|
|
### Changes are applied locally onto the already cloned VMR (located in $vmrPath).
|
|
|
|
parameters:
|
|
- name: vmrBranch
|
|
displayName: dotnet/dotnet branch to use
|
|
type: string
|
|
|
|
- name: targetRef
|
|
displayName: Target revision in dotnet/installer to synchronize
|
|
type: string
|
|
default: $(Build.SourceVersion)
|
|
|
|
- name: vmrPath
|
|
displayName: Path where the dotnet/dotnet is checked out to
|
|
type: string
|
|
default: $(Agent.BuildDirectory)/vmr
|
|
|
|
steps:
|
|
- checkout: self
|
|
displayName: Clone dotnet/installer
|
|
path: installer
|
|
|
|
# This step is needed so that when we get a detached HEAD / shallow clone,
|
|
# we still pull the commit into the temporary installer clone to use it during the sync.
|
|
- script: |
|
|
git branch installer-head
|
|
git rev-parse HEAD
|
|
displayName: Label PR commit
|
|
workingDirectory: $(Agent.BuildDirectory)/installer
|
|
|
|
- script: |
|
|
git checkout -B ${{ parameters.vmrBranch }}
|
|
echo "##vso[task.setvariable variable=vmrBranch]${{ parameters.vmrBranch }}"
|
|
mkdir -p ${{ parameters.vmrPath }}/artifacts/x64/Release
|
|
displayName: Prepare branch ${{ parameters.vmrBranch }}
|
|
workingDirectory: ${{ parameters.vmrPath }}
|
|
|
|
- script: |
|
|
git config --global user.name "dotnet-maestro[bot]"
|
|
git config --global user.email "dotnet-maestro[bot]@users.noreply.github.com"
|
|
displayName: Set git author to dotnet-maestro[bot]
|
|
workingDirectory: ${{ parameters.vmrPath }}
|
|
|
|
- script: |
|
|
echo '**/*' > .artifactignore
|
|
echo '!./*.patch' >> .artifactignore
|
|
displayName: Prepare .artifactignore
|
|
workingDirectory: $(Agent.TempDirectory)
|
|
|
|
- script: >
|
|
./eng/vmr-sync.sh
|
|
--vmr ${{ parameters.vmrPath }}
|
|
--tmp $(Agent.TempDirectory)
|
|
--azdev-pat '$(System.AccessToken)'
|
|
--branch ${{ parameters.vmrBranch }}
|
|
--repository "installer:${{ parameters.targetRef }}"
|
|
--recursive
|
|
--remote "installer:$(pwd)"
|
|
--readme-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/README.template.md
|
|
--tpn-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt
|
|
--debug
|
|
||
|
|
(echo "##vso[task.logissue type=error]Failed to synchronize the VMR" && exit 1)
|
|
displayName: Synchronize dotnet/dotnet
|
|
workingDirectory: $(Agent.BuildDirectory)/installer
|
|
|
|
- publish: $(Agent.TempDirectory)
|
|
artifact: $(System.JobDisplayName)_FailedPatches
|
|
displayName: Upload failed patches
|
|
condition: failed()
|