CI(windows): use *>&1 to capture PS Information stream (Write-Host) into install.log

setup.ps1 emits the "prebuilt installed and validated" / "prebuilt
up to date and validated" markers via the `step` function, which
calls Write-Host. In PowerShell 5+, Write-Host writes to the
Information stream, NOT stdout. Plain `2>&1 | Tee-Object` only
redirects stderr -> stdout, so Information-stream output flows to
the host (visible in the GitHub Actions log) but never lands in
logs/install.log. The post-step grep asserter then fails with
"no Windows prebuilt llama.cpp marker in install.log" even though
the prebuilt was installed correctly.

Switch to `*>&1` (the wildcard "all streams" redirect) so
Tee-Object captures Information stream too. Also silence the
ProgressPreference noise that fills install.log with progress-bar
ANSI sequences.
This commit is contained in:
Daniel Han 2026-05-07 10:44:43 +00:00
commit 54cd084b6a
4 changed files with 35 additions and 6 deletions

View file

@ -84,7 +84,11 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
New-Item -ItemType Directory -Force -Path logs | Out-Null
& ./install.ps1 --local --no-torch 2>&1 | Tee-Object -FilePath logs/install.log
# *>&1 captures Write-Host (Information stream) output;
# plain 2>&1 does not. setup.ps1 emits "prebuilt installed
# and validated" via Write-Host, and we grep for that.
$ProgressPreference = 'SilentlyContinue'
& ./install.ps1 --local --no-torch *>&1 | Tee-Object -FilePath logs/install.log
- name: Assert install.ps1 used the Windows llama.cpp prebuilt
run: |

View file

@ -94,7 +94,11 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
New-Item -ItemType Directory -Force -Path logs | Out-Null
& ./install.ps1 --local --no-torch 2>&1 | Tee-Object -FilePath logs/install.log
# *>&1 captures Write-Host (Information stream) output;
# plain 2>&1 does not. setup.ps1 emits "prebuilt installed
# and validated" via Write-Host, and we grep for that.
$ProgressPreference = 'SilentlyContinue'
& ./install.ps1 --local --no-torch *>&1 | Tee-Object -FilePath logs/install.log
- name: Assert install.ps1 used the Windows llama.cpp prebuilt
run: |
@ -329,7 +333,11 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
New-Item -ItemType Directory -Force -Path logs | Out-Null
& ./install.ps1 --local --no-torch 2>&1 | Tee-Object -FilePath logs/install.log
# *>&1 captures Write-Host (Information stream) output;
# plain 2>&1 does not. setup.ps1 emits "prebuilt installed
# and validated" via Write-Host, and we grep for that.
$ProgressPreference = 'SilentlyContinue'
& ./install.ps1 --local --no-torch *>&1 | Tee-Object -FilePath logs/install.log
- name: Assert install.ps1 used the Windows llama.cpp prebuilt
run: |
@ -655,7 +663,11 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
New-Item -ItemType Directory -Force -Path logs | Out-Null
& ./install.ps1 --local --no-torch 2>&1 | Tee-Object -FilePath logs/install.log
# *>&1 captures Write-Host (Information stream) output;
# plain 2>&1 does not. setup.ps1 emits "prebuilt installed
# and validated" via Write-Host, and we grep for that.
$ProgressPreference = 'SilentlyContinue'
& ./install.ps1 --local --no-torch *>&1 | Tee-Object -FilePath logs/install.log
- name: Assert install.ps1 used the Windows llama.cpp prebuilt
run: |

View file

@ -97,7 +97,16 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
New-Item -ItemType Directory -Force -Path logs | Out-Null
& ./install.ps1 --local --no-torch 2>&1 | Tee-Object -FilePath logs/install.log
# *>&1 redirects ALL PowerShell streams (stdout, stderr,
# warning, verbose, debug, information) into the success
# stream so Tee-Object captures everything. install.ps1
# and setup.ps1 emit step/substep markers via Write-Host
# which lands on the Information stream (PS 5+); without
# the wildcard redirect, those markers (including
# "prebuilt installed and validated") never reach
# logs/install.log and the post-step grep asserter fails.
$ProgressPreference = 'SilentlyContinue'
& ./install.ps1 --local --no-torch *>&1 | Tee-Object -FilePath logs/install.log
- name: Assert install.ps1 used the Windows llama.cpp prebuilt
run: |

View file

@ -79,7 +79,11 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
New-Item -ItemType Directory -Force -Path logs | Out-Null
& ./install.ps1 --local --no-torch 2>&1 | Tee-Object -FilePath logs/install.log
# *>&1 captures Write-Host (Information stream) output;
# plain 2>&1 does not. setup.ps1 emits "prebuilt installed
# and validated" via Write-Host, and we grep for that.
$ProgressPreference = 'SilentlyContinue'
& ./install.ps1 --local --no-torch *>&1 | Tee-Object -FilePath logs/install.log
- name: Assert install.ps1 used the Windows llama.cpp prebuilt
run: |