Add Monte Carlo SSA to key features and Statsmodels dependency #69
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Python Tests | |
on: | |
push: | |
branches: [ "**" ] | |
pull_request: | |
branches: [ "**" ] | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache pip packages | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-py${{ matrix.python-version }}-pip-${{ hashFiles('requirements.txt', 'setup.py') }} | |
restore-keys: | | |
${{ runner.os }}-py${{ matrix.python-version }}-pip- | |
- name: Install package | |
run: | | |
python -m pip install --upgrade pip | |
# Install the package with all dependencies including optional ones | |
pip install -e ".[test,full]" | |
- name: Install system dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y tk-dev python3-tk | |
- name: Run tests | |
env: | |
PYTHONPATH: ${{ github.workspace }} | |
run: | | |
# Create a directory for test results | |
mkdir -p test-results | |
# Run tests and generate coverage | |
pytest tests/ -v \ | |
--ignore=tests/test_rssa.py \ | |
--cov=ssalib \ | |
--cov-report=term-missing:skip-covered \ | |
--cov-report=xml:test-results/coverage.xml \ | |
--junitxml=test-results/junit.xml | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: pytest-results-py${{ matrix.python-version }} | |
path: | | |
test-results/ | |
# Using globs to ensure files exist | |
**/.pytest_cache/ | |
**/.coverage | |
if-no-files-found: warn |