Skip to content

Sample Weights

Sample Weights #1849

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
linting:
name: Linting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: Linting
run: |
pip install pre-commit
pre-commit run --all-files
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
- name: build
run: pip install .
- name: test import
run: python -c "import pysindy"
docs:
name: Docs
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: "Set up Python"
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install doc dependencies
run: |
sudo apt-get update -y
sudo apt-get install pandoc
pip install -e .[docs,cvxpy,miosr,sbr]
- name: Build docs
run: |
cd docs
python -m sphinx -T -E -W -b html -d _build/doctrees . _build/html
- name: Save the built docs
uses: actions/upload-artifact@v4
with:
name: docs-html
path: docs/_build/html/
retention-days: 5
tests:
name: Tests
needs: linting
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 4
matrix:
python-version: ["3.10", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
pip install --upgrade pip
pip install .[dev,miosr,cvxpy,sbr]
pip freeze > environment.txt
- name: Save the environment
uses: actions/upload-artifact@v4
with:
name: requirements ${{matrix.python-version}}
path: environment.txt
retention-days: 5
- name: Test with pytest
run: |
coverage run --source=pysindy -m pytest test -m "not slow" && coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
benchmarks:
name: Benchmarks (ASV)
needs: tests
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.12"]
permissions:
contents: write # gh-pages publishing
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # ASV history
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: |
pip install --upgrade pip
pip install .[dev]
pip install asv
- name: Cache ASV environments
uses: actions/cache@v4
with:
path: asv_bench/.asv/env
key: asv-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('asv_bench/asv.conf.json') }}
restore-keys: |
asv-${{ runner.os }}-py${{ matrix.python-version }}-
- name: Setup ASV machine
run: |
cd asv_bench
asv machine --yes
- name: Check regression
if: github.event_name == 'pull_request'
run: |
cd asv_bench
git fetch origin $GITHUB_BASE_REF:base $GITHUB_REF:pr
asv continuous base pr -e
- name: Run benchmarks on main
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
run: |
cd asv_bench
asv run
asv publish
- name: Deploy ASV dashboard to gh-pages
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: asv_bench/.asv/html
force_orphan: true