test_windows.yml (2212B)
1 name: windows 2 on: 3 workflow_call: 4 inputs: 5 build_flags: 6 type: string 7 functionaltest_timeout: 8 default: 20 9 type: number 10 workflow_dispatch: 11 12 jobs: 13 windows: 14 runs-on: windows-2025 15 timeout-minutes: 45 16 strategy: 17 fail-fast: false 18 matrix: 19 test: [functional, old] 20 steps: 21 - uses: actions/checkout@v6 22 - uses: ./.github/actions/setup 23 24 - name: Build deps 25 run: | 26 cmake -S cmake.deps -B .deps -G Ninja -D CMAKE_BUILD_TYPE='RelWithDebInfo' 27 cmake --build .deps 28 29 - name: Build 30 run: | 31 cmake --preset ci -D CMAKE_BUILD_TYPE='RelWithDebInfo' ${{ inputs.build_flags }} 32 cmake --build build 33 34 - name: Install test deps 35 run: | 36 $PSNativeCommandArgumentPassing = 'Legacy' 37 38 & build\bin\nvim.exe "--version" 39 40 # Ensure that the "win32" feature is set. 41 & build\bin\nvim -u NONE --headless -c 'exe !has(\"win32\").\"cq\"' 42 43 python -m pip install pynvim 44 # Sanity check 45 python -c "import pynvim; print(str(pynvim))" 46 47 node --version 48 npm.cmd --version 49 50 npm.cmd install -g neovim 51 Get-Command -CommandType Application neovim-node-host.cmd 52 npm.cmd link neovim 53 54 - if: ${{ matrix.test == 'functional' }} 55 name: functionaltest 56 timeout-minutes: ${{ inputs.functionaltest_timeout }} 57 env: 58 # With parallel tests, use shorter timeout for a single group. 59 TEST_TIMEOUT: 600 60 run: | 61 $ErrorActionPreference = 'Continue' 62 cmake --build build --target functionaltest_parallel -j 2 -- -k 0 63 $exitCode = $LASTEXITCODE 64 cmake --build build --target functionaltest_summary 65 exit $exitCode 66 67 - if: ${{ matrix.test == 'old' }} 68 uses: msys2/setup-msys2@v2 69 with: 70 update: true 71 install: unzip 72 pacboy: >- 73 make:p gcc:p diffutils:p 74 release: false 75 76 - if: ${{ matrix.test == 'old' }} 77 name: oldtest 78 shell: msys2 {0} 79 run: | 80 cd test/old/testdir 81 mingw32-make VERBOSE=1