Skip to content

Commit

Permalink
Try to disable VSIX update service or failfast (#92028)
Browse files Browse the repository at this point in the history
  • Loading branch information
hoyosjs committed Sep 13, 2023
1 parent d34a059 commit f490d66
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 0 deletions.
3 changes: 3 additions & 0 deletions eng/pipelines/common/global-build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@ jobs:
- ${{ each variable in parameters.variables }}:
- ${{ variable }}
steps:
- ${{ if eq(parameters.osGroup, 'windows') }}:
- template: /eng/pipelines/common/templates/disable-vsupdate-or-failfast.yml

- checkout: self
clean: true
# If running in source build mode, a git stash will be used for the inner clone. Avoid setting a fetch depth,
Expand Down
38 changes: 38 additions & 0 deletions eng/pipelines/common/templates/disable-vsupdate-or-failfast.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# This script tries to disable VSIXAutoUpdate. In case an update is seen as already running,
# it will exit with an error.
steps:
- powershell: |
schtasks /change /tn "\Microsoft\VisualStudio\VSIX Auto Update" /disable
$vswhere = "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe"
if (-not (Test-Path -Path "$vswhere" -PathType Leaf))
{
Write-Error "Couldn't locate vswhere at $vswhere"
exit 1
}
$vsdir = &"$vswhere" -latest -prerelease -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
$vsregedit = "$vsdir\Common7\IDE\VsRegEdit.exe"
if (-not (Test-Path -Path "$vsregedit" ))
{
Write-Error "VSWhere returned path: $vsdir, but regedit $vsregedit doesn't exist."
exit 1
}
Write-Output "VSWhere returned path: $vsdir, using regedit $vsregedit"
Write-Output "Disabling updates through VS Registry:"
&"$vsdir\Common7\IDE\VsRegEdit.exe" set local HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword 0
&"$vsdir\Common7\IDE\VsRegEdit.exe" read local HKCU ExtensionManager AutomaticallyCheckForUpdates2Override dword
$processes = Get-Process -Name VSIXAutoUpdate -ErrorAction SilentlyContinue
if ($processes -ne $null -and $processes.Count -gt 0)
{
Write-Error "VSIXAutoUpdate has already spawned. Failfast to allow retry"
exit 1
}
displayName: Disable VSIX updates or fail-fast
condition: always()
3 changes: 3 additions & 0 deletions eng/pipelines/common/templates/runtimes/xplat-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ jobs:
- ${{insert}}: ${{ variable }}

steps:
- ${{ if eq(parameters.osGroup, 'windows') }}:
- template: /eng/pipelines/common/templates/disable-vsupdate-or-failfast.yml

- checkout: self
clean: true
fetchDepth: $(checkoutFetchDepth)
Expand Down
2 changes: 2 additions & 0 deletions eng/pipelines/installer/jobs/build-job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,8 @@ jobs:
parameters.archType,
parameters.liveLibrariesBuildConfig) }}
steps:
- ${{ if eq(parameters.osGroup, 'windows') }}:
- template: /eng/pipelines/common/templates/disable-vsupdate-or-failfast.yml
- checkout: self
clean: true
fetchDepth: $(checkoutFetchDepth)
Expand Down

0 comments on commit f490d66

Please sign in to comment.