Skip to content

Build Windows (Full, VS MSBuild) #54

Build Windows (Full, VS MSBuild)

Build Windows (Full, VS MSBuild) #54

name: Build Windows (Full, VS MSBuild)
# Desktop-MSBuild fidelity check: builds Stride.slnx the way Visual Studio does —
# .NET Framework MSBuild engine, separate restore (no dotnet-build sugar), VS dev
# environment so VCINSTALLDIR selects the MSVC native build mode (the
# WindowsDesktop.vcxproj link path VS users get with the C++ workload). Everything
# else in CI uses dotnet build (core MSBuild), so without this job the engine that
# all VS users run would be exercised only at release time.
on:
schedule:
- cron: '52 4 * * *'
workflow_dispatch:
inputs:
build-type:
description: Build Configuration
default: Debug
type: choice
options:
- Debug
- Release
pull_request:
# Build-logic paths only: the places engine-compat regressions actually come from.
paths:
- 'sources/sdk/**'
- 'sources/targets/**'
- 'sources/native/**'
- '.github/workflows/build-windows-full-msbuild.yml'
concurrency:
group: build-windows-full-msbuild-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
Windows-MSBuild:
name: Windows Full (VS MSBuild, ${{ github.event.inputs.build-type || 'Debug' }})
if: github.event_name != 'pull_request' || github.event.pull_request.draft != true
runs-on: windows-2025-vs2026
timeout-minutes: 60
steps:
- uses: actions/checkout@v7
with:
lfs: true
submodules: true
# VsDevCmd environment (VCINSTALLDIR etc.), exported for the following steps.
- uses: ilammy/msvc-dev-cmd@v1
- name: Restore
# VS restores via its NuGet integration before building; bare /t:Restore is the
# CLI equivalent. Same properties as Build so the TFM graph matches.
run: |
msbuild build\Stride.slnx `
/t:Restore `
/m /nr:false /v:m /p:WarningLevel=0 `
/p:Configuration=${{ github.event.inputs.build-type || 'Debug' }} `
/p:Platform="Any CPU" `
/p:StridePlatforms=Windows `
/p:StrideGraphicsApiDependentBuildAll=true `
/p:StrideSkipUnitTests=true `
/p:StrideSkipAutoPack=true
- name: Build
run: |
msbuild build\Stride.slnx `
/m /nr:false /v:m /p:WarningLevel=0 `
/p:Configuration=${{ github.event.inputs.build-type || 'Debug' }} `
/p:Platform="Any CPU" `
/p:StridePlatforms=Windows `
/p:StrideGraphicsApiDependentBuildAll=true `
/p:StrideSkipUnitTests=true `
/p:StrideSkipAutoPack=true