diff --git a/.azure/pipelines/ci-public.yml b/.azure/pipelines/ci-public.yml index f075662ae69d..7cf5ea808e5a 100644 --- a/.azure/pipelines/ci-public.yml +++ b/.azure/pipelines/ci-public.yml @@ -570,11 +570,11 @@ stages: publishOnError: true includeForks: true - # Helix x64 + # Helix x64 subset 1 - template: jobs/default-build.yml parameters: - jobName: Helix_x64 - jobDisplayName: 'Tests: Helix x64' + jobName: Helix_x64_Subset_1 + jobDisplayName: 'Tests: Helix x64 Subset 1' agentOs: Windows timeoutInMinutes: 240 steps: @@ -587,14 +587,43 @@ stages: - script: ./eng/build.cmd -ci -prepareMachine -nativeToolsOnMachine -all -noBuildRepoTasks -noBuildNative -noBuild -test -projects eng\helix\helix.proj /p:IsHelixPRCheck=true /p:IsHelixJob=true /p:CrossgenOutput=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) - /p:VsTestUseMSBuildOutput=false /p:RunTemplateTests=false + /p:VsTestUseMSBuildOutput=false /p:RunTemplateTests=false /p:HelixSubset=1 displayName: Run build.cmd helix target env: HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops artifacts: - - name: Helix_Logs_Attempt_$(System.JobAttempt) + - name: Helix_Subset_1_Logs_Attempt_$(System.JobAttempt) + path: artifacts/log/ + publishOnError: true + includeForks: true + + # Helix x64 subset 2 + - template: jobs/default-build.yml + parameters: + jobName: Helix_x64_Subset_2 + jobDisplayName: 'Tests: Helix x64 Subset 2' + agentOs: Windows + timeoutInMinutes: 240 + steps: + # Build the shared framework + - script: ./eng/build.cmd -ci -prepareMachine -nativeToolsOnMachine -nobl -all -pack -arch x64 + /p:CrossgenOutput=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) + /p:VsTestUseMSBuildOutput=false + displayName: Build shared fx + # -noBuildRepoTasks -noBuildNative -noBuild to avoid repeating work done in the previous step. + - script: ./eng/build.cmd -ci -prepareMachine -nativeToolsOnMachine -all -noBuildRepoTasks -noBuildNative -noBuild -test + -projects eng\helix\helix.proj /p:IsHelixPRCheck=true /p:IsHelixJob=true + /p:CrossgenOutput=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) + /p:VsTestUseMSBuildOutput=false /p:RunTemplateTests=false /p:HelixSubset=2 + displayName: Run build.cmd helix target + env: + HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues + SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops + + artifacts: + - name: Helix_Subset_2_Logs_Attempt_$(System.JobAttempt) path: artifacts/log/ publishOnError: true includeForks: true diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index b1dfbc20d544..ab0d36e1bedf 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -624,8 +624,8 @@ extends: # Helix x64 - template: .azure/pipelines/jobs/default-build.yml@self parameters: - jobName: Helix_x64 - jobDisplayName: 'Tests: Helix x64' + jobName: Helix_x64_Subset_1 + jobDisplayName: 'Tests: Helix x64 Subset 1' agentOs: Windows timeoutInMinutes: 240 steps: @@ -637,7 +637,7 @@ extends: displayName: Build shared fx # -noBuildRepoTasks -noBuildNative -noBuild to avoid repeating work done in the previous step. - script: ./eng/build.cmd -ci -prepareMachine -nativeToolsOnMachine -all -noBuildRepoTasks -noBuildNative -noBuild -test - -projects eng\helix\helix.proj /p:IsHelixPRCheck=true /p:IsHelixJob=true + -projects eng\helix\helix.proj /p:IsHelixPRCheck=true /p:IsHelixJob=true /p:HelixSubset=1 /p:CrossgenOutput=false /p:RunTemplateTests=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) displayName: Run build.cmd helix target env: @@ -645,7 +645,36 @@ extends: SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops artifacts: - - name: Helix_Logs_Attempt_$(System.JobAttempt) + - name: Helix_Logs_Subset_1_Attempt_$(System.JobAttempt) + path: artifacts/log/ + publishOnError: true + includeForks: true + + # Helix x64 + - template: .azure/pipelines/jobs/default-build.yml@self + parameters: + jobName: Helix_x64_Subset_2 + jobDisplayName: 'Tests: Helix x64 Subset 2' + agentOs: Windows + timeoutInMinutes: 240 + steps: + # Build the shared framework + - script: ./eng/build.cmd -ci -prepareMachine -nativeToolsOnMachine -nobl -all -pack -arch x64 + /p:CrossgenOutput=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) + env: + MSBUILDUSESERVER: "1" + displayName: Build shared fx + # -noBuildRepoTasks -noBuildNative -noBuild to avoid repeating work done in the previous step. + - script: ./eng/build.cmd -ci -prepareMachine -nativeToolsOnMachine -all -noBuildRepoTasks -noBuildNative -noBuild -test + -projects eng\helix\helix.proj /p:IsHelixPRCheck=true /p:IsHelixJob=true /p:HelixSubset=2 + /p:CrossgenOutput=false /p:RunTemplateTests=false /p:ASPNETCORE_TEST_LOG_DIR=artifacts/log $(_InternalRuntimeDownloadArgs) + displayName: Run build.cmd helix target + env: + HelixApiAccessToken: $(HelixApiAccessToken) # Needed for internal queues + SYSTEM_ACCESSTOKEN: $(System.AccessToken) # We need to set this env var to publish helix results to Azure Dev Ops + + artifacts: + - name: Helix_Logs_Subset_2_Attempt_$(System.JobAttempt) path: artifacts/log/ publishOnError: true includeForks: true @@ -747,7 +776,8 @@ extends: - Windows_Test - MacOS_Test - Linux_Test - - Helix_x64 + - Helix_x64_Subset_1 + - Helix_x64_Subset_2 - ${{ if eq(variables.enableSourceIndex, 'true') }}: - SourceIndexStage1 - Source_Build_Managed diff --git a/docs/AddingNewProjects.md b/docs/AddingNewProjects.md index cfb9a5e5a3ab..ce1a25cc1ede 100644 --- a/docs/AddingNewProjects.md +++ b/docs/AddingNewProjects.md @@ -28,13 +28,13 @@ Sample PR of final result: https://github.com/dotnet/aspnetcore/pull/41945 - If VS has not already modified these files, open the `.slnf` you want to add the project to. Create a solution folder for your project if doesn't exist already. Then right click solution folder -> Add -> Existing Project... -> follow the wizard. 1. Run the `eng/scripts/GenerateProjectList.ps1` file to regenerate a number of `eng/*.props` files e.g. ProjectReferences.props. -**Note:** If you are adding a new project to the root `src` directory, you will also need to add a reference in both of the `DotNetProjects` lists of the `eng/Build.props` file. The first list (the one with condition `'$(BuildMainlyReferenceProviders)' != 'true'"`) has items in the format of: +**Note:** If you are adding a new project to the root `src` directory, you will also need to add a reference in both the `ProjectsWithTestsSubsetN` and `DotNetProjects` lists of the `eng/Build.props` file. The `ProjectsWithTestsSubsetN` lists (the one with condition `'$(BuildMainlyReferenceProviders)' != 'true'"`) has items in the format of: ```XML - + + + + + + + +