1515 name : Python
1616 runs-on : ${{ matrix.os }}
1717 strategy :
18+ fail-fast : false
1819 matrix :
1920 python : [ "3.10", 3.13 ]
2021 os : [ macos-latest, ubuntu-24.04, windows-latest ]
@@ -32,14 +33,10 @@ jobs:
3233 with :
3334 submodules : true
3435
35- - name : Install Conda (needed for GSL)
36- uses : conda-incubator /setup-miniconda@v3.1.1
36+ - name : Set up Python 3.10
37+ uses : actions /setup-python@v5.4.0
3738 with :
38- activate-environment : anaconda-client-env
39- python-version : ${{ matrix.python }}
40- channels : conda-forge, anaconda
41- channel-priority : strict
42- auto-update-conda : true
39+ python-version : " ${{ matrix.python }}"
4340
4441 - name : Fix windows symlinks
4542 # This is horrible, but the "git config core.symlinks true" didn't work.
@@ -48,36 +45,47 @@ jobs:
4845 rm lwt_interface
4946 cp -r --dereference git-submodules/tskit/python/lwt_interface ./lwt_interface
5047
51- - name : Fix windows .profile
52- if : steps.cache.outputs.cache-hit != 'true' && matrix.os == 'windows-latest'
48+ - name : Install GSL (macOS)
49+ if : matrix.os == 'macos-latest'
50+ run : brew install gsl
51+
52+ - name : Install GSL (Windows)
53+ if : matrix.os == 'windows-latest'
5354 run : |
54- cp ~/.bash_profile ~/.profile
55-
56- - name : Install GSL
57- if : steps.cache.outputs.cache-hit != 'true'
58- shell : bash -l {0} # We need a login shell to get conda
59- run : conda install gsl
55+ vcpkg install gsl:x64-windows
56+ # Add GSL DLL directory to PATH for runtime
57+ $vcpkgRoot = $env:VCPKG_INSTALLATION_ROOT
58+ if (-not $vcpkgRoot) { $vcpkgRoot = "C:\vcpkg" }
59+ $gslBinPath = Join-Path $vcpkgRoot "installed\x64-windows\bin"
60+ echo "$gslBinPath" >> $env:GITHUB_PATH
61+ Write-Output "Added to PATH: $gslBinPath"
62+ shell : powershell
6063
61- - name : Install uv
62- uses : astral-sh/setup-uv@v6
63- with :
64- version : " 0.8.15"
64+ - name : Install GSL (Ubuntu)
65+ if : matrix.os == 'ubuntu-24.04'
66+ run : sudo apt-get update && sudo apt-get install -y libgsl-dev
6567
6668 - name : Install pip deps
67- shell : bash -l {0}
6869 run : |
69- uv pip install -r pyproject.toml --extra test
70+ pip install uv
71+ uv pip install --system -r pyproject.toml --extra test
7072
71- - name : Build module
72- env :
73- MSP_CONDA_PREFIX : c:\Miniconda\envs\anaconda-client-env
73+ - name : Build module and run tests
74+ if : matrix.os != 'windows-latest'
7475 run : |
75- source ~/.profile
76- conda activate anaconda-client-env
7776 python setup.py build_ext --inplace
77+ pytest -xvs -n0
7878
79- - name : Run tests
79+ - name : Build wheel and run tests
80+ if : matrix.os == 'windows-latest'
81+ shell : powershell
8082 run : |
81- source ~/.profile
82- conda activate anaconda-client-env
83- pytest -xvs -n0
83+ python -m build --wheel
84+ $vcpkgRoot = $env:VCPKG_INSTALLATION_ROOT
85+ if (-not $vcpkgRoot) { $vcpkgRoot = "C:\vcpkg" }
86+ $gslBinPath = Join-Path $vcpkgRoot "installed\x64-windows\bin"
87+ $env:PATH = "$gslBinPath;$env:PATH"
88+ delvewheel repair dist/*.whl -w dist/ --add-path "$gslBinPath"
89+ rm -rf msprime
90+ pip install dist/*.whl
91+ pytest -xvs -n0
0 commit comments