Skip to content

Use approximate comparisons in floating point test #804

Use approximate comparisons in floating point test

Use approximate comparisons in floating point test #804

Workflow file for this run

name: TestSuite
on: [push, pull_request]
jobs:
get_python_versions:
name: "Determine Python versions"
runs-on: ubuntu-latest
outputs:
min-python: ${{ steps.nep29.outputs.min-python }}
max-python: ${{ steps.nep29.outputs.max-python }}
steps:
- name: "calculate versions according to NEP29"
id: nep29
uses: mstimberg/github-calc-nep29@v0.5
with:
token: ${{ secrets.GITHUB_TOKEN }}
pre-commit:
name: Run linters with pre-commit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.10'
cache: 'pip'
cache-dependency-path: .devcontainer/dev-requirements.txt
- name: Install deps
run: pip3 install -r .devcontainer/dev-requirements.txt
- name: Run pre-commit hooks
run: pre-commit run --all-files --show-diff-on-failure
testing:
needs: [get_python_versions, pre-commit]
name: "Python ${{ matrix.python-version }} on ${{ matrix.os }} (standalone: ${{ matrix.standalone }}, 32bit: ${{ matrix.float_dtype_32 }})"
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04, windows-2019, macOS-11]
standalone: [false, true]
float_dtype_32: [false, true]
python-version: ["${{ needs.get_python_versions.outputs.max-python }}"]
include:
- os: ubuntu-20.04
standalone: false
python-version: "${{ needs.get_python_versions.outputs.min-python }}"
float_dtype_32: false
- os: ubuntu-20.04
standalone: true
python-version: "${{ needs.get_python_versions.outputs.min-python }}"
float_dtype_32: false
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Conda and Python
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
auto-activate-base: false
channels: conda-forge,defaults
channel-priority: true
activate-environment: 'test_env'
python-version: ${{ matrix.python-version }}
- name: Install Brian2 and dependencies
run: |
conda install -n test_env --quiet --yes -c conda-forge pip pytest cython sympy future pyparsing numpy jinja2 six scipy sphinx gsl coverage
pip install .
- name: Run Tests
run: |
cd $GITHUB_WORKSPACE/.. # move out of the workspace to avoid direct import
coverage run --rcfile=$GITHUB_WORKSPACE/.coveragerc $GITHUB_WORKSPACE/$SCRIPT_NAME
env:
SCRIPT_NAME: dev/continuous-integration/run_test_suite.py
SPHINX_DIR: ${{ github.workspace }}/docs_sphinx
AGENT_OS: ${{runner.os}}
STANDALONE: ${{ matrix.standalone }}
FLOAT_DTYPE_32: ${{ matrix.float_dtype_32 }}
- name: Upload coverage data to coveralls
if: ${{ startsWith(matrix.os, 'ubuntu-') && matrix.python-version == needs.get_python_versions.outputs.max-python }}
run: |
cp $GITHUB_WORKSPACE/../.coverage .
python -m pip install --upgrade coveralls
coveralls --service=github --rcfile=$GITHUB_WORKSPACE/.coveragerc
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_FLAG_NAME: ${{ github.job }}
COVERALLS_PARALLEL: true
coveralls:
name: Indicate completion to coveralls.io
needs: testing
runs-on: ubuntu-latest
container: python:3-slim
steps:
- name: Finished
run: |
python -m pip install --upgrade coveralls
coveralls --service=github --finish --rcfile=$GITHUB_WORKSPACE/.coveragerc
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
test_doc_build:
needs: get_python_versions
name: Test building the documentation
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: Setup Conda and Python
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
auto-activate-base: false
channels: conda-forge,defaults
channel-priority: true
activate-environment: 'test_env'
python-version: "${{ needs.get_python_versions.outputs.max-python }}"
- name: Install dependencies
run: pip install -r rtd-requirements.txt
- name: Install brian2
run: pip install .
- name: Build HTML documentation
run: |
cd docs_sphinx
sphinx-build -b html . ../docs
env:
READTHEDOCS: True