Слияние кода завершено, страница обновится автоматически
trigger:
- main
- exp/*
- vs*
variables:
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- group: AzureDevOps-Artifact-Feeds-Pats
- name: cfsNugetWarnLevel
value: warn
- name: nugetMultiFeedWarnLevel
value: none
- name: NugetSecurityAnalysisWarningLevel
value: none
jobs:
- job: CheckVersionBumpOnReleaseBranches
displayName: "Check Version Bump On Release Branches"
steps:
- powershell: |
$versionsFile = "eng/Versions.props"
$changedFiles = git diff --name-only HEAD HEAD~1
$changedVersionsFile = $changedFiles | Where-Object { $_ -eq $versionsFile }
$isInitialCommit = $false
$isVersionBumped = $false
if ($changedVersionsFile -ne $null) {
$difference = git diff HEAD~1 $versionsFile
$changedContent = $difference -join "%"
# 'DotNetFinalVersionKind' is expected to be added only during the initial setup of the release branch
$initialCommitPattern = '-\s*<VersionPrefix>\d+\.\d+\.\d+<\/VersionPrefix>%.*\+\s*<VersionPrefix>\d+\.\d+\.\d+<\/VersionPrefix><DotNetFinalVersionKind>release<\/DotNetFinalVersionKind>'
$isInitialCommit = $changedContent -match $initialCommitPattern
$pattern = '-\s*<VersionPrefix>\d+\.\d+\.(?<previous>\d+)<\/VersionPrefix>.*%\+\s*<VersionPrefix>\d+\.\d+\.(?<current>\d+)<\/VersionPrefix>'
if (!($isInitialCommit) -and ($changedContent -match $pattern)) {
try {
$previousPatch = [Convert]::ToInt32($Matches.previous)
$currentPatch = [Convert]::ToInt32($Matches.current)
if ($currentPatch -gt $previousPatch) {
$isVersionBumped = $true
}
} catch {
Write-Host "An error occurred during conversion: $_"
}
}
}
if (!($isInitialCommit -or $isVersionBumped)) {
throw "Hello! I noticed that you're targeting one of our servicing branches. You need to increase the revision version number (the last part) of 'VersionPrefix' in eng/Versions.props."
}
condition: startsWith(variables['System.PullRequest.TargetBranch'], 'vs')
displayName: "Check if patch version is bumped up"
- job: IfOnlyDocumentionChanged
displayName: "Check whether Test Results need to be executed"
steps:
- powershell: |
$changedFiles = git diff --name-only HEAD HEAD~1
$changedFiles
$onlyDocChanged = 1
foreach ($file in $changedFiles) {
$isUnderDocumentation = $file -match "^documentation/"
if(!$isUnderDocumentation)
{
$onlyDocChanged = 0
break;
}
}
Write-Host "##vso[task.setvariable variable=onlyDocChanged;isoutput=true]$onlyDocChanged"
name: SetIfOnlyDocumentionChangedVaribale
displayName: Check whether only documentation has been updated
- job: BootstrapMSBuildOnFullFrameworkWindows
dependsOn: IfOnlyDocumentionChanged
variables:
onlyDocChanged: $[ dependencies.IfOnlyDocumentionChanged.outputs['SetIfOnlyDocumentionChangedVaribale.onlyDocChanged'] ]
displayName: "Windows Full"
pool:
vmImage: 'windows-2022'
steps:
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- task: PowerShell@2
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- task: BatchScript@1
displayName: cibuild_bootstrapped_msbuild.cmd
inputs:
filename: 'eng/cibuild_bootstrapped_msbuild.cmd'
arguments: -onlyDocChanged $(onlyDocChanged)
- task: PublishTestResults@2
displayName: Publish .NET Framework Test Results
inputs:
testRunTitle: 'Windows-on-full Full Framework'
testRunner: XUnit
testResultsFiles: 'artifacts/TestResults/Debug/*UnitTests_net472*.xml'
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PublishTestResults@2
displayName: Publish .NET Test Results
inputs:
testRunTitle: 'Windows-on-full .NET'
testRunner: XUnit
testResultsFiles: |
artifacts/TestResults/**/*.xml
!**/*UnitTests_net472*.xml
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$files = Get-ChildItem -Path . -Recurse -Include *.received.*
if ($files.Count -gt 0) {
echo "##vso[task.setvariable variable=publishverify]Yes"
}
displayName: 'Set flag to publish *.received.* files when Verify test fails'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: logs'
inputs:
PathtoPublish: 'artifacts/log/Debug'
ArtifactName: 'FullOnWindows build logs'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: TestResults'
inputs:
PathtoPublish: 'artifacts/TestResults'
ArtifactName: 'FullOnWindows test logs'
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: CopyFiles@2
condition: eq(variables['publishverify'], 'Yes')
displayName: 'Copy Verify *.received.* files to Artifact Staging'
inputs:
contents: '**\*.received.*'
targetFolder: '$(Build.ArtifactStagingDirectory)\Verify'
cleanTargetFolder: true
overWrite: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Verify *.received.* files as Artifacts'
name: 'verifypublish'
condition: eq(variables['publishverify'], 'Yes')
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)\Verify'
ArtifactName: 'Windows-on-full Verify $(System.JobAttempt)'
- job: BootstrapMSBuildOnCoreWindows
displayName: "Windows Core"
dependsOn: IfOnlyDocumentionChanged
variables:
onlyDocChanged: $[ dependencies.IfOnlyDocumentionChanged.outputs['SetIfOnlyDocumentionChangedVaribale.onlyDocChanged'] ]
pool:
vmImage: 'windows-2022'
steps:
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- task: PowerShell@2
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- task: BatchScript@1
displayName: cibuild_bootstrapped_msbuild.cmd
inputs:
filename: 'eng/cibuild_bootstrapped_msbuild.cmd'
arguments: '-msbuildEngine dotnet -onlyDocChanged $(onlyDocChanged)'
env:
MSBUILDUSESERVER: "1"
- task: PublishTestResults@2
displayName: Publish .NET Framework Test Results
inputs:
testRunTitle: 'Windows-on-Core Full Framework'
testRunner: XUnit
testResultsFiles: 'artifacts/TestResults/Debug/*UnitTests_net472*.xml'
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PublishTestResults@2
displayName: Publish .NET Test Results
inputs:
testRunTitle: 'Windows-on-Core .NET'
testRunner: XUnit
testResultsFiles: |
artifacts/TestResults/**/*.xml
!**/*UnitTests_net472*.xml
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: logs'
inputs:
PathtoPublish: 'artifacts/log/Debug'
ArtifactName: 'CoreOnWindows build logs'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: TestResults'
inputs:
PathtoPublish: 'artifacts/TestResults'
ArtifactName: 'CoreOnWindows test logs'
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- job: FullReleaseOnWindows
displayName: "Windows Full Release (no bootstrap)"
dependsOn: IfOnlyDocumentionChanged
variables:
onlyDocChanged: $[ dependencies.IfOnlyDocumentionChanged.outputs['SetIfOnlyDocumentionChangedVaribale.onlyDocChanged'] ]
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: NetCore-Public
demands: ImageOverride -equals windows.vs2022preview.amd64.open
${{ if ne(variables['System.TeamProject'], 'public') }}:
name: VSEngSS-MicroBuild2022-1ES
demands: agent.os -equals Windows_NT
steps:
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- task: PowerShell@2
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- task: BatchScript@1
displayName: cibuild.cmd
inputs:
filename: 'eng/cibuild.cmd'
arguments: '-configuration Release -test'
condition: eq(variables.onlyDocChanged, 0)
- task: BatchScript@1
displayName: cibuild.cmd without test
inputs:
filename: 'eng/cibuild.cmd'
arguments: '-configuration Release'
condition: eq(variables.onlyDocChanged, 1)
- task: PublishTestResults@2
displayName: Publish .NET Framework Test Results
inputs:
testRunTitle: 'Windows-on-full Release Full Framework'
testRunner: XUnit
testResultsFiles: 'artifacts/TestResults/Release/*UnitTests_net472*.xml'
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PublishTestResults@2
displayName: Publish .NET Test Results
inputs:
testRunTitle: 'Windows-on-full Release .NET'
testRunner: XUnit
testResultsFiles: |
artifacts/TestResults/**/*.xml
!**/*UnitTests_net472*.xml
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: logs'
inputs:
PathtoPublish: 'artifacts/Log/Release'
ArtifactName: 'FullOnWindows Release build logs'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: TestResults'
inputs:
PathtoPublish: 'artifacts/TestResults'
ArtifactName: 'FullOnWindows Release test logs'
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- job: CoreBootstrappedOnLinux
displayName: "Linux Core"
dependsOn: IfOnlyDocumentionChanged
variables:
onlyDocChanged: $[ dependencies.IfOnlyDocumentionChanged.outputs['SetIfOnlyDocumentionChangedVaribale.onlyDocChanged'] ]
pool:
vmImage: 'ubuntu-latest'
steps:
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- bash: . 'eng/cibuild_bootstrapped_msbuild.sh' --onlyDocChanged $(onlyDocChanged)
displayName: CI Build
env:
MSBUILDUSESERVER: "1"
- task: PublishTestResults@2
displayName: Publish .NET Test Results
inputs:
testRunTitle: 'Linux .NET'
testRunner: XUnit
testResultsFiles: |
artifacts/TestResults/**/*.xml
!**/*UnitTests_net472*.xml
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$files = Get-ChildItem -Path . -Recurse -Include *.received.*
if ($files.Count -gt 0) {
echo "##vso[task.setvariable variable=publishverify]Yes"
}
displayName: 'Set flag to publish *.received.* files when Verify test fails'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: logs'
inputs:
PathtoPublish: 'artifacts/log/Debug'
ArtifactName: 'CoreOnLinux build logs'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: TestResults'
inputs:
PathtoPublish: 'artifacts/TestResults'
ArtifactName: 'CoreOnLinux test logs'
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: CopyFiles@2
condition: eq(variables['publishverify'], 'Yes')
displayName: 'Copy Verify *.received.* files to Artifact Staging'
inputs:
contents: '**/*.received.*'
targetFolder: '$(Build.ArtifactStagingDirectory)/Verify'
cleanTargetFolder: true
overWrite: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Verify *.received.* files as Artifacts'
name: 'verifypublish'
condition: eq(variables['publishverify'], 'Yes')
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Verify'
ArtifactName: 'Linux Verify $(System.JobAttempt)'
- job: CoreOnMac
displayName: "macOS Core"
dependsOn: IfOnlyDocumentionChanged
variables:
onlyDocChanged: $[ dependencies.IfOnlyDocumentionChanged.outputs['SetIfOnlyDocumentionChangedVaribale.onlyDocChanged'] ]
pool:
vmImage: 'macOS-latest'
steps:
- ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
arguments: $(Build.SourcesDirectory)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- bash: . 'eng/cibuild_bootstrapped_msbuild.sh' --onlyDocChanged $(onlyDocChanged)
displayName: CI Build
env:
MSBUILDUSESERVER: "1"
- task: PublishTestResults@2
displayName: Publish .NET Test Results
inputs:
testRunTitle: 'macOS .NET'
testRunner: XUnit
testResultsFiles: |
artifacts/TestResults/**/*.xml
!**/*UnitTests_net472*.xml
publishRunAttachments: true
mergeTestResults: true
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$files = Get-ChildItem -Path . -Recurse -Include *.received.*
if ($files.Count -gt 0) {
echo "##vso[task.setvariable variable=publishverify]Yes"
}
displayName: 'Set flag to publish *.received.* files when Verify test fails'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: logs'
inputs:
PathtoPublish: 'artifacts/log/Debug'
ArtifactName: 'CoreOnMac build logs'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: TestResults'
inputs:
PathtoPublish: 'artifacts/TestResults'
ArtifactName: 'CoreOnMac test logs'
continueOnError: true
condition: eq(variables.onlyDocChanged, 0)
- task: CopyFiles@2
condition: eq(variables['publishverify'], 'Yes')
displayName: 'Copy Verify *.received.* files to Artifact Staging'
inputs:
contents: '**/*.received.*'
targetFolder: '$(Build.ArtifactStagingDirectory)/Verify'
cleanTargetFolder: true
overWrite: true
- task: PublishBuildArtifacts@1
displayName: 'Publish Verify *.received.* files as Artifacts'
name: 'verifypublish'
condition: eq(variables['publishverify'], 'Yes')
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/Verify'
ArtifactName: 'macOS Verify $(System.JobAttempt)'
- template: /eng/common/templates/jobs/source-build.yml
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )