Files
pebrel/scripts/conformance/windows_arm64_module_path.ps1
kuddev 102b9dc58a release: finalize Pebrel 1.9.0 notes and drop the ARM64 diagnostic probes
Align the 1.9.0 notes and CHANGELOG entry with the 1.8.2 format (prefixed
bilingual entries), record the session-breaker fix and the sponsor page,
and date the entry to the release day. Remove the ARM64 diagnostics
workflow and its two probe scripts from the release tree; the CI workaround
script stays because the release workflow runs it.
2026-09-22 21:14:58 +08:00

25 lines
1.2 KiB
PowerShell

# Work around the windows-11-arm runner image: Windows PowerShell 5.1 there
# renders nothing (not even `Write-Output`) when its PSModulePath is the
# registry value alone, and recovers as soon as the PowerShell 7 module
# directories that the runner's pwsh step shell injects come first. Pebrel
# rebuilds child environments from the registry (the stock console host rule), so
# the injected entries never reach the default tab; putting them into the
# user-level registry value keeps the rebuild faithful and PS 5.1 alive.
# Evidence: environment-block replay and PSModulePath bisect on the ARM64
# runner, 2026-09-22.
[CmdletBinding()]
param()
$ErrorActionPreference = 'Stop'
$pwsh7 = @(
(Join-Path $HOME 'Documents\PowerShell\Modules'),
(Join-Path $env:ProgramFiles 'PowerShell\Modules'),
(Join-Path $env:ProgramFiles 'PowerShell\7\Modules')
)
$machine = [Environment]::GetEnvironmentVariable('PSModulePath', 'Machine')
$user = [Environment]::GetEnvironmentVariable('PSModulePath', 'User')
$entries = @($pwsh7) + @(($user, $machine) -join ';' -split ';' | Where-Object { $_ })
$value = ($entries | Select-Object -Unique) -join ';'
[Environment]::SetEnvironmentVariable('PSModulePath', $value, 'User')
"User PSModulePath: $value"