# One-shot provisioning of the WDK + cargo-wdk onto the persistent self-hosted windows-amd64 runner, so
# the all-Rust UMDF drivers can build there (design/windows-host-rewrite.md, M0). The runner has the base
# Windows SDK + MSVC + LLVM + Rust but NOT the WDK (no km/wdf/iddcx headers) or cargo-wdk.
#
# Dispatch manually (workflow_dispatch). Idempotent: re-running is a near no-op once provisioned. The
# install persists on the runner (real box, not an ephemeral container), so this runs once, not per build.
name: windows-drivers-provision

on:
  workflow_dispatch:
  push:
    branches: [main]
    paths:
      - 'scripts/ci/provision-windows-wdk.ps1'
      - '.gitea/workflows/windows-drivers-provision.yml'

jobs:
  provision:
    runs-on: windows-amd64
    timeout-minutes: 60
    defaults:
      run:
        shell: pwsh
    steps:
      - uses: actions/checkout@v4
      - name: Install WDK + cargo-wdk on the runner
        run: ./scripts/ci/provision-windows-wdk.ps1
