diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 710fce4b49..0448bcdc0e 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -42,10 +42,10 @@ variables:
stages:
-- stage: build
- displayName: Build
+# Stage 1: Build and Unit Tests (3 parallel jobs)
+- stage: BuildAndUnitTests
+ displayName: Build and Unit Tests
jobs:
-
- template: /eng/common/templates/jobs/jobs.yml
parameters:
enableMicrobuild: true
@@ -56,240 +56,379 @@ stages:
enablePublishUsingPipelines: true
enableTelemetry: true
jobs:
- - job: Windows
+ # Windows: Full build + unit tests + pack and stage artifacts
+ - job: Windows_BuildPackAndUnitTests
+ displayName: Windows Build, Pack, and Unit Tests
timeoutInMinutes: 90
+ condition: ne('${{ parameters.SkipTests }}', 'True')
pool:
name: NetCore-Public
demands: ImageOverride -equals windows.vs2022preview.amd64.open
strategy:
matrix:
- Release:
- _BuildConfig: Release
Debug:
_BuildConfig: Debug
+ Release:
+ _BuildConfig: Release
steps:
- - task: PowerShell@2
- displayName: 'Install Windows SDK'
- inputs:
- targetType: filePath
- filePath: './eng/install-windows-sdk.ps1'
- failOnStderr: true
- showWarnings: true
+ - template: /eng/windows-setup-steps.yml
- - task: PowerShell@2
- displayName: 'Install procdump'
- inputs:
- targetType: filePath
- filePath: ./eng/install-procdump.ps1
- failOnStderr: true
- showWarnings: true
- - task: PowerShell@2
- displayName: 'Enable local dumps'
+ # Build all products and run unit tests
+ - script: eng\common\CIBuild.cmd
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:Publish=false
+ /p:ProductsToBuild=all
+ /p:Test=false
+ /p:FastAcceptanceTest=true
+ name: BuildAll
+ displayName: Build All Products
+
+ # Run unit tests for both MSTest and Testing Platform
+ - script: dotnet test test/UnitTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\UnitTests.binlog --no-progress
+ name: UnitTests
+ displayName: Run Unit Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
+
+ # Pack only in Release configuration
+ - script: eng\common\CIBuild.cmd
+ -configuration Release
+ -prepareMachine
+ /p:Publish=false
+ /p:ProductsToBuild=all
+ /p:Test=false
+ /p:Pack=true
+ name: Pack
+ displayName: Pack NuGet Packages
+ condition: eq(variables._BuildConfig, 'Release')
+
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish NuGet packages for integration testing'
inputs:
- targetType: 'inline'
- script: |
- New-Item -Path $(Build.SourcesDirectory)\artifacts\CrashDumps -ItemType Directory -Force
- Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"
- New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Value "$(Build.SourcesDirectory)\artifacts\CrashDumps" -PropertyType ExpandString -Force
- New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Value 10 -PropertyType DWord -Force
- - task: PowerShell@2
- displayName: 'Install Access Database Engine'
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/Release'
+ ArtifactName: 'NuGetPackages'
+ condition: and(always(), eq(variables._BuildConfig, 'Release'))
+
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish Unit Test Results'
inputs:
- targetType: filePath
- filePath: ./eng/install-access-database-engine.ps1
- failOnStderr: true
- showWarnings: true
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+ ArtifactName: UnitTestResults_Windows_$(_BuildConfig)_Attempt$(System.JobAttempt)
+ condition: always()
- - script: eng\common\CIBuild.cmd
+ # Linux: Unit tests only (parallel)
+ - job: Linux_UnitTests
+ displayName: Linux Unit Tests
+ timeoutInMinutes: 90
+ condition: ne('${{ parameters.SkipTests }}', 'True')
+ pool:
+ name: NetCore-Public
+ demands: ImageOverride -equals build.ubuntu.2004.amd64.open
+ strategy:
+ matrix:
+ Debug:
+ _BuildConfig: Debug
+ Release:
+ _BuildConfig: Release
+ steps:
+ # Build and run MSTest unit tests
+ - script: eng/common/cibuild.sh
-configuration $(_BuildConfig)
-prepareMachine
+ /p:ProductsToBuild=mstest-unit-tests
+ /p:Test=true
/p:Publish=false
- /p:Test=false
+ /p:NonWindowsBuild=true
+ /p:FastAcceptanceTest=true
+ displayName: Build and Test MSTest Unit Tests
+
+ # Build and run Testing Platform unit tests
+ - script: eng/common/cibuild.sh
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:ProductsToBuild=testing-platform-unit-tests
+ /p:Test=true
+ /p:Publish=false
+ /p:NonWindowsBuild=true
/p:FastAcceptanceTest=true
- name: Build
- displayName: Build
+ displayName: Build and Test Testing Platform Unit Tests
- task: PublishBuildArtifacts@1
- displayName: 'Publish NuGet packages'
+ displayName: 'Publish Unit Test Results'
inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/Shipping'
- ArtifactName: '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)'
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+ ArtifactName: UnitTestResults_Linux_$(_BuildConfig)_Attempt$(System.JobAttempt)
condition: always()
- - ${{ if eq(parameters.SkipTests, False) }}:
+ # macOS: Unit tests only (parallel)
+ - job: MacOS_UnitTests
+ displayName: macOS Unit Tests
+ timeoutInMinutes: 90
+ condition: ne('${{ parameters.SkipTests }}', 'True')
+ pool:
+ name: Azure Pipelines
+ vmImage: macos-latest
+ os: macOS
+ strategy:
+ matrix:
+ Debug:
+ _BuildConfig: Debug
+ Release:
+ _BuildConfig: Release
+ steps:
+ # Build and run MSTest unit tests
+ - script: eng/common/cibuild.sh
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:ProductsToBuild=mstest-unit-tests
+ /p:Test=true
+ /p:Publish=false
+ /p:NonWindowsBuild=true
+ /p:FastAcceptanceTest=true
+ displayName: Build and Test MSTest Unit Tests
- # Because the build step is using -ci flag, restore is done in a local .packages directory.
- # We need to pass NUGET_PACKAGES so that when dotnet test is doing evaluation phase on the projects, it can resolve .props/.targets from packages and import them.
- # Otherwise, props/targets are not imported. It's important that they are imported so that IsTestingPlatformApplication ends up being set.
- - script: dotnet test -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\TestStep.binlog --no-progress
- name: Test
- displayName: Test
- env:
- DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
- NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
- DOTNET_CLI_CONTEXT_VERBOSE: 1
+ # Build and run Testing Platform unit tests
+ - script: eng/common/cibuild.sh
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:ProductsToBuild=testing-platform-unit-tests
+ /p:Test=true
+ /p:Publish=false
+ /p:NonWindowsBuild=true
+ /p:FastAcceptanceTest=true
+ displayName: Build and Test Testing Platform Unit Tests
- - task: PublishBuildArtifacts@1
- displayName: 'Publish Test Results folders'
- inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
- ArtifactName: TestResults_Windows_$(_BuildConfig)_Attempt$(System.JobAttempt)
- condition: always()
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish Unit Test Results'
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+ ArtifactName: UnitTestResults_macOS_$(_BuildConfig)_Attempt$(System.JobAttempt)
+ condition: always()
- - task: CopyFiles@2
- displayName: 'Copy binlogs'
- inputs:
- SourceFolder: '$(Build.SourcesDirectory)/artifacts/tmp/$(_BuildConfig)/testsuite'
- Contents: |
- **/*.binlog
- TargetFolder: '$(Build.ArtifactStagingDirectory)/binlogs'
- condition: always()
+# Stage 2: Integration Tests (depends on Stage 1 completion)
+- stage: IntegrationTests
+ displayName: Integration Tests
+ dependsOn: BuildAndUnitTests
+ jobs:
+ - template: /eng/common/templates/jobs/jobs.yml
+ parameters:
+ enableMicrobuild: true
+ enablePublishBuildArtifacts: true
+ enablePublishTestResults: true
+ testResultsFormat: 'vstest'
+ enablePublishBuildAssets: false
+ enablePublishUsingPipelines: false
+ enableTelemetry: true
+ jobs:
+ # Windows Integration Tests
+ - job: Windows_IntegrationTests
+ displayName: Windows Integration Tests
+ timeoutInMinutes: 90
+ condition: ne('${{ parameters.SkipTests }}', 'True')
+ pool:
+ name: NetCore-Public
+ demands: ImageOverride -equals windows.vs2022preview.amd64.open
+ strategy:
+ matrix:
+ Debug:
+ _BuildConfig: Debug
+ Release:
+ _BuildConfig: Release
+ steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download NuGet packages'
+ inputs:
+ buildType: 'current'
+ downloadType: 'single'
+ artifactName: 'NuGetPackages'
+ downloadPath: '$(System.DefaultWorkingDirectory)'
+ - task: CopyFiles@2
+ displayName: 'Copy packages to expected location'
+ inputs:
+ SourceFolder: '$(System.DefaultWorkingDirectory)/NuGetPackages'
+ Contents: '**'
+ TargetFolder: '$(Build.SourcesDirectory)/artifacts/packages/Release'
+ - template: /eng/windows-setup-steps.yml
- - task: PublishBuildArtifacts@1
- displayName: 'Publish integration tests binlogs'
- inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)/binlogs'
- ArtifactName: Integration_Tests_Windows_Binlogs_$(_BuildConfig)
- condition: always()
+ # Build and run MSTest integration tests
+ - script: eng\common\CIBuild.cmd
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:Publish=false
+ /p:ProductsToBuild=mstest-integration-tests
+ /p:Test=false
+ /p:FastAcceptanceTest=true
+ displayName: Build MSTest Integration Tests
+ - script: dotnet test test/IntegrationTests/MSTest.Acceptance.IntegrationTests test/IntegrationTests/MSTest.IntegrationTests test/IntegrationTests/PlatformServices.Desktop.IntegrationTests test/IntegrationTests/MSTest.VstestConsoleWrapper.IntegrationTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\MSTestIntegrationTests.binlog --no-progress
+ displayName: Run MSTest Integration Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
- # Upload code coverage to codecov.io
- - script: dotnet msbuild -restore
- eng/CodeCoverage.proj
- /p:Configuration=$(_BuildConfig)
- /bl:$(BUILD.SOURCESDIRECTORY)\artifacts\log\$(_BuildConfig)\CodeCoverage.binlog
- displayName: Upload coverage to codecov.io
- condition: and(succeeded(), eq(variables._BuildConfig, 'Debug'))
+ # Build and run Testing Platform integration tests
+ - script: eng\common\CIBuild.cmd
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:Publish=false
+ /p:ProductsToBuild=testing-platform-integration-tests
+ /p:Test=false
+ /p:FastAcceptanceTest=true
+ displayName: Build Testing Platform Integration Tests
+ - script: dotnet test test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\MTPIntegrationTests.binlog --no-progress
+ displayName: Run Testing Platform Integration Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
- - task: PublishBuildArtifacts@1
- displayName: 'Publish local dumps'
- inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/CrashDumps'
- ArtifactName: TestResults_Windows_$(_BuildConfig)
- condition: failed()
+ - task: PublishBuildArtifacts@1
+ displayName: 'Publish Integration Test Results'
+ inputs:
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+ ArtifactName: IntegrationTestResults_Windows_$(_BuildConfig)_Attempt$(System.JobAttempt)
+ condition: always()
- - job: Linux
+ # Linux Integration Tests
+ - job: Linux_IntegrationTests
+ displayName: Linux Integration Tests
timeoutInMinutes: 90
+ condition: ne('${{ parameters.SkipTests }}', 'True')
pool:
name: NetCore-Public
demands: ImageOverride -equals build.ubuntu.2004.amd64.open
strategy:
matrix:
- Release:
- _BuildConfig: Release
Debug:
_BuildConfig: Debug
+ Release:
+ _BuildConfig: Release
steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download NuGet packages'
+ inputs:
+ buildType: 'current'
+ downloadType: 'single'
+ artifactName: 'NuGetPackages'
+ downloadPath: '$(System.DefaultWorkingDirectory)'
+ - task: CopyFiles@2
+ displayName: 'Copy packages to expected location'
+ inputs:
+ SourceFolder: '$(System.DefaultWorkingDirectory)/NuGetPackages'
+ Contents: '**'
+ TargetFolder: '$(Build.SourcesDirectory)/artifacts/packages/Release'
+
+ # Build and run MSTest integration tests
- script: eng/common/cibuild.sh
-configuration $(_BuildConfig)
-prepareMachine
+ /p:ProductsToBuild=mstest-integration-tests
/p:Test=false
/p:Publish=false
/p:NonWindowsBuild=true
/p:FastAcceptanceTest=true
- displayName: Build
+ displayName: Build MSTest Integration Tests
+ - script: dotnet test test/IntegrationTests/MSTest.Acceptance.IntegrationTests test/IntegrationTests/MSTest.IntegrationTests test/IntegrationTests/PlatformServices.Desktop.IntegrationTests test/IntegrationTests/MSTest.VstestConsoleWrapper.IntegrationTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\MSTestIntegrationTests.binlog --no-progress
+ displayName: Run MSTest Integration Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
+
+ # Build and run Testing Platform integration tests
+ - script: eng/common/cibuild.sh
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:ProductsToBuild=testing-platform-integration-tests
+ /p:Test=false
+ /p:Publish=false
+ /p:NonWindowsBuild=true
+ /p:FastAcceptanceTest=true
+ displayName: Build Testing Platform Integration Tests
+ - script: dotnet test test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\MTPIntegrationTests.binlog --no-progress
+ displayName: Run Testing Platform Integration Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
- task: PublishBuildArtifacts@1
- displayName: 'Publish NuGet packages'
+ displayName: 'Publish Integration Test Results'
inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/Shipping'
- ArtifactName: '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)'
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+ ArtifactName: IntegrationTestResults_Linux_$(_BuildConfig)_Attempt$(System.JobAttempt)
condition: always()
- - ${{ if eq(parameters.SkipTests, False) }}:
- # Because the build step is using -ci flag, restore is done in a local .packages directory.
- # We need to pass NUGET_PACKAGES so that when dotnet test is doing evaluation phase on the projects, it can resolve .props/.targets from packages and import them.
- # Otherwise, props/targets are not imported. It's important that they are imported so that IsTestingPlatformApplication ends up being set.
- - script: dotnet test --solution NonWindowsTests.slnf -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\TestStep.binlog --no-progress
- name: Test
- displayName: Test
- env:
- DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
- NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
- DOTNET_CLI_CONTEXT_VERBOSE: 1
-
- - task: PublishBuildArtifacts@1
- displayName: 'Publish Test Results folders'
- inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
- ArtifactName: TestResults_Linux_$(_BuildConfig)_Attempt$(System.JobAttempt)
- condition: always()
-
- - task: CopyFiles@2
- displayName: 'Copy binlogs'
- inputs:
- SourceFolder: '$(Build.SourcesDirectory)/artifacts/tmp/$(_BuildConfig)/testsuite'
- Contents: |
- **/*.binlog
- TargetFolder: '$(Build.ArtifactStagingDirectory)/binlogs'
- condition: always()
-
- - task: PublishBuildArtifacts@1
- displayName: 'Publish integration tests binlogs'
- inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)/binlogs'
- ArtifactName: Integration_Tests_Linux_Binlogs_$(_BuildConfig)
- condition: always()
-
- - job: MacOS
+ # macOS Integration Tests
+ - job: MacOS_IntegrationTests
+ displayName: macOS Integration Tests
timeoutInMinutes: 90
+ condition: ne('${{ parameters.SkipTests }}', 'True')
pool:
name: Azure Pipelines
vmImage: macos-latest
os: macOS
strategy:
matrix:
- Release:
- _BuildConfig: Release
Debug:
_BuildConfig: Debug
+ Release:
+ _BuildConfig: Release
steps:
+ - task: DownloadBuildArtifacts@0
+ displayName: 'Download NuGet packages'
+ inputs:
+ buildType: 'current'
+ downloadType: 'single'
+ artifactName: 'NuGetPackages'
+ downloadPath: '$(System.DefaultWorkingDirectory)'
+ - task: CopyFiles@2
+ displayName: 'Copy packages to expected location'
+ inputs:
+ SourceFolder: '$(System.DefaultWorkingDirectory)/NuGetPackages'
+ Contents: '**'
+ TargetFolder: '$(Build.SourcesDirectory)/artifacts/packages/Release'
+
+ # Build and run MSTest integration tests
+ - script: eng/common/cibuild.sh
+ -configuration $(_BuildConfig)
+ -prepareMachine
+ /p:ProductsToBuild=mstest-integration-tests
+ /p:Test=false
+ /p:Publish=false
+ /p:NonWindowsBuild=true
+ /p:FastAcceptanceTest=true
+ displayName: Build MSTest Integration Tests
+ - script: dotnet test test/IntegrationTests/MSTest.Acceptance.IntegrationTests test/IntegrationTests/MSTest.IntegrationTests test/IntegrationTests/PlatformServices.Desktop.IntegrationTests test/IntegrationTests/MSTest.VstestConsoleWrapper.IntegrationTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\MSTestIntegrationTests.binlog --no-progress
+ displayName: Run MSTest Integration Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
+
+ # Build and run Testing Platform integration tests
- script: eng/common/cibuild.sh
-configuration $(_BuildConfig)
-prepareMachine
+ /p:ProductsToBuild=testing-platform-integration-tests
/p:Test=false
/p:Publish=false
/p:NonWindowsBuild=true
/p:FastAcceptanceTest=true
- displayName: Build
+ displayName: Build Testing Platform Integration Tests
+ - script: dotnet test test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\MTPIntegrationTests.binlog --no-progress
+ displayName: Run Testing Platform Integration Tests
+ env:
+ DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
+ NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
+ DOTNET_CLI_CONTEXT_VERBOSE: 1
- task: PublishBuildArtifacts@1
- displayName: 'Publish NuGet packages'
+ displayName: 'Publish Integration Test Results'
inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/Shipping'
- ArtifactName: '$(Agent.Os)_$(Agent.JobName)_Attempt$(System.JobAttempt)'
+ PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+ ArtifactName: IntegrationTestResults_macOS_$(_BuildConfig)_Attempt$(System.JobAttempt)
condition: always()
-
- - ${{ if eq(parameters.SkipTests, False) }}:
- # Because the build step is using -ci flag, restore is done in a local .packages directory.
- # We need to pass NUGET_PACKAGES so that when dotnet test is doing evaluation phase on the projects, it can resolve .props/.targets from packages and import them.
- # Otherwise, props/targets are not imported. It's important that they are imported so that IsTestingPlatformApplication ends up being set.
- - script: dotnet test --solution NonWindowsTests.slnf -c $(_BuildConfig) --no-build -bl:$(BUILD.SOURCESDIRECTORY)\artifacts\TestResults\$(_BuildConfig)\TestStep.binlog --no-progress
- name: Test
- displayName: Test
- env:
- DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
- NUGET_PACKAGES: $(Build.SourcesDirectory)/.packages
- DOTNET_CLI_CONTEXT_VERBOSE: 1
-
- - task: PublishBuildArtifacts@1
- displayName: 'Publish Test Results folders'
- inputs:
- PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
- ArtifactName: TestResults_MacOs_$(_BuildConfig)_Attempt$(System.JobAttempt)
- condition: always()
-
- - task: CopyFiles@2
- displayName: 'Copy binlogs'
- inputs:
- SourceFolder: '$(Build.SourcesDirectory)/artifacts/tmp/$(_BuildConfig)/testsuite'
- Contents: |
- **/*.binlog
- TargetFolder: '$(Build.ArtifactStagingDirectory)/binlogs'
- condition: always()
-
- - task: PublishBuildArtifacts@1
- displayName: 'Publish integration tests binlogs'
- inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)/binlogs'
- ArtifactName: Integration_Tests_MacOS_Binlogs_$(_BuildConfig)
- condition: always()
diff --git a/eng/Build.props b/eng/Build.props
index 559d7f3749..a6089cd1a8 100644
--- a/eng/Build.props
+++ b/eng/Build.props
@@ -34,4 +34,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/eng/windows-setup-steps.yml b/eng/windows-setup-steps.yml
new file mode 100644
index 0000000000..167028199e
--- /dev/null
+++ b/eng/windows-setup-steps.yml
@@ -0,0 +1,35 @@
+# Template for Windows-specific setup steps
+steps:
+- task: PowerShell@2
+ displayName: 'Install Windows SDK'
+ inputs:
+ targetType: filePath
+ filePath: './eng/install-windows-sdk.ps1'
+ failOnStderr: true
+ showWarnings: true
+
+- task: PowerShell@2
+ displayName: 'Install procdump'
+ inputs:
+ targetType: filePath
+ filePath: ./eng/install-procdump.ps1
+ failOnStderr: true
+ showWarnings: true
+
+- task: PowerShell@2
+ displayName: 'Enable local dumps'
+ inputs:
+ targetType: 'inline'
+ script: |
+ New-Item -Path $(Build.SourcesDirectory)\artifacts\CrashDumps -ItemType Directory -Force
+ Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"
+ New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpFolder" -Value "$(Build.SourcesDirectory)\artifacts\CrashDumps" -PropertyType ExpandString -Force
+ New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" -Name "DumpCount" -Value 10 -PropertyType DWord -Force
+
+- task: PowerShell@2
+ displayName: 'Install Access Database Engine'
+ inputs:
+ targetType: filePath
+ filePath: ./eng/install-access-database-engine.ps1
+ failOnStderr: true
+ showWarnings: true
\ No newline at end of file
diff --git a/restore.cmd b/restore.cmd
old mode 100644
new mode 100755