Windows self-hosted runners
Windows self-hosted runners for GitHub Actions are available since v2.4.0.
They start more slowly than Linux runners (~2min currently), and are not yet 1-1 compatible with the official GitHub Actions Windows runners. But we will get there.
RunsOn Windows runners are ~10x cheaper than the official GitHub Actions Windows runners (m7i family).
To use them, you need to reference the Windows 2022 base image and an instance family that supports Windows:
jobs: build: runs-on: - runs-on=${{ github.run_id }} - image=windows22-base-x64 - family=m7i - ...other labels...
Example
name: Windows
on: workflow_dispatch:
jobs: default: runs-on: - runs-on=${{ github.run_id }} - image=windows22-base-x64 - family=m7i steps: - name: Checkout uses: actions/checkout@v4 - name: Check current dir and env variables run: | dir . echo $env:USERNAME echo $env:RUNS_ON_RUNNER_NAME - name: Logs run: | Get-Content -Path "C:\runs-on\output.log" - name: Users run: | Get-LocalUser | Format-Table -AutoSize Name,Enabled,PasswordLastSet
Inspecting agent logs
On Windows runners, the output of the RunsOn agent is stored in the C:\runs-on\output.log
file.
Limitations
- Windows runners are not yet 1-1 compatible with the official GitHub Actions Windows runners.
- Windows runners are quite slow to boot (~2min currently).
preinstall
in custom images is not supported yet.