Fix : widows giea 1
Some checks failed
release / build (push) Successful in 17s
release / verify-windows (push) Failing after 1m2s

This commit is contained in:
jeanotx32
2026-08-11 22:40:59 +02:00
parent 1dd3959f29
commit c9ab3dafb4
2 changed files with 26 additions and 6 deletions

View File

@@ -169,12 +169,26 @@ jobs:
with:
node-version: '22'
# Deux pièges de Windows PowerShell 5.1 sont à l'œuvre dans les étapes
# `shell: powershell` ci-dessous, et valent d'être connus avant de les
# modifier :
#
# 1. Les guillemets doubles imbriqués dans un argument passé à un
# exécutable natif sont perdus. `node -p 'x.split(".")[0]'` arrive
# donc comme `x.split(.)[0]` et lève une SyntaxError. On lit ici
# `node --version` et on découpe côté PowerShell : rien ne traverse
# cette frontière.
# 2. Le runner écrit ce bloc dans un .ps1 sans BOM, que PowerShell 5.1
# relit dans la page de codes ANSI. Tout caractère non-ASCII y devient
# illisible (« trouvé » s'affichait « trouvǸ »). Les chaînes affichées
# restent donc en ASCII — les commentaires, eux, ne sont jamais rendus.
- name: Confirmer la version de Node
shell: powershell
run: |
$major = [int](& node -p 'process.versions.node.split(".")[0]')
Write-Host "Node $(& node -v)"
if ($major -lt 22) { throw "Node 22+ attendu, trouvé $major" }
$raw = (& node --version)
if ($raw -match '^v(\d+)\.') { $major = [int]$Matches[1] } else { $major = 0 }
Write-Host "Node $raw"
if ($major -lt 22) { throw "Node 22+ requis, version lue : $raw" }
# Le script d'installation Windows n'est exécutable que sur Windows :
# ce contrôle de syntaxe est la seule barrière avant qu'il n'atterrisse
@@ -205,7 +219,7 @@ jobs:
$auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($pair))
Invoke-WebRequest -Uri $url -Headers @{ Authorization = "Basic $auth" } `
-OutFile agent.cjs -UseBasicParsing
Write-Host "Bundle récupéré : $((Get-Item agent.cjs).Length) octets"
Write-Host "Bundle : $((Get-Item agent.cjs).Length) octets"
- name: Exécuter le diagnostic
shell: powershell
@@ -221,7 +235,7 @@ jobs:
# On valide que le diagnostic s'est déroulé, pas son verdict.
foreach ($marker in @('obs-websocket', 'powershell')) {
if ($out -notmatch [regex]::Escape($marker)) {
throw "Diagnostic incomplet : « $marker » absent de la sortie"
throw "Diagnostic incomplet : marqueur $marker absent de la sortie"
}
}
Write-Host 'Bundle fonctionnel sous Windows.'