@@ -18,14 +18,13 @@ jobs:
18
18
strategy :
19
19
fail-fast : false
20
20
matrix :
21
- os : [ubuntu-latest, macos-latest]
21
+ os : [ubuntu-latest] # Temporarily disable macOS due to mappy build issues
22
22
python-version : ['3.9', '3.10', '3.11', '3.12', '3.13']
23
- exclude :
24
- # Exclude problematic combinations where mappy fails to build
23
+ include :
24
+ # Add one macOS test with conda-based installation
25
25
- os : macos-latest
26
- python-version : ' 3.12'
27
- - os : macos-latest
28
- python-version : ' 3.13'
26
+ python-version : ' 3.11'
27
+ use_conda : true
29
28
30
29
steps :
31
30
- uses : actions/checkout@v4
@@ -43,20 +42,39 @@ jobs:
43
42
sudo apt-get install -y build-essential zlib1g-dev
44
43
fi
45
44
45
+ - name : Setup conda (macOS only)
46
+ if : matrix.use_conda == true
47
+ uses : conda-incubator/setup-miniconda@v3
48
+ with :
49
+ miniforge-version : latest
50
+ activate-environment : test
51
+ python-version : ${{ matrix.python-version }}
52
+
46
53
- name : Install dependencies
47
54
run : |
48
- python -m pip install --upgrade pip
49
- python -m pip install pytest pytest-cov
50
- if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
51
- python -m pip install -e .
55
+ if [[ "${{ matrix.use_conda }}" == "true" ]]; then
56
+ # Use conda for macOS to avoid mappy build issues
57
+ conda install -c conda-forge -c bioconda mappy numpy pytest pytest-cov -y
58
+ pip install natsort gfftk buscolite gapmm2 pyhmmer pyfastx requests gb-io json-repair pytantan
59
+ pip install -e . --no-deps
60
+ else
61
+ # Linux - use pip as normal
62
+ python -m pip install --upgrade pip
63
+ python -m pip install pytest pytest-cov
64
+ if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
65
+ python -m pip install -e .
66
+ fi
67
+ shell : bash -l {0}
52
68
53
69
- name : Run unit tests
54
70
run : |
55
71
pytest tests/unit/ -v --cov=funannotate2 --cov-report=xml
72
+ shell : bash -l {0}
56
73
57
74
- name : Run integration tests without external dependencies
58
75
run : |
59
76
pytest tests/integration/test_funannotate_cli.py -v
77
+ shell : bash -l {0}
60
78
61
79
- name : Upload coverage reports to Codecov
62
80
uses : codecov/codecov-action@v5
0 commit comments