@@ -12,35 +12,33 @@ jobs:
1212 strategy :
1313 matrix :
1414 python-version : ['3.11', '3.12']
15-
15+
1616 steps :
1717 - uses : actions/checkout@v4
18-
18+
1919 - name : Set up Python ${{ matrix.python-version }}
2020 uses : actions/setup-python@v4
2121 with :
2222 python-version : ${{ matrix.python-version }}
23-
23+
2424 - name : Cache pip dependencies
2525 uses : actions/cache@v3
2626 with :
2727 path : ~/.cache/pip
28- key : ${{ runner.os }}-pip-${{ hashFiles('**/test_requirements.txt ') }}
28+ key : ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml ') }}
2929 restore-keys : |
3030 ${{ runner.os }}-pip-
31-
31+
3232 - name : Install system dependencies
3333 run : |
3434 sudo apt-get update
3535 sudo apt-get install -y build-essential
36-
36+
3737 - name : Install Python dependencies
3838 run : |
3939 python -m pip install --upgrade pip
40- pip install -r test_requirements.txt
41- # Install the package in development mode
42- pip install -e .
43-
40+ pip install -e ".[dev]"
41+
4442 - name : Install Rust toolchain
4543 uses : dtolnay/rust-toolchain@stable
4644
@@ -52,41 +50,38 @@ jobs:
5250 - name : Install RustyMS (optional dependency)
5351 run : |
5452 pip install rustyms || echo "RustyMS installation failed, tests will skip RustyMS-dependent functionality"
55-
53+
5654 - name : Run Rust unit tests
5755 run : |
5856 cd rust/mumdia_rs && cargo test
5957
6058 - name : Lint with flake8
6159 run : |
62- pip install flake8
6360 # Stop the build if there are Python syntax errors or undefined names
6461 flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
6562 # Exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
6663 flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
67-
64+
6865 - name : Type check with mypy
6966 run : |
70- pip install mypy
7167 mypy . --ignore-missing-imports || echo "MyPy check completed with warnings"
72-
68+
7369 - name : Run fast tests
7470 run : |
7571 python -m pytest tests/ -v -m "fast" --tb=short || echo "Fast tests completed"
76-
72+
7773 - name : Run unit tests
7874 run : |
7975 python -m pytest tests/ -v -m "unit" --tb=short --maxfail=10
80-
76+
8177 - name : Run integration tests
8278 run : |
8379 python -m pytest tests/ -v -m "integration" --tb=short --maxfail=5
84-
80+
8581 - name : Run all tests with coverage
8682 run : |
87- pip install coverage pytest-cov
8883 python -m pytest tests/ --cov=. --cov-report=xml --cov-report=html --tb=short --maxfail=20
89-
84+
9085 - name : Upload coverage to Codecov
9186 uses : codecov/codecov-action@v3
9287 with :
@@ -99,60 +94,58 @@ jobs:
9994 runs-on : ubuntu-latest
10095 needs : test
10196 if : github.event_name == 'push' && github.ref == 'refs/heads/main'
102-
97+
10398 steps :
10499 - uses : actions/checkout@v4
105-
100+
106101 - name : Set up Python 3.11
107102 uses : actions/setup-python@v4
108103 with :
109104 python-version : ' 3.11'
110-
105+
111106 - name : Install Rust toolchain
112107 uses : dtolnay/rust-toolchain@stable
113108
114109 - name : Install dependencies
115110 run : |
116111 python -m pip install --upgrade pip
117- pip install -r test_requirements.txt
118- pip install -e .
112+ pip install -e ".[dev]"
119113 pip install maturin
120114 cd rust/mumdia_rs && maturin develop --release
121115 pip install rustyms || echo "RustyMS optional"
122116
123117 - name : Run performance tests
124118 run : |
125119 python -m pytest tests/ -v -m "performance" --tb=short || echo "Performance tests completed"
126-
120+
127121 - name : Run memory tests
128122 run : |
129123 python -m pytest tests/ -v -m "memory" --tb=short || echo "Memory tests completed"
130124
131125 docs-and-style :
132126 runs-on : ubuntu-latest
133-
127+
134128 steps :
135129 - uses : actions/checkout@v4
136-
130+
137131 - name : Set up Python 3.11
138132 uses : actions/setup-python@v4
139133 with :
140134 python-version : ' 3.11'
141-
135+
142136 - name : Install dependencies
143137 run : |
144138 python -m pip install --upgrade pip
145- pip install black isort
146-
139+ pip install -e ".[dev]"
140+
147141 - name : Check code formatting with Black
148142 run : |
149143 black --check --diff .
150-
144+
151145 - name : Check import sorting with isort
152146 run : |
153147 isort --check-only --diff .
154-
148+
155149 - name : Validate test framework
156150 run : |
157- python -m pip install -r test_requirements.txt
158151 python tests/validate_testing_framework.py || echo "Test framework validation completed"
0 commit comments