Adds cuckoo optimiser #1602
Workflow file for this run
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: Pull Request | |
on: | |
workflow_dispatch: | |
pull_request: | |
concurrency: | |
# github.workflow: name of the workflow, so that we don't cancel other workflows | |
# github.event.pull_request.number || github.ref: pull request number or branch name if not a pull request | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
# Cancel in-progress runs when a new workflow with the same group name is triggered | |
# This avoids workflow runs on both pushes and PRs | |
cancel-in-progress: true | |
jobs: | |
style: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.11 | |
- name: Check formatting with pre-commit | |
run: | | |
python -m pip install pre-commit | |
pre-commit run ruff | |
integration_tests: | |
needs: style | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-13, macos-14] | |
python-version: ["3.12"] | |
name: Integration tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip nox[uv] | |
- name: Integration tests | |
run: | | |
nox -s integration | |
unit_tests: | |
needs: style | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-13, macos-14] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
exclude: # We run the coverage tests on macos-14 with Python 3.12 | |
- os: macos-14 | |
python-version: "3.12" | |
name: Unit tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip nox[uv] | |
- name: Unit tests | |
run: | | |
nox -s unit | |
example_tests: | |
needs: style | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macos-13, macos-14] | |
python-version: ["3.12"] | |
name: Test examples (${{ matrix.os }} / Python ${{ matrix.python-version }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip nox[uv] | |
- name: Run examples | |
run: | | |
nox -s examples | |
# Runs only on macos-14 with Python 3.12 | |
check_coverage: | |
needs: style | |
runs-on: macos-14 | |
strategy: | |
fail-fast: false | |
name: Coverage tests (macos-14 / Python 3.12) | |
steps: | |
- name: Check out PyBOP repository | |
uses: actions/checkout@v4 | |
- name: Set up Python 3.12 | |
id: setup-python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.12 | |
cache: 'pip' | |
cache-dependency-path: setup.py | |
- name: Install dependencies | |
run: python -m pip install --upgrade pip nox[uv] | |
- name: Run coverage tests for macos-14 with Python 3.12 and generate report | |
run: nox -s coverage | |
- name: Upload coverage report | |
uses: codecov/codecov-action@v4 | |
with: | |
fail_ci_if_error: true | |
verbose: true | |
token: ${{ secrets.CODECOV_TOKEN }} |