Skip to content

tests MSVC

tests MSVC #1671

Workflow file for this run

# Warning: this name must stay in sync with the badges referenced in the README
name: 'tests MSVC'
on:
push:
branches:
- 'main'
pull_request:
schedule:
- cron: "0 0 * * 6" # Run every Saturday at midnight
jobs:
msvc:
runs-on: windows-latest
env:
VULKAN_SDK_VERSION: 1.3.250.1
strategy:
fail-fast: false
matrix:
include:
- build_backend: ninja
- build_backend: vs
defaults:
run:
shell: pwsh
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Install dependencies
run: |
iwr https://sdk.lunarg.com/sdk/download/${{env.VULKAN_SDK_VERSION}}/windows/VulkanSDK-${{env.VULKAN_SDK_VERSION}}-Installer.exe -OutFile VulkanSDK-Installer.exe
.\VulkanSDK-Installer.exe --accept-licenses --default-answer --confirm-command install | Out-Null
iwr https://sdk.lunarg.com/sdk/download/${{env.VULKAN_SDK_VERSION}}/windows/VulkanRT-${{env.VULKAN_SDK_VERSION}}-Installer.exe -OutFile VulkanRT-Installer.exe
.\VulkanRT-Installer.exe /S | Out-Null
- name: Build (${{matrix.build_backend}})
run: |
# Disable the Vulkan backend when using the vs backend to workaround
# the following meson error (specific to the CI setup which uses
# resources from multiple drives (C:\ and D:\)):
# ValueError: path is on mount 'C:', start on mount 'D:'
# ERROR: Unhandled python exception
# This is a Meson bug and should be reported!
if ("${{matrix.build_backend}}" -eq "ninja") {
$Env:VULKAN_SDK = "C:/VulkanSDK/${{env.VULKAN_SDK_VERSION}}"
}
.\scripts\msvc-env.ps1
python.exe .\configure.py --debug-opts gpu_capture --build-backend ${{matrix.build_backend}}
nmake
- name: Python import and dylib runtime test
run: |
.\venv\Scripts\ngli-activate.ps1
"Shared libraries required by the nopegl library:"
bash -l -c "ldd venv/Scripts/nopegl-0.dll"
"Shared libraries required by ngl-python:"
bash -l -c "ldd venv/Scripts/ngl-python.exe"
ngl-python.exe -h
"Shared libraries required by the Cython binding:"
bash -l -c "ldd pynopegl/_pynopegl.*.pyd"
python.exe -c "import pynopegl, pynopegl_utils"