Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
1bc77ea
Add dynamic runtimesettings (#8341)
bschnurr Dec 3, 2025
5f28f04
update ComponentBuildUnderTest
bschnurr Dec 4, 2025
e1ac46b
try uploading test data to azure artifacts
bschnurr Dec 4, 2025
25176ca
disable codeql if not commit in main or release
bschnurr Dec 4, 2025
039f680
faster checkout
bschnurr Dec 4, 2025
8f97614
try to skip signing when building installer
bschnurr Dec 4, 2025
4971b21
disable sbom
bschnurr Dec 4, 2025
80f7ce5
add persistCredentials: true
bschnurr Dec 4, 2025
ec63b1c
move testdata to its own job for faster testing
bschnurr Dec 4, 2025
cd09e07
Update azure-pipelines.yml for Azure Pipelines
bschnurr Dec 4, 2025
f1b8425
try adding a container name and pat flag
bschnurr Dec 5, 2025
2118765
Merge branch 'test-gate' of https://github.com/microsoft/PTVS into te…
bschnurr Dec 5, 2025
0294244
remove slash in buildNumber
bschnurr Dec 5, 2025
122e6e0
try folder
bschnurr Dec 5, 2025
118a128
add display name
bschnurr Dec 5, 2025
aa05ad8
try using isProduction: false to disable sdl
bschnurr Dec 5, 2025
66bc70a
try to download testdata
bschnurr Dec 5, 2025
6e973d1
change location of artifact download
bschnurr Dec 5, 2025
78f7ca2
try runId with metadata name
bschnurr Dec 5, 2025
1d406ad
try sourceRunId
bschnurr Dec 5, 2025
b5cb564
try dropMetadataContainerBuild
bschnurr Dec 5, 2025
2ff23cb
remove usePat false.. we need a PAT
bschnurr Dec 5, 2025
30f2b94
remove commenrts
bschnurr Dec 5, 2025
1a4b42e
try uploading RunSettings
bschnurr Dec 6, 2025
d8e3359
just copy default.runsettings to the folder we are already uploading.…
bschnurr Dec 6, 2025
d0a770c
update Bootstrapper to artifacts
bschnurr Dec 8, 2025
821ce99
change to MicroBuild output folder
bschnurr Dec 8, 2025
95c5b9e
customize buildnumber for artifacts drop so that there is no conflict…
bschnurr Dec 9, 2025
36d0b00
try fixing buildNumber artifactsDrop
bschnurr Dec 9, 2025
b0ea872
try chanigng bootloader folder to match output folder of MicroBuildBu…
bschnurr Dec 9, 2025
f1181a9
try microbuild output with pipeline artifact
bschnurr Dec 9, 2025
d0a9f7d
download microbuildoutputs
bschnurr Dec 9, 2025
f7cac4c
try using artifactsDrop for MicroBuildOutputs
bschnurr Dec 9, 2025
7afbe8f
use pipelineartifact for now
bschnurr Dec 9, 2025
2923b84
update to new test machines
bschnurr Dec 10, 2025
cd762bb
add runsettingsproj
bschnurr Dec 10, 2025
d37d223
move to new pipeline
bschnurr Jan 28, 2026
c0ae837
rename pipeline
bschnurr Jan 29, 2026
88d6554
remove branch
bschnurr Jan 30, 2026
d8cea90
list files
bschnurr Jan 30, 2026
9ab8882
set buildNumber
bschnurr Jan 30, 2026
28aecfa
try pipelineArtifact for PTVS-TestData
bschnurr Jan 30, 2026
d0bc838
add back msft_consumption
bschnurr Jan 30, 2026
9aa441c
only one feed. remove python
bschnurr Jan 31, 2026
3548f82
change build pool
bschnurr Jan 31, 2026
11ce9af
try different pool
bschnurr Jan 31, 2026
b5bdf15
add back both feeds
bschnurr Jan 31, 2026
1a1ef0e
go back to msft_consumption
bschnurr Jan 31, 2026
4a9108e
try to fix PTVS-TestData
bschnurr Feb 1, 2026
d061a2d
try to push stuff to artiffact drop
bschnurr Feb 2, 2026
64aa50a
change pool
bschnurr Feb 2, 2026
620360a
move back to VSEngSS-MicroBuild2022-1ES
bschnurr Feb 3, 2026
e300d8b
try large pool
bschnurr Feb 3, 2026
b378f12
change pool
bschnurr Feb 3, 2026
949dd25
skip signing
bschnurr Feb 3, 2026
726558a
test folder testing
bschnurr Feb 3, 2026
5163486
add nuget config and setup for tests runtimesettings
bschnurr Feb 3, 2026
e984560
rename nuget config for testdata
bschnurr Feb 3, 2026
5d48960
try to download all
bschnurr Feb 3, 2026
9757a06
remove runtimesettings
bschnurr Feb 3, 2026
267baf5
add a slash
bschnurr Feb 3, 2026
187528e
revert
bschnurr Feb 3, 2026
82a74a0
try downloading more folds and list more files
bschnurr Feb 4, 2026
4bad6b5
use DDRts
bschnurr Feb 4, 2026
1126434
$(Pipeline.Workspace)\ComponentBuildUnderTest\PTVS-TestData\VSTSDrop.…
bschnurr Feb 4, 2026
bbe6294
add timeout
bschnurr Feb 4, 2026
3e663b1
add prints
bschnurr Feb 5, 2026
61650c5
use DDRITs.RunSettings
bschnurr Feb 5, 2026
8025d84
lowercase dropfolder and ddrits name
bschnurr Feb 5, 2026
9c3c1a2
renname to ptvs.runtimesettings and try call extract on testdata.zip
bschnurr Feb 7, 2026
0133858
remove comment in comment
bschnurr Feb 9, 2026
cd5cdfa
fix path to template
bschnurr Feb 9, 2026
fec1f85
Fixed the ExtractFiles@1 ENOENT by making the UI-test template’s Drop…
bschnurr Feb 9, 2026
df17bf0
try to fix cleanup
bschnurr Feb 9, 2026
ea810ca
fix ptvs.runsettings path
bschnurr Feb 9, 2026
90f6ed3
change ptvs.runsettings path again
bschnurr Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Build/18.0/packages.config
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<!-- 3rd party packages-->
<package id="Python" version="3.8.9" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net45" />

<!-- packages from private sources. See nuget.config for more info -->
Expand Down Expand Up @@ -83,4 +82,5 @@
<package id="Microsoft.VisualStudio.RpcContracts" version = "17.15.25-pre" /> <!-- 17.15.26-pre -->
<package id="Microsoft.DiaSymReader.Pdb2Pdb" version = "1.1.0-beta2-21181-01" />
<package id="Microsoft.TestPlatform.ObjectModel" version = "17.14.1" /> <!-- 17.4.0-preview-20221003-03 -> 17.14.1 -->
<package id="Microsoft.DevDiv.Validation.TestPlatform.Settings.Tasks" version = "1.0.1108" />
</packages>
2 changes: 1 addition & 1 deletion Build/PreBuild.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ try {
if (-not $interactive) {
$arglist += "-NonInteractive"
}
$nuget = Get-Command nuget.exe -EA 0
$nuget = Get-Command .\nuget.exe -EA 0
if (-not $nuget) {
$nuget = Get-Command .\nuget.exe
}
Expand Down
157 changes: 157 additions & 0 deletions Build/azuredevops/test/uitest-integration-stage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,157 @@
parameters:
- name: BinariesDirectory
type: string
default: '$(Drop)/binaries'
- name: CleanupProcesses
type: string
default: 'devenv, vshub, microsoft.vshub.server.httphost, python, ipy, microsoft.pythontools.analyzer, vstest.executionengine.x86, vstest.discoveryengine.x86'
- name: Drop
type: string
default: '$(System.ArtifactsDirectory)/$(DefinitionName)'
- name: TestFilterCriteria
type: string
default: 'Priority=0'
- name: UITestNames
type: string
default: ''

steps:
- task: ExtractFiles@1
displayName: Extract files
condition: succeeded()
inputs:
archiveFilePatterns: '${{ parameters.Drop }}/TestData.zip'
destinationFolder: '${{ parameters.Drop }}/TestData'
cleanDestinationFolder: false
overwriteExistingFiles: false

- task: PowerShell@2
displayName: Cleanup
condition: succeeded()
continueOnError: true
timeoutInMinutes: 5
inputs:
targetType: inline
script: |
$names = @(
'${{ parameters.CleanupProcesses }}'
-split ',' |
ForEach-Object { $_.Trim() } |
Where-Object { -not [string]::IsNullOrWhiteSpace($_) }
)
$running = Get-Process -Name $names -ErrorAction SilentlyContinue
while ($running) {
Write-Host 'Killing:'
$running
try {
$running | Stop-Process -Force
} catch {
}
Start-Sleep -Seconds 3
$running = Get-Process -Name $names -ErrorAction SilentlyContinue
}
errorActionPreference: stop
failOnStderr: true

- task: CopyFiles@2
displayName: Copy TestData into binaries
condition: succeeded()
continueOnError: true
inputs:
SourceFolder: '${{ parameters.Drop }}/TestData'
Contents: '**'
TargetFolder: '${{ parameters.BinariesDirectory }}/TestData'
CleanTargetFolder: 'true'
OverWrite: 'false'
flattenFolders: 'false'
preserveTimestamp: 'false'
retryCount: '0'

- task: CopyFiles@2
displayName: Copy runsettings to binary folder
condition: succeeded()
inputs:
SourceFolder: '${{ parameters.BinariesDirectory }}/TestData'
Contents: 'ptvs.runsettings'
TargetFolder: '${{ parameters.BinariesDirectory }}'
CleanTargetFolder: 'false'
OverWrite: 'false'
flattenFolders: 'false'
preserveTimestamp: 'false'
retryCount: '0'

- task: PowerShell@2
displayName: Skip Verification
condition: succeeded()
inputs:
targetType: inline
script: |
reg import "${{ parameters.BinariesDirectory }}\TestData\EnableSkipVerification.reg"
errorActionPreference: stop
failOnStderr: false

- task: VSTest@2
displayName: '[MultiConfiguration] Run UI Test ${{ parameters.UITestNames }}'
condition: succeeded()
continueOnError: true
inputs:
testSelector: testAssemblies
testAssemblyVer2: '${{ parameters.UITestNames }}UITestsRunner.dll'
tcmTestRun: '$(test.RunId)'
searchFolder: '${{ parameters.BinariesDirectory }}'
resultsFolder: '$(Agent.TempDirectory)/TestResults'
testFiltercriteria: '${{ parameters.TestFilterCriteria }}'
runOnlyImpactedTests: false
runAllTestsAfterXBuilds: 50
uiTests: true
vstestLocationMethod: version
vsTestVersion: latest
runSettingsFile: '${{ parameters.Drop }}\\ptvs.runsettings'
overrideTestrunParameters: '-TargetFrameworkVersion .NETFramework,Version=v4.7.2'
runInParallel: false
runTestsInIsolation: false
codeCoverageEnabled: true
distributionBatchType: basedOnExecutionTime
batchingBasedOnAgentsOption: autoBatchSize
customBatchSizeValue: 10
batchingBasedOnExecutionTimeOption: customTimeBatchSize
customRunTimePerBatchValue: 300
dontDistribute: false
testRunTitle: '${{ parameters.UITestNames }} UI Tests'
publishRunAttachments: true
failOnMinTestsNotRun: false
minimumExpectedTests: 1
diagnosticsEnabled: true
collectDumpOn: onAbortOnly
rerunFailedTests: true
rerunType: basedOnTestFailurePercentage
rerunFailedThreshold: 50
rerunFailedTestCasesMaxLimit: 5
rerunMaxAttempts: 2

- task: PowerShell@2
displayName: Cleanup
condition: succeeded()
timeoutInMinutes: 5
inputs:
targetType: inline
script: |
$names = @(
'${{ parameters.CleanupProcesses }}'
-split ',' |
ForEach-Object { $_.Trim() } |
Where-Object { -not [string]::IsNullOrWhiteSpace($_) }
)
$running = Get-Process -Name $names -ErrorAction SilentlyContinue
while ($running) {
Write-Host 'Killing:'
$running
try {
$running | Stop-Process -Force
} catch {
}
Start-Sleep -Seconds 3
$running = Get-Process -Name $names -ErrorAction SilentlyContinue
}
errorActionPreference: stop
failOnStderr: true
2 changes: 1 addition & 1 deletion Build/debugpy-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.8.17
1.8.18
5 changes: 3 additions & 2 deletions Build/nuget.config
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
<clear />
<!-- This is the old private azure feed, leaving it commented here for reference -->
<!--<add key="PTVS_Packages" value="https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/PTVS_Packages/nuget/v3/index.json" />-->

<!-- This is the public feed that we should use for both npm and nuget -->
<add key="msft_consumption" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/msft_consumption/nuget/v3/index.json" />
<add key="msft_consumption" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/msft_consumption/nuget/v3/index.json" />
<!-- <add key="VS" value="https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json" /> -->
<!-- <add key="vs-impl" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl%40Local/nuget/v3/index.json" /> -->
<!-- <add key="vssdk" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json" /> -->

Expand Down
24 changes: 24 additions & 0 deletions Build/nuget.testdata.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<configuration>
<packageSources>
<clear />
<!-- This is the old private azure feed, leaving it commented here for reference -->
<!--<add key="PTVS_Packages" value="https://devdiv.pkgs.visualstudio.com/DevDiv/_packaging/PTVS_Packages/nuget/v3/index.json" />-->

<!-- This is the public feed that we should use for both npm and nuget -->
<!-- <add key="msft_consumption" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/msft_consumption/nuget/v3/index.json" /> -->
<add key="VS" value="https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json" />
<!-- <add key="vs-impl" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vs-impl%40Local/nuget/v3/index.json" /> -->
<!-- <add key="vssdk" value="https://pkgs.dev.azure.com/azure-public/vside/_packaging/vssdk/nuget/v3/index.json" /> -->

</packageSources>
<trustedSigners>
<repository name="nuget" serviceIndex="https://api.nuget.org/v3/index.json">
<owners>Microsoft;xunit;manuel.roemer;sharwell;jamesnk;aarnott;MarcoRossignoli;Thecentury;AndreyAkinshin;0xd4d;ericnewton76;jkeech;steve.dower</owners>
<certificate fingerprint="0e5f38f57dc1bcc806d8494f4f90fbcedd988b46760709cbeec6f4219aa6157d" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</repository>
<author name="Microsoft">
<certificate fingerprint="aa12da22a49bce7d5c1ae64cc1f3d892f150da76140f210abd2cbffca2c18a27" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
<certificate fingerprint="3f9001ea83c560d712c24cf213c3d312cb3bff51ee89435d3430bd06b5d0eece" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
</author>
</trustedSigners>
</configuration>
4 changes: 4 additions & 0 deletions Build/packages.testdata.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.DevDiv.Validation.TestPlatform.Settings.Tasks" version="1.0.1108" />
</packages>
4 changes: 4 additions & 0 deletions Build/templates/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ parameters:
- name: ptvsPackageVersion
type: string
default: $(Build.BuildNumber)
- name: skipSigning
type: boolean
default: false

steps:

Expand Down Expand Up @@ -57,4 +60,5 @@ steps:
/p:BuildNumber=${{ parameters.ptvsPackageVersion }}
/p:BUILD_BINARIESDIRECTORY=$(Build.BinariesDirectory)
/p:BUILD_STAGINGDIRECTORY=$(Build.StagingDirectory)
/p:SkipSigning=${{ parameters.skipSigning }}
/bl:$(Build.SourcesDirectory)\logs\BuildInstaller.binlog'
45 changes: 45 additions & 0 deletions Build/templates/publish_test_data.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
steps:

- task: NuGetToolInstaller@1
displayName: Install NuGet

- task: NuGetCommand@2
displayName: Restore runsettings build tasks
inputs:
command: restore
feedsToUse: config
restoreSolution: '$(Build.SourcesDirectory)/Build/packages.testdata.config'
restoreDirectory: '$(Build.SourcesDirectory)/packages'
nugetConfigPath: '$(Build.SourcesDirectory)/Build/nuget.testdata.config'

# Generate a runsettings file that points at the correct Test Store drop.
- task: MSBuild@1
displayName: 'Build PTVS.runsettingsproj'
inputs:
solution: '$(Build.SourcesDirectory)/Python/Tests/PTVS.runsettingsproj'
msbuildArguments: >
/p:PackagesPath=$(Build.SourcesDirectory)\packages
/p:TestStoreDropName=$(TestStoreDropName)

- task: PowerShell@2
displayName: 'Update default.runsettings from generated ptvs.runsettings'
inputs:
targetType: 'inline'
script: |
$ErrorActionPreference = 'Stop'

$source = "$(Build.SourcesDirectory)\Python\Tests\bin\RunSettings\ptvs.runsettings"
$dest = "$(Build.SourcesDirectory)\Python\Tests\TestData\ptvs.runsettings"

if (-not (Test-Path -LiteralPath $source)) {
throw "Expected generated runsettings file not found: $source"
}

Copy-Item -LiteralPath $source -Destination $dest -Force


# Compress just the test data
# Used in this release task to run tests: https://devdiv.visualstudio.com/DevDiv/_taskgroup/a7b18468-aab5-4be7-b718-02f85b0828c4
- task: ArchiveFiles@2
Expand All @@ -20,6 +58,13 @@ steps:
Contents: 'TestData.zip'
TargetFolder: '$(Build.ArtifactStagingDirectory)/TestDataFolder'

- task: CopyFiles@2
displayName: 'Copy ptvs.runsettings to subfolder'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/Python/Tests/TestData'
Contents: 'ptvs.runsettings'
TargetFolder: '$(Build.ArtifactStagingDirectory)/TestDataFolder'


# The Task 'PublishBuildArtifacts@1' has been converted to an output named 'Publish build artifact: TestData' in the templateContext section.
# The Task 'PublishBuildArtifacts@1' has been converted to an output named 'Publish build artifact: RunSettings' in the templateContext section.
7 changes: 5 additions & 2 deletions Python/PythonTools.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31211.46
# Visual Studio Version 18
VisualStudioVersion = 18.3.11227.31 main
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Product", "Product", "{C0C7AD6F-5E39-4D3F-A6B6-FD30713B0464}"
EndProject
Expand All @@ -16,6 +16,9 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestUtilities.UI", "..\Common\Tests\Utilities.UI\TestUtilities.UI.csproj", "{E8150EBC-6B62-40BF-BF91-1DC60149B530}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{3D21C7AC-6F9D-448C-8356-44EAFB2D14FC}"
ProjectSection(SolutionItems) = preProject
Tests\PTVS.runsettingsproj = Tests\PTVS.runsettingsproj
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Attacher", "Product\Attacher\Attacher.csproj", "{666A22BB-0CB5-4C08-A20F-E17450DA6573}"
EndProject
Expand Down
Loading