Permalink
Cannot retrieve contributors at this time
396 lines (353 sloc)
14.4 KB
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
roslyn/azure-pipelines.yml
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Branches that trigger a build on commit | |
trigger: | |
- main | |
- main-vs-deps | |
- release/* | |
- features/* | |
- demos/* | |
# Branches that trigger builds on PR | |
pr: | |
branches: | |
include: | |
- main | |
- main-vs-deps | |
- release/* | |
- features/* | |
- demos/* | |
paths: | |
exclude: | |
- docs/* | |
- eng/config/PublishData.json | |
- src/Features/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework/README.md | |
- .vscode/* | |
- .github/* | |
- .devcontainer/* | |
- .git-blame-ignore-revs | |
- .vsconfig | |
- CODE-OF-CONDUCT.md | |
- CONTRIBUTING.md | |
- README.md | |
stages: | |
- stage: Windows_Debug_Build | |
dependsOn: [] | |
jobs: | |
- template: eng/pipelines/build-windows-job.yml | |
parameters: | |
jobName: Build_Windows_Debug | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
queueName: windows.vs2022preview.amd64.open | |
restoreArguments: -msbuildEngine dotnet /p:UsingToolVSSDK=false /p:GenerateSatelliteAssemblies=false | |
buildArguments: -msbuildEngine dotnet /p:UsingToolVSSDK=false /p:GenerateSatelliteAssemblies=false /p:PublishReadyToRun=false | |
- stage: Windows_Release_Build | |
dependsOn: [] | |
jobs: | |
- template: eng/pipelines/build-windows-job.yml | |
parameters: | |
jobName: Build_Windows_Release | |
testArtifactName: Transport_Artifacts_Windows_Release | |
configuration: Release | |
queueName: windows.vs2022preview.amd64.open | |
restoreArguments: -msbuildEngine dotnet /p:UsingToolVSSDK=false /p:GenerateSatelliteAssemblies=false | |
buildArguments: -msbuildEngine dotnet /p:UsingToolVSSDK=false /p:GenerateSatelliteAssemblies=false /p:PublishReadyToRun=false | |
- stage: Unix_Build | |
dependsOn: [] | |
jobs: | |
- template: eng/pipelines/build-unix-job.yml | |
parameters: | |
jobName: Build_Unix_Debug | |
testArtifactName: Transport_Artifacts_Unix_Debug | |
configuration: Debug | |
queueName: Build.Ubuntu.1804.Amd64.Open | |
- stage: Source_Build | |
dependsOn: [] | |
jobs: | |
# Like template `eng/common/templates/jobs/source-build.yml` | |
- job: Source_Build_Managed | |
displayName: Source-Build (Managed) | |
container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8 | |
pool: | |
${{ if eq(variables['System.TeamProject'], 'public') }}: | |
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')] | |
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open | |
${{ if eq(variables['System.TeamProject'], 'internal') }}: | |
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')] | |
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 | |
workspace: | |
clean: all | |
steps: | |
- template: /eng/common/templates/steps/source-build.yml | |
parameters: | |
platform: | |
name: 'Managed' | |
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8' | |
- stage: Windows_Debug_Desktop | |
dependsOn: Windows_Debug_Build | |
jobs: | |
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows Desktop Debug 32' | |
jobName: Test_Windows_Desktop_Debug_32 | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
testArguments: -testDesktop -testArch x86 | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows Desktop Debug 64' | |
jobName: Test_Windows_Desktop_Debug_64 | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
testArguments: -testDesktop -testArch x64 | |
- stage: Windows_Release_Desktop | |
dependsOn: Windows_Release_Build | |
jobs: | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows Desktop Release 32' | |
jobName: Test_Windows_Desktop_Release_32 | |
testArtifactName: Transport_Artifacts_Windows_Release | |
configuration: Release | |
testArguments: -testDesktop -testArch x86 | |
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows Desktop Release 64' | |
jobName: Test_Windows_Desktop_Release_64 | |
testArtifactName: Transport_Artifacts_Windows_Release | |
configuration: Release | |
testArguments: -testDesktop -testArch x64 | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows Desktop Spanish Release 64' | |
jobName: Test_Windows_Desktop_Spanish_Release_64 | |
testArtifactName: Transport_Artifacts_Windows_Release | |
configuration: Release | |
testArguments: -testDesktop -testArch x64 -helixQueueName Windows.10.Amd64.Server2022.ES.Open | |
- stage: Windows_Debug_CoreClr | |
dependsOn: Windows_Debug_Build | |
jobs: | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows CoreClr Debug' | |
jobName: Test_Windows_CoreClr_Debug | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
testArguments: -testCoreClr | |
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: | |
- template: eng/pipelines/test-windows-job-single-machine.yml | |
parameters: | |
testRunName: 'Test Windows CoreClr Debug Single Machine' | |
jobName: Test_Windows_CoreClr_Debug_Single_Machine | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
testArguments: -testCoreClr | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows CoreCLR IOperation Debug' | |
jobName: Test_Windows_CoreClr_IOperation_Debug | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
testArguments: -testCoreClr -testIOperation -testCompilerOnly | |
# This leg runs almost all the compiler tests supported on CoreCLR, but | |
# with additional validation for used assemblies and GetEmitDiagnostics | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows CoreCLR UsedAssemblies Debug' | |
jobName: Test_Windows_CoreClr_UsedAssemblies_Debug | |
testArtifactName: Transport_Artifacts_Windows_Debug | |
configuration: Debug | |
testArguments: -testCoreClr -testUsedAssemblies -testCompilerOnly | |
- stage: Windows_Release_CoreClr | |
dependsOn: Windows_Release_Build | |
jobs: | |
- template: eng/pipelines/test-windows-job.yml | |
parameters: | |
testRunName: 'Test Windows CoreClr Release' | |
jobName: Test_Windows_CoreClr_Release | |
testArtifactName: Transport_Artifacts_Windows_Release | |
configuration: Release | |
testArguments: -testCoreClr | |
- stage: Unix_Debug_CoreClr | |
dependsOn: Unix_Build | |
jobs: | |
- template: eng/pipelines/test-unix-job.yml | |
parameters: | |
testRunName: 'Test Linux Debug' | |
jobName: Test_Linux_Debug | |
testArtifactName: Transport_Artifacts_Unix_Debug | |
configuration: Debug | |
testArguments: --testCoreClr --helixQueueName Ubuntu.1804.Amd64.Open | |
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: | |
- template: eng/pipelines/test-unix-job-single-machine.yml | |
parameters: | |
testRunName: 'Test Linux Debug Single Machine' | |
jobName: Test_Linux_Debug_Single_Machine | |
testArtifactName: Transport_Artifacts_Unix_Debug | |
configuration: Debug | |
testArguments: --testCoreClr | |
queueName: Build.Ubuntu.1804.Amd64.Open | |
- template: eng/pipelines/test-unix-job.yml | |
parameters: | |
testRunName: 'Test macOS Debug' | |
jobName: Test_macOS_Debug | |
testArtifactName: Transport_Artifacts_Unix_Debug | |
configuration: Debug | |
testArguments: --testCoreClr --helixQueueName OSX.1015.Amd64.Open | |
- stage: Correctness | |
dependsOn: [] | |
jobs: | |
- template: eng/pipelines/evaluate-changed-files.yml | |
parameters: | |
jobName: Determine_Changes | |
vmImageName: ubuntu-latest | |
paths: | |
- subset: compilers | |
include: | |
- src/Compilers/* | |
- src/Dependencies/* | |
- src/NuGet/Microsoft.Net.Compilers.Toolset/* | |
- eng/* | |
- src/Tools/Source/CompilerGeneratorTools/* | |
- job: Correctness_Build_Artifacts | |
dependsOn: Determine_Changes | |
pool: | |
name: NetCore-Public | |
demands: ImageOverride -equals windows.vs2022preview.amd64.open | |
timeoutInMinutes: 90 | |
variables: | |
- template: eng/pipelines/variables-build.yml | |
parameters: | |
configuration: Release | |
- name: compilerChange | |
value: $[dependencies.Determine_Changes.outputs['SetPathVars_compilers.containsChange']] | |
steps: | |
- template: eng/pipelines/checkout-windows-task.yml | |
- task: PowerShell@2 | |
displayName: Restore | |
inputs: | |
filePath: eng/build.ps1 | |
arguments: -configuration Release -prepareMachine -ci -restore -binaryLogName Restore.binlog | |
- task: PowerShell@2 | |
displayName: Build | |
inputs: | |
filePath: eng/build.ps1 | |
arguments: -configuration Release -prepareMachine -ci -build -pack -publish -sign -binaryLogName Build.binlog | |
- script: $(Build.SourcesDirectory)\artifacts\bin\BuildBoss\Release\net472\BuildBoss.exe -r "$(Build.SourcesDirectory)/" -c Release -p Roslyn.sln | |
displayName: Validate Build Artifacts | |
- script: eng/validate-rules-missing-documentation.cmd -ci | |
displayName: Validate rules missing documentation | |
- task: PowerShell@2 | |
displayName: Generate Syntax Files | |
inputs: | |
filePath: eng/generate-compiler-code.ps1 | |
arguments: -test -configuration Release | |
condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['compilerChange'], 'true')) | |
- script: $(Build.SourcesDirectory)\.dotnet\dotnet.exe tool run dotnet-format whitespace $(Build.SourcesDirectory)\src --folder --include-generated --include $(Build.SourcesDirectory)\src\Compilers\CSharp\Portable\Generated\ $(Build.SourcesDirectory)\src\Compilers\VisualBasic\Portable\Generated\ $(Build.SourcesDirectory)\src\ExpressionEvaluator\VisualBasic\Source\ResultProvider\Generated\ --verify-no-changes | |
displayName: Validate Generated Syntax Files | |
condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['compilerChange'], 'true')) | |
- template: eng/pipelines/publish-logs.yml | |
parameters: | |
jobName: Correctness_Build_Artifacts | |
configuration: Release | |
- job: Correctness_Determinism | |
dependsOn: Determine_Changes | |
condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(dependencies.Determine_Changes.outputs['SetPathVars_compilers.containsChange'], 'true')) | |
pool: | |
name: NetCore-Public | |
demands: ImageOverride -equals windows.vs2022preview.amd64.open | |
timeoutInMinutes: 90 | |
variables: | |
- template: eng/pipelines/variables-build.yml | |
parameters: | |
configuration: Debug | |
steps: | |
- template: eng/pipelines/checkout-windows-task.yml | |
- script: eng/test-determinism.cmd -configuration Debug | |
displayName: Build - Validate determinism | |
- template: eng/pipelines/publish-logs.yml | |
parameters: | |
jobName: Correctness_Determinism | |
configuration: Debug | |
- job: Correctness_Bootstrap_Build_Default | |
dependsOn: Determine_Changes | |
condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(dependencies.Determine_Changes.outputs['SetPathVars_compilers.containsChange'], 'true')) | |
pool: | |
name: NetCore-Public | |
demands: ImageOverride -equals windows.vs2022preview.amd64.open | |
timeoutInMinutes: 90 | |
variables: | |
- template: eng/pipelines/variables-build.yml | |
parameters: | |
configuration: Release | |
steps: | |
- template: eng/pipelines/build-bootstrap.yml | |
parameters: | |
bootstrapToolset: AnyCpu | |
- job: Correctness_Bootstrap_Build_Framework | |
dependsOn: Determine_Changes | |
condition: ne(variables['Build.Reason'], 'Pull Request') | |
pool: | |
name: NetCore-Public | |
demands: ImageOverride -equals windows.vs2022preview.amd64.open | |
timeoutInMinutes: 90 | |
variables: | |
- template: eng/pipelines/variables-build.yml | |
parameters: | |
configuration: Release | |
steps: | |
- template: eng/pipelines/build-bootstrap.yml | |
parameters: | |
bootstrapToolset: Framework | |
- job: Correctness_TodoCheck | |
pool: | |
vmImage: ubuntu-20.04 | |
timeoutInMinutes: 10 | |
steps: | |
- template: eng/pipelines/checkout-unix-task.yml | |
- pwsh: eng/todo-check.ps1 | |
displayName: Validate TODO/PROTOTYPE comments are not present | |
- job: Correctness_Rebuild | |
dependsOn: Determine_Changes | |
condition: or(ne(variables['Build.Reason'], 'PullRequest'), eq(dependencies.Determine_Changes.outputs['SetPathVars_compilers.containsChange'], 'true')) | |
pool: | |
name: NetCore-Public | |
demands: ImageOverride -equals windows.vs2022preview.amd64.open | |
timeoutInMinutes: 90 | |
variables: | |
- template: eng/pipelines/variables-build.yml | |
parameters: | |
configuration: Release | |
steps: | |
- template: eng/pipelines/checkout-windows-task.yml | |
- powershell: .\eng\test-rebuild.ps1 -ci -configuration Release | |
displayName: Run BuildValidator | |
- task: PublishBuildArtifacts@1 | |
displayName: Publish BuildValidator debug outputs | |
inputs: | |
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/BuildValidator' | |
ArtifactName: 'BuildValidator_DebugOut' | |
publishLocation: Container | |
continueOnError: true | |
condition: failed() | |
- template: eng/pipelines/publish-logs.yml | |
parameters: | |
jobName: Correctness_Rebuild | |
configuration: Release | |
- job: Correctness_Analyzers | |
pool: | |
name: NetCore-Public | |
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open | |
timeoutInMinutes: 35 | |
variables: | |
- template: eng/pipelines/variables-build.yml | |
parameters: | |
configuration: Debug | |
steps: | |
- template: eng/pipelines/checkout-unix-task.yml | |
- script: ./eng/build.sh --solution Roslyn.sln --restore --build --configuration Debug --prepareMachine --ci --binaryLog --runanalyzers --warnaserror /p:RoslynEnforceCodeStyle=true | |
displayName: Build with analyzers | |
- template: eng/pipelines/publish-logs.yml | |
parameters: | |
jobName: Correctness_Analyzers | |
configuration: Debug |