mirror of
git://code.qt.io/qt/qt5.git
synced 2026-07-20 13:39:58 +08:00
Add Run-Executable-With-Timeout, a wrapper around Run-Executable that takes a timeout in seconds as its first argument. Run-Executable gains an internal -TimeoutSeconds parameter (default 0 = no timeout, all existing callers unaffected) used by the new wrapper. Apply a generous timeout to the Notepad++ silent installer, which was observed hanging for ~14 hours and causing provisioning CANCELED failures on Windows 11 24H2 machines. Cache the process handle ($null = $p.Handle) immediately after Start-Process -PassThru. Without this, $p.ExitCode reads back as $null after the process exits, which made Run-Executable spuriously throw "Process <exe> exited with exit code " (blank) on successful runs. This race was observed in provisioning logs for certutil.exe in the certificate-updates step. Change-Id: Icc66b670a3d40d67d1b6251913a06dbffeffaec2 Reviewed-by: Elias Toivola <elias.toivola@qt.io> Reviewed-by: Simo Fält <simo.falt@qt.io>
48 lines
1.3 KiB
PowerShell
48 lines
1.3 KiB
PowerShell
# Copyright (C) 2017 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
|
|
. "$PSScriptRoot\helpers.ps1"
|
|
|
|
# This script will install Notepad++
|
|
|
|
$version = "8.6.5"
|
|
|
|
$cpu_arch = Get-CpuArchitecture
|
|
switch ($cpu_arch) {
|
|
arm64 {
|
|
$arch = ".arm64"
|
|
$sha1 = "eecb8a6b6ed3cb1e467d227b8b7751283c35434e"
|
|
Break
|
|
}
|
|
x64 {
|
|
$arch = ".x64"
|
|
$sha1 = "a0bf3fb15015bc1fbcb819d9a9c61f4762f4a10f"
|
|
Break
|
|
}
|
|
x86 {
|
|
$arch = ""
|
|
$sha1 = "ba940c6b526da1ce127f43b835b4d8c9d5c4b59c"
|
|
Break
|
|
}
|
|
default {
|
|
throw "Unknown architecture $cpu_arch"
|
|
}
|
|
}
|
|
|
|
$filename_exe = "npp." + $version + ".Installer" + $arch + ".exe"
|
|
$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/" + $filename_exe
|
|
$url_official = "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v" + $version + "/" + $filename_exe
|
|
$nppPackage = "C:\Windows\Temp\npp-$version.exe"
|
|
|
|
Download $url_official $url_cache $nppPackage
|
|
Verify-Checksum $nppPackage $sha1
|
|
Run-Executable-With-Timeout 1800 "$nppPackage" "/S"
|
|
|
|
Write-Host "Cleaning $nppPackage.."
|
|
Remove "$nppPackage"
|
|
|
|
Write-Output "Notepad++ = $version" >> ~\versions.txt
|
|
|
|
Write-Host "Disabling auto updates."
|
|
Rename-Item -Path "C:\Program Files\Notepad++\updater" -NewName "updater_disabled"
|