Sample Weights #1849
This file contains hidden or 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: 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 |