Skip to content

ci(whisper-stt): drop the msvc-dev-cmd step the Windows build never used - #641

Open
My-Denia wants to merge 1 commit into
getopenscreen:mainfrom
My-Denia:ci/317-drop-msvc-dev-cmd
Open

ci(whisper-stt): drop the msvc-dev-cmd step the Windows build never used#641
My-Denia wants to merge 1 commit into
getopenscreen:mainfrom
My-Denia:ci/317-drop-msvc-dev-cmd

Conversation

@My-Denia

@My-Denia My-Denia commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

Problem. ilammy/msvc-dev-cmd@v1 in build-whisper-stt.yml is the last node20 action in the repo, and there is nothing to bump it to: upstream's last push to master is from 2024-03-30 and its action.yml still declares using: node20. Every Windows run of this workflow logs the deprecation warning, and once GitHub drops the shim the Windows whisper-stt-server build stops at that step (#317).

What the step actually did. #317 lists three replacements on the assumption that the step feeds a Ninja build. It does not. scripts/build-whisper-stt.sh calls cmake without -G, so on Windows CMake picks its default generator, and the Windows job of the latest upstream run (branch claude/drop-dead-autotranscribe, 2026-09-10; its workflow file and build script are identical to main's) shows which one:

-- Building for: Visual Studio 18 2026
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/18/Enterprise/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64/cl.exe - skipped

The Visual Studio generator locates the instance through the Visual Studio installer and builds with MSBuild, whose VC targets set the compiler environment themselves. Nothing reads the PATH/INCLUDE/LIB that vcvarsall exported. The other Windows-only step, vcpkg installing spirv-headers, does its own toolchain detection too (Compiler found: .../Hostx64/x64/cl.exe in its output). So the issue's option 2, building with the VS generator, is the state the workflow has been in all along, and that leaves nothing for a vcvars step to do.

Fix. Remove the step. A comment at the spot says why there is none, and when one would become necessary again: a move to Ninja, at which point scripts/msvcEnv.mjs already has the vcvarsall discovery.

Two things the vcvars environment could have influenced, checked:

  • Instance selection. With VS180COMNTOOLS set (which vcvarsall does), CMake uses that instance; without it, per the CMAKE_GENERATOR_INSTANCE docs, "if more than one VS instance is installed we do not define which one is chosen by default". windows-latest ships exactly one, Visual Studio Enterprise 2026 (image README), so the choice is the same either way. Should GitHub ever add a second instance, it would show up as a different compiler path in the configure log, not as a silent miscompile.
  • Host tools. The docs for the Visual Studio 18 2026 generator (under cmake-generators(7)): "By default this generator uses the 64-bit variant on x64 hosts". Hostx64/x64/cl.exe does not come from the action's arch: x64.

Related issue

Fixes #317

Type of change

  • Bug fix
  • Feature
  • Enhancement
  • Documentation
  • Refactor / maintenance
  • Performance
  • Security

Release impact

  • Patch
  • Minor
  • Major / breaking change
  • No release note needed

Desktop impact

  • Windows
  • macOS
  • Linux
  • Installer / packaging
  • Not platform-specific

CI only: the Windows leg of build-whisper-stt.yml. The produced binary is unchanged (same generator, same compiler).

Screenshots / video

n/a

Testing

This workflow's push trigger covers every branch and its paths filter includes the workflow file, so the change ran for real on my fork, at this exact commit:

  • Push run: every leg green, Windows staged and uploaded whisper-stt-win32-x64.tar.gz. The Windows log has no Node.js 20 is deprecated warning and no Setup MSVC step. It did restore the whisper build-tree cache, though, so CMake reused a persisted instance choice there.
  • Cold run: workflow_dispatch after deleting the fork's whisper-stt-build-win32-x64-* caches, so CMake had to configure from scratch with no vcvars environment. Its Windows log reads Cache not found for input keys: whisper-stt-build-win32-x64-…, then -- Building for: Visual Studio 18 2026 and The C compiler identification is MSVC 19.51.36256.0 at the same …/VC/Tools/MSVC/14.51.36231/bin/Hostx64/x64/cl.exe path as the upstream run above, and vcpkg reports the same Compiler found: path. Every leg green again; the Windows artifact is within a few hundred bytes of the one that upstream run produced (gzip timestamps).

grep -rn msvc-dev-cmd finds no other use of the action in the repo.

Summary by CodeRabbit

  • Chores
    • Updated the Windows build process to use CMake and MSBuild for compiler discovery.
    • Streamlined compiler setup during dependency installation.

ilammy/msvc-dev-cmd was the last node20 action in the repo, and its upstream
stopped in 2024, so there is no newer major to bump to (getopenscreen#317). The issue
assumed the step fed a Ninja build, but scripts/build-whisper-stt.sh calls
cmake without -G: on Windows CMake picks the Visual Studio generator (the job
log reads "Building for: Visual Studio 18 2026"), locates MSVC through the
Visual Studio installer and builds with MSBuild, none of which reads the
vcvarsall environment the action exported. vcpkg finds the compiler on its
own the same way, and windows-latest ships a single VS instance, so there is
nothing for vcvars to disambiguate.

Remove the step instead of replacing it, and leave a comment at the spot
saying why there is none, and when one would become necessary again (a move
to Ninja).
Copilot AI lite review requested due to automatic review settings September 10, 2026 17:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 5411fe78-7cc4-4d45-a7d0-d20486575e85

📥 Commits

Reviewing files that changed from the base of the PR and between fbe461e and 3b5f924.

📒 Files selected for processing (1)
  • .github/workflows/build-whisper-stt.yml

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The Windows Whisper STT workflow removes ilammy/msvc-dev-cmd@v1. CMake’s Visual Studio generator, MSBuild, and vcpkg now provide compiler discovery.

Changes

Windows build setup

Layer / File(s) Summary
Remove dedicated MSVC setup
.github/workflows/build-whisper-stt.yml
The workflow removes the ilammy/msvc-dev-cmd@v1 step and documents the CMake, MSBuild, and vcpkg compiler discovery path.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Severity of issue fixed: Low

Merge Risk: ⚪ Minimal · up to 3b5f9

This removes an obsolete Windows setup action without changing compiler selection or produced artifacts; the supplied builds show no merge-blocking impact.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the primary change: removing the unused MSVC setup action from the Windows Whisper STT build.
Description check ✅ Passed The description follows the repository template and includes the change summary, related issue, change type, release and platform impact, screenshots note, and detailed testing evidence.
Linked Issues check ✅ Passed The pull request satisfies issue #317 by removing the abandoned Node 20 action, documenting why MSVC environment setup is unnecessary with the Visual Studio generator, and validating warm-cache and co…
Out of Scope Changes check ✅ Passed The changes are limited to the Windows Whisper STT workflow and directly support issue #317. No unrelated code or configuration changes are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci: ilammy/msvc-dev-cmd is abandoned and is the last node20 action

2 participants