Add pipelines for Integration tests on VSMain (#5980)

* Add pipelines for Integration tests on VSMain

* PR feedback
This commit is contained in:
Ryan Brandenburg 2022-01-20 13:22:48 -08:00 коммит произвёл GitHub
Родитель 254f06e01c
Коммит fcb5befb79
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
39 изменённых файлов: 149 добавлений и 31 удалений

Просмотреть файл

@ -0,0 +1,58 @@
# Razor integration test pipeline for validating against branch builds of VS.
trigger: none # Manual trigger for now
pr: none
resources:
pipelines:
- pipeline: VisualStudioBuildUnderTest
source: DD-CB-ReleaseVS
branch: main
- pipeline: DartLab
source: DartLab
branch: main
repositories:
- repository: DartLabTemplates
type: git
name: DartLab.Templates
ref: refs/heads/dev/bradwhit/RemoveCheckoutNone
- repository: RazorMirror
endpoint: dnceng/internal dotnet-razor-tooling
type: git
name: internal/dotnet-razor-tooling
ref: $(Build.SourceBranchName)
trigger:
- main
variables:
- name: XUNIT_LOGS
value: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)
stages:
- template: \stages\visual-studio\base.yml@DartLabTemplates
parameters:
displayName: VS Integration
testLabPoolName: VS-Platform2
visualStudioBootstrapperURI: https://vsdrop.corp.microsoft.com/file/v1/$(VisualStudio.BuildUnderTest.ProductsDropName);bootstrappers/Enterprise/vs_enterprise.exe
visualStudioInstallationParameters: --add Microsoft.VisualStudio.Component.NuGet --add Microsoft.VisualStudio.Component.Roslyn.Compiler --add Microsoft.Component.MSBuild --add Microsoft.NetCore.Component.Runtime.6.0 --add Microsoft.NetCore.Component.SDK --add Microsoft.Net.Component.4.7.2.TargetingPack --add Microsoft.VisualStudio.Component.Roslyn.LanguageServices --add Microsoft.VisualStudio.Component.FSharp --add Microsoft.ComponentGroup.ClickOnce.Publish --add Microsoft.NetCore.Component.DevelopmentTools --add Microsoft.VisualStudio.Component.MSODBC.SQL --add Microsoft.VisualStudio.Component.MSSQL.CMDLnUtils --add Microsoft.VisualStudio.Component.SQL.LocalDB.Runtime --add Microsoft.VisualStudio.Component.SQL.CLR --add Microsoft.VisualStudio.Component.CoreEditor --add Microsoft.VisualStudio.Workload.CoreEditor --add Microsoft.Net.Component.4.8.SDK --add Microsoft.Net.ComponentGroup.DevelopmentPrerequisites --add Microsoft.VisualStudio.Component.TypeScript.TSServer --add Microsoft.VisualStudio.ComponentGroup.WebToolsExtensions --add Microsoft.VisualStudio.Component.JavaScript.TypeScript --add Microsoft.VisualStudio.Component.JavaScript.Diagnostics --add Microsoft.VisualStudio.Component.TextTemplating --add Component.Microsoft.VisualStudio.RazorExtension --add Microsoft.VisualStudio.Component.IISExpress --add Microsoft.VisualStudio.Component.Common.Azure.Tools --add Microsoft.Component.ClickOnce --add Microsoft.VisualStudio.Component.ManagedDesktop.Core --add Microsoft.VisualStudio.Component.SQL.SSDT --add Microsoft.VisualStudio.Component.SQL.DataSources --add Component.Microsoft.Web.LibraryManager --add Component.Microsoft.WebTools.BrowserLink.WebLivePreview --add Microsoft.VisualStudio.ComponentGroup.Web --add Microsoft.VisualStudio.Component.FSharp.WebTemplates --add Microsoft.VisualStudio.Component.DockerTools --add Microsoft.NetCore.Component.Web --add Microsoft.VisualStudio.Component.WebDeploy --add Microsoft.VisualStudio.Component.AppInsights.Tools --add Microsoft.VisualStudio.Component.Web --add Microsoft.Net.Component.4.8.TargetingPack --add Microsoft.Net.ComponentGroup.4.8.DeveloperTools --add Microsoft.VisualStudio.Component.AspNet45 --add Microsoft.VisualStudio.Component.AspNet --add Component.Microsoft.VisualStudio.Web.AzureFunctions --add Microsoft.VisualStudio.ComponentGroup.AzureFunctions --add Microsoft.VisualStudio.Component.Debugger.Snapshot --add Microsoft.VisualStudio.ComponentGroup.Web.CloudTools --add Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd --add Microsoft.VisualStudio.Component.DiagnosticTools --add Microsoft.VisualStudio.Component.EntityFramework --add Microsoft.VisualStudio.Component.LiveUnitTesting --add Microsoft.VisualStudio.Component.Debugger.JustInTime --add Component.Microsoft.VisualStudio.LiveShare.2022 --add Microsoft.VisualStudio.Component.WslDebugging --add Microsoft.VisualStudio.Component.IntelliCode --add Microsoft.VisualStudio.Workload.NetWeb --add Microsoft.VisualStudio.Component.ManagedDesktop.Prerequisites --add Microsoft.ComponentGroup.Blend --add Microsoft.VisualStudio.Component.DotNetModelBuilder --add Microsoft.VisualStudio.Component.FSharp.Desktop --add Microsoft.VisualStudio.Component.PortableLibrary --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.Net.Component.4.6.TargetingPack --add Microsoft.VisualStudio.Component.VSSDK --add Microsoft.VisualStudio.ComponentGroup.VisualStudioExtension.Prerequisites --add Microsoft.Component.CodeAnalysis.SDK --add Microsoft.VisualStudio.Workload.VisualStudioExtension --installPath "C:\Test\VisualStudio" --quiet --norestart --wait
testExecutionJobStrategy:
matrix:
debug_32:
_configuration: Debug
testMachineTotalCount: 4
testAgentElevated: true
preTestMachineConfigurationStepList:
- checkout: none
- download: VisualStudioBuildUnderTest
- task: PowerShell@2
name: SetProductsDropName
displayName: Set 'VisualStudio.BuildUnderTest.ProductsDropName'
inputs:
filePath: $(DartLab.Path)\Scripts\VisualStudio\Build\Get-VisualStudioDropName.ps1
arguments: -DropNamePrefix 'Products' -VstsDropUrlsJson '$(Pipeline.Workspace)\VisualStudioBuildUnderTest\BuildArtifacts\VstsDropUrls.json' -OutVariableName 'VisualStudio.BuildUnderTest.ProductsDropName'
deployAndRunTestsStepList:
- checkout: RazorMirror
- template: eng/pipelines/test-integration-job.yml
parameters:
configuration: $(_configuration)
shallowCheckout: false

Просмотреть файл

@ -186,6 +186,7 @@ stages:
-configuration $(_BuildConfig)
-msbuildEngine dotnet
-prepareMachine
-integrationTest
$(_BuildArgs)
$(_PublishArgs)
$(_InternalRuntimeDownloadArgs)

Просмотреть файл

@ -0,0 +1,11 @@
# Shallow checkout sources on Windows
steps:
- checkout: none
- script: |
@echo on
git init
git remote add origin "$(Build.Repository.Uri)"
git fetch --progress --no-tags --depth=1 origin "$(Build.SourceVersion)"
git checkout "$(Build.SourceVersion)"
displayName: Shallow Checkout

Просмотреть файл

@ -0,0 +1,47 @@
parameters:
- name: configuration
type: string
default: 'Debug'
- name: shallowCheckout
type: boolean
default: true
steps:
- ${{ if eq(parameters.shallowCheckout, true) }}:
- template: checkout-windows-task.yml
- script: eng\common\cibuild.cmd
-configuration ${{ parameters.configuration }}
-msbuildEngine dotnet
-prepareMachine
-integrationTest
name: Build and Test
displayName: Build and Test
condition: succeeded()
- task: PublishTestResults@2
displayName: Publish xUnit Test Results
inputs:
testRunner: XUnit
testResultsFiles: $(Build.SourcesDirectory)\artifacts\TestResults\${{ parameters.configuration }}\*.xml
mergeTestResults: true
testRunTitle: '$(System.JobAttempt)-Integration ${{ parameters.configuration }}'
condition: always()
- task: PublishBuildArtifacts@1
displayName: Publish Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\${{ parameters.configuration }}'
ArtifactName: '$(System.JobAttempt)-Logs ${{ parameters.configuration }} $(Build.BuildNumber)'
publishLocation: Container
continueOnError: true
condition: not(succeeded())
- task: PublishBuildArtifacts@1
displayName: Publish Screenshots
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\bin\Microsoft.VisualStudio.Razor.IntegrationTests\${{ parameters.configuration }}\net472\xUnitResults'
ArtifactName: '$(System.JobAttempt)-Screenshots ${{ parameters.configuration }} $(Build.BuildNumber)'
publishLocation: Container
continueOnError: true
condition: not(succeeded())

Просмотреть файл

@ -126,4 +126,6 @@
<Yarn Command="$(NpmTestArgs)" StandardOutputImportance="High" StandardErrorImportance="High" IgnoreStandardErrorWarningFormat="true" />
</Target>
<!-- Included to avoid crashing due to its absence -->
<Target Name="IntegrationTest" Condition="'$(IsTestProject)' == 'true'" />
</Project>

Просмотреть файл

@ -93,7 +93,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
..\..\.editorconfig = ..\..\.editorconfig
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.Razor.Integration.Test", "test\Microsoft.VisualStudio.Razor.Integration.Test\Microsoft.VisualStudio.Razor.Integration.Test.csproj", "{8CEC0991-259F-4313-B3EF-E398F2B40E61}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.Razor.IntegrationTests", "test\Microsoft.VisualStudio.Razor.IntegrationTests\Microsoft.VisualStudio.Razor.IntegrationTests.csproj", "{8CEC0991-259F-4313-B3EF-E398F2B40E61}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

Просмотреть файл

@ -21,7 +21,6 @@
<BuildOutputFiles Include="dist\infrastructure\SnapshotTests.js" />
</ItemGroup>
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.targets))\Directory.Build.targets" />
</Project>

Просмотреть файл

@ -3,7 +3,7 @@
using System.Threading.Tasks;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public abstract class AbstractEditorTest : AbstractIntegrationTest
{

Просмотреть файл

@ -7,7 +7,7 @@ using Xunit;
using Xunit.Sdk;
using Task = System.Threading.Tasks.Task;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
// TODO: Start collecting LogFiles on failure

Просмотреть файл

@ -3,9 +3,9 @@
using System.IO;
using System.Threading.Tasks;
using Microsoft.VisualStudio.Razor.Integration.Test.InProcess;
using Microsoft.VisualStudio.Razor.IntegrationTests.InProcess;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public abstract class AbstractRazorEditorTest : AbstractEditorTest
{

Просмотреть файл

@ -6,7 +6,7 @@ using System.Linq;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Projection;
namespace Microsoft.VisualStudio.Razor.Integration.Test.Extensions
namespace Microsoft.VisualStudio.Razor.IntegrationTests.Extensions
{
internal static class IBufferGraphExtensions
{

Просмотреть файл

@ -6,7 +6,7 @@ using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Utilities;
namespace Microsoft.VisualStudio.Razor.Integration.Test.Extensions
namespace Microsoft.VisualStudio.Razor.IntegrationTests.Extensions
{
internal static class ITextViewExtensions
{

Просмотреть файл

@ -6,7 +6,7 @@ using System.Threading.Tasks;
using Microsoft.VisualStudio.TextManager.Interop;
using Microsoft.VisualStudio.Threading;
namespace Microsoft.VisualStudio.Razor.Integration.Test.Extensions
namespace Microsoft.VisualStudio.Razor.IntegrationTests.Extensions
{
internal static class IVsTextManagerExtensions
{

Просмотреть файл

@ -8,7 +8,7 @@ using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.TextManager.Interop;
using Microsoft.VisualStudio.Threading;
namespace Microsoft.VisualStudio.Razor.Integration.Test.Extensions
namespace Microsoft.VisualStudio.Razor.IntegrationTests.Extensions
{
internal static class IVsTextViewExtensions
{

Просмотреть файл

@ -9,7 +9,7 @@ using Microsoft.VisualStudio.OLE.Interop;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Razor.Integration.Test.Extensions;
using Microsoft.VisualStudio.Razor.IntegrationTests.Extensions;
namespace Microsoft.VisualStudio.Extensibility.Testing
{

Просмотреть файл

@ -7,7 +7,7 @@ using System.Threading.Tasks;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Razor.Integration.Test.Extensions;
using Microsoft.VisualStudio.Razor.IntegrationTests.Extensions;
namespace Microsoft.VisualStudio.Extensibility.Testing
{

Просмотреть файл

@ -6,7 +6,7 @@ using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.OLE.Interop;
using Microsoft.VisualStudio.Razor.Integration.Test.InProcess;
using Microsoft.VisualStudio.Razor.IntegrationTests.InProcess;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.Threading;

Просмотреть файл

@ -3,7 +3,7 @@
using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.Razor.Integration.Test.InProcess;
using Microsoft.VisualStudio.Razor.IntegrationTests.InProcess;
using Microsoft.VisualStudio.Text;
using Xunit;

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Razor.Integration.Test.InProcess
namespace Microsoft.VisualStudio.Razor.IntegrationTests.InProcess
{
internal static class FeatureAttribute
{

Просмотреть файл

@ -6,7 +6,7 @@ using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
namespace Microsoft.VisualStudio.Razor.Integration.Test.InProcess
namespace Microsoft.VisualStudio.Razor.IntegrationTests.InProcess
{
internal static class Helper
{

Просмотреть файл

@ -10,7 +10,7 @@ using Microsoft.VisualStudio.Language.Intellisense;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Threading;
namespace Microsoft.VisualStudio.Razor.Integration.Test.InProcess
namespace Microsoft.VisualStudio.Razor.IntegrationTests.InProcess
{
public static class LightBulbHelper
{

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Razor.Integration.Test.InProcess
namespace Microsoft.VisualStudio.Razor.IntegrationTests.InProcess
{
internal static class MarkupTestFile
{

Просмотреть файл

@ -8,8 +8,8 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.Razor.Integration.Test;
using Microsoft.VisualStudio.Razor.Integration.Test.InProcess;
using Microsoft.VisualStudio.Razor.IntegrationTests;
using Microsoft.VisualStudio.Razor.IntegrationTests.InProcess;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.Shell.Interop;
using Microsoft.VisualStudio.TextManager.Interop;

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Razor.Integration.Test.InProcess
namespace Microsoft.VisualStudio.Razor.IntegrationTests.InProcess
{
public static class WellKnownCommandNames
{

Просмотреть файл

@ -3,7 +3,7 @@
using System.Threading;
using System.Threading.Tasks;
using Microsoft.VisualStudio.Razor.Integration.Test.InProcess;
using Microsoft.VisualStudio.Razor.IntegrationTests.InProcess;
namespace Microsoft.VisualStudio.Extensibility.Testing
{

Просмотреть файл

@ -4,7 +4,7 @@
using System.Reflection;
using Xunit.Sdk;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public class IntializeTestFileAttribute : BeforeAfterTestAttribute
{

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public static class LanguageNames
{

Просмотреть файл

@ -3,7 +3,7 @@
<TargetFramework>net472</TargetFramework>
<Nullable>enable</Nullable>
<OutputType>Library</OutputType>
<RootNamespace>Microsoft.VisualStudio.Razor.Integration.Test</RootNamespace>
<RootNamespace>Microsoft.VisualStudio.Razor.IntegrationTests</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\Microsoft.AspNetCore.Razor.Test.Common\NullableAttributes.cs" Link="NullableAttributes.cs" />

Просмотреть файл

@ -4,7 +4,7 @@
using System.Threading.Tasks;
using Xunit;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public class ProjectTests : AbstractRazorEditorTest
{

Просмотреть файл

@ -4,7 +4,7 @@
using System.Threading.Tasks;
using Xunit;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public class RazorCodeActionsTests : AbstractRazorEditorTest
{

Просмотреть файл

@ -5,7 +5,7 @@ using System;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
internal static class RazorDebug
{

Просмотреть файл

@ -10,12 +10,12 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Razor.Language;
using Microsoft.VisualStudio.Razor.Integration.Test.InProcess;
using Microsoft.VisualStudio.Razor.IntegrationTests.InProcess;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Classification;
using Xunit;
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
[IntializeTestFile]
public class RazorSemanticTokensTests : AbstractRazorEditorTest

Просмотреть файл

@ -1,7 +1,7 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT license. See License.txt in the project root for license information.
namespace Microsoft.VisualStudio.Razor.Integration.Test
namespace Microsoft.VisualStudio.Razor.IntegrationTests
{
public static class WellKnownProjectTemplates
{