name: windows

on:
  push:
    branches:
      - 'master'
      # Release branches
      - '1.*'
    paths:
      - 'mesonbuild/**'
      - 'test cases/**'
      - 'unittests/**'
      - '.github/workflows/windows.yml'
      - 'ci/run.ps1'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'
  pull_request:
    paths:
      - 'mesonbuild/**'
      - 'test cases/**'
      - 'unittests/**'
      - '.github/workflows/windows.yml'
      - 'ci/run.ps1'
      - 'run_project_tests.py'
      - 'run_tests.py'
      - 'run_unittests.py'

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
  cancel-in-progress: true

jobs:
  vs2022:
    runs-on: windows-2022
    timeout-minutes: 120
    name: ${{ matrix.name }}

    strategy:
      fail-fast: false
      matrix:
        include:
          - name: vc2022x64vs
            arch: x64
            compiler: msvc2022
            backend: vs2022
            # mysteriously, several tests fail because vs cannot find
            # executables such as cmd.exe ???
            ifort: false
          - name: vc2022arm64ninjacross
            arch: amd64_arm64
            compiler: msvc2022
            backend: ninja
            extraargs: --cross arm64cl.txt --cross-only
            # ifort doesn't support arm64
            ifort: false

    steps:
      - uses: actions/checkout@v6

      - name: Setup Python
        uses: actions/setup-python@v6
        with:
          python-version: '3.10'

      - name: Setup MSVC
        uses: ilammy/msvc-dev-cmd@v1
        with:
          arch: ${{ matrix.arch }}

      - name: Install PyPy
        if: matrix.arch == 'x64'
        shell: pwsh
        run: |
          $pypyUrl = "https://downloads.python.org/pypy/pypy3.8-v7.3.9-win64.zip"
          $pypyZip = "${{ runner.temp }}\pypy38.zip"
          $pypyDir = "${{ runner.temp }}\pypy38"
          Invoke-WebRequest -Uri $pypyUrl -OutFile $pypyZip
          Expand-Archive $pypyZip -DestinationPath $pypyDir
          $pypyPath = "$pypyDir\pypy3.8-v7.3.9-win64"
          "PYPY_PATH=$pypyPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
          & "$pypyPath\pypy3.exe" -m ensurepip

      - name: Install Python 2.7
        if: matrix.arch == 'x64'
        shell: pwsh
        run: |
          $python27Url = "https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi"
          $python27Msi = "${{ runner.temp }}\python27.msi"
          Invoke-WebRequest -Uri $python27Url -OutFile $python27Msi
          Start-Process msiexec.exe -Wait -ArgumentList "/I $python27Msi /quiet"

      - name: Install pkg-config
        shell: pwsh
        run: |
          $pkgconfigDir = "${{ runner.temp }}\pkgconfig"
          New-Item -ItemType Directory -Path $pkgconfigDir -Force
          Invoke-WebRequest -Uri "https://raw.githubusercontent.com/mesonbuild/cidata/refs/heads/master/win32/pkg-config.exe" -OutFile "$pkgconfigDir\pkg-config.exe"
          echo "$pkgconfigDir" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

      - name: Install Chocolatey Dependencies
        shell: pwsh
        run: choco install -y nasm winflexbison3

      - name: Setup Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable-x86_64-pc-windows-msvc
          components: clippy

      - name: Add Rust library path (Windows)
        run: |
          $rustlib = (rustc --print sysroot) + "\bin"
          echo $rustlib | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
        shell: pwsh

      - name: Install dependencies
        shell: pwsh
        run: |
          python -m pip --disable-pip-version-check install --upgrade pefile pytest-xdist pytest-subtests fastjsonschema cython

      - name: Run tests
        env:
          MESON_CI_JOBNAME: windows-${{ matrix.name }}
        shell: pwsh
        run: |
          # Remove Chocolatey, MinGW, Strawberry Perl from path
          $env:Path = ($env:Path.Split(';') | Where-Object { $_ -notmatch 'mingw|Strawberry|Chocolatey|PostgreSQL' }) -join ';'

          if ( '${{ matrix.arch }}' -eq 'x64' ) {
            $env:Path = $env:Path + ";$env:PYPY_PATH"
          }

          echo "=== PATH BEGIN ==="
          echo ($env:Path).Replace(';',"`n")
          echo "=== PATH END ==="

          $progs = @("python","ninja","pkg-config","cl","rc","link","pypy3","ifort")
          foreach ($prog in $progs) {
            echo ""
            echo "Locating ${prog}:"
            where.exe $prog
          }

          echo ""
          echo "Ninja / MSBuild version:"
          if ($env:backend -eq 'ninja') {
            ninja --version
          } else {
            MSBuild /version
          }

          echo ""
          echo "Python version:"
          python --version

          echo "=== Running tests ==="
          python 2>&1 run_tests.py --backend "${{ matrix.backend }}" ${{ matrix.extraargs }}
