From 707edccf0387ba4a5c7966bd8cedb2e4ddf92f00 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin (Intel)" Date: Tue, 7 Jul 2026 12:58:03 -0700 Subject: [PATCH] ci: add a real-MSVC (cl.exe/nmake) build job Add a build-msvc job on windows-latest that uses ilammy/msvc-dev-cmd to set up the MSVC developer environment, builds NASM with 'nmake /f Mkfiles/msvc.mak', and smoke-tests the resulting nasm.exe/ ndisasm.exe by assembling and disassembling a tiny program and building a win64 object file. This is the first CI coverage of the MSVC build path (Mkfiles/msvc.mak + config/msvc.h), which previously had no automated verification. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/test.yml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d4068cc41..c3bf09378 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,3 +43,32 @@ jobs: name: travis-log path: travis.log if-no-files-found: warn + + build-msvc: + name: Build with MSVC (Windows) + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Set up MSVC developer environment + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: x64 + + - name: Build with nmake/cl.exe + shell: cmd + run: | + nmake /f Mkfiles\msvc.mak + + - name: Smoke-test the resulting binaries + shell: cmd + run: | + nasm.exe --version + ndisasm.exe --version + echo mov eax, 1 > smoke.asm + echo ret >> smoke.asm + nasm.exe -f bin smoke.asm -o smoke.bin + ndisasm.exe -b 64 smoke.bin + nasm.exe -f win64 smoke.asm -o smoke.obj