name: ci_unit_tests_windows
concurrency:
group: ci_unit_tests_windows-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches: ['**']
merge_group: {}
workflow_dispatch: {}
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
RUSTFLAGS: -D warnings
jobs:
ci_unit_tests_windows:
name: ci_unit_tests_windows
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.repository
runs-on: windows-2022
steps:
- name: Free up disk space
run: |
Remove-Item -Path "C:\Program Files\dotnet" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:\Program Files (x86)\Android" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$env:PROGRAMDATA\chocolatey" -Recurse -Force -ErrorAction SilentlyContinue
- uses: actions/checkout@v4
- name: Cache cargo target
if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref != 'refs/heads/develop' && github.ref != 'refs/heads/master' && !startsWith(github.ref, 'refs/heads/rc/'))
uses: actions/cache@v4
with:
path: target
key: ci-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
ci-${{ runner.os }}-cargo-
- name: install required tools
run: |
iwr -useb get.scoop.sh -outfile 'install-scoop.ps1'
.\install-scoop.ps1 -RunAsAdmin
echo "$env:USERPROFILE\scoop\shims" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "C:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
echo "${{ github.workspace }}\devtools\windows" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
scoop install git
scoop bucket add extras
scoop install llvm
- name: Install nextest-rs/nextest
uses: taiki-e/install-action@nextest
- name: Run unit tests
run: make test
shell: bash
- name: Disk usage summary
if: always() && (github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref != 'refs/heads/develop' && github.ref != 'refs/heads/master' && !startsWith(github.ref, 'refs/heads/rc/')))
run: |
echo "=== Disk Space Summary ==="
Get-PSDrive -PSProvider FileSystem | Format-Table
echo ""
echo "=== Target Directory Usage ==="
if (Test-Path target) {
Get-ChildItem target -Recurse | Measure-Object -Property Length -Sum | Select-Object @{Name="Size(GB)";Expression={"{0:N2}" -f ($_.Sum / 1GB)}}
} else {
echo "target/ directory not found"
}
shell: pwsh