1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- parameters:
- - name: Packages
- type: object
- default: {}
- - name: LinuxImage
- type: string
- default: "ubuntu-latest"
- - name: DotNetSdkVersion
- type: string
- default: 3.1.100
- jobs:
- - job: CompatibilityCheck
- displayName: Compatibility Check
- pool:
- vmImage: "${{ parameters.LinuxImage }}"
- # only execute for pull requests
- condition: and(succeeded(), variables['System.PullRequest.PullRequestNumber'])
- strategy:
- matrix:
- ${{ each Package in parameters.Packages }}:
- ${{ Package.key }}:
- NugetPackageName: ${{ Package.value.NugetPackageName }}
- AssemblyFileName: ${{ Package.value.AssemblyFileName }}
- maxParallel: 2
- dependsOn: Build
- steps:
- - checkout: none
- - task: UseDotNet@2
- displayName: "Update DotNet"
- inputs:
- packageType: sdk
- version: ${{ parameters.DotNetSdkVersion }}
- - task: DotNetCoreCLI@2
- displayName: 'Install ABI CompatibilityChecker tool'
- inputs:
- command: custom
- custom: tool
- arguments: 'update compatibilitychecker -g'
- - task: DownloadPipelineArtifact@2
- displayName: "Download New Assembly Build Artifact"
- inputs:
- source: "current"
- artifact: "$(NugetPackageName)"
- path: "$(System.ArtifactsDirectory)/new-artifacts"
- runVersion: "latest"
- - task: CopyFiles@2
- displayName: "Copy New Assembly Build Artifact"
- inputs:
- sourceFolder: $(System.ArtifactsDirectory)/new-artifacts
- contents: "**/*.dll"
- targetFolder: $(System.ArtifactsDirectory)/new-release
- cleanTargetFolder: true
- overWrite: true
- flattenFolders: true
- - task: DownloadPipelineArtifact@2
- displayName: "Download Reference Assembly Build Artifact"
- inputs:
- source: "specific"
- artifact: "$(NugetPackageName)"
- path: "$(System.ArtifactsDirectory)/current-artifacts"
- project: "$(System.TeamProjectId)"
- pipeline: "$(System.DefinitionId)"
- runVersion: "latestFromBranch"
- runBranch: "refs/heads/$(System.PullRequest.TargetBranch)"
- - task: CopyFiles@2
- displayName: "Copy Reference Assembly Build Artifact"
- inputs:
- sourceFolder: $(System.ArtifactsDirectory)/current-artifacts
- contents: "**/*.dll"
- targetFolder: $(System.ArtifactsDirectory)/current-release
- cleanTargetFolder: true
- overWrite: true
- flattenFolders: true
- # The `--warnings-only` switch will swallow the return code and not emit any errors.
- - task: DotNetCoreCLI@2
- displayName: 'Execute ABI Compatibility Check Tool'
- inputs:
- command: custom
- custom: compat
- arguments: 'current-release/$(AssemblyFileName) new-release/$(AssemblyFileName) --azure-pipelines --warnings-only'
- workingDirectory: $(System.ArtifactsDirectory)
|