Conditional API note (#595) #1854
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: test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
tutorials: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install packages | |
run: | | |
sudo apt-get install -y rename | |
python -m pip install --upgrade pip wheel setuptools | |
python -m pip install -r requirements/default.txt -r requirements/test.txt -r requirements/tutorial.txt | |
python -m pip install . | |
python -m pip list | |
- name: Prepare case studies notebooks | |
run: | | |
# go into tutorial location | |
cd tutorials/case_studies | |
# convert each notebook into a python file | |
jupyter nbconvert --to script *.ipynb | |
# rename the files so they are found by pytest: add 'test' at the beginning | |
rename 's/(.*)\.py/test $1.py/' * | |
# rename the files so they are found by pytest: change spaces to underscores | |
rename 's/ /_/g' test* | |
# modify each file by adding one level of indentation to each line | |
sed -i 's/^/ /' test*.py | |
# modify each file by adding 'def test_func():' at the top | |
sed -i '1s;^;def test_func():\n;' test*.py | |
- name: Prepare focus notebooks | |
run: | | |
# go into tutorial location | |
cd tutorials/focus | |
# convert each notebook into a python file | |
jupyter nbconvert --to script *.ipynb | |
# rename the files so they are found by pytest: add 'test' at the beginning | |
rename 's/(.*)\.py/test $1.py/' * | |
# rename the files so they are found by pytest: change spaces to underscores | |
rename 's/ /_/g' test* | |
# modify each file by adding one level of indentation to each line | |
sed -i 's/^/ /' test*.py | |
# modify each file by adding 'def test_func():' at the top | |
sed -i '1s;^;def test_func():\n;' test*.py | |
- name: Prepare getting started notebooks | |
run: | | |
# go into tutorial location | |
cd tutorials/getting_started | |
# convert each notebook into a python file | |
jupyter nbconvert --to script *.ipynb | |
# rename the files so they are found by pytest: add 'test' at the beginning | |
rename 's/(.*)\.py/test $1.py/' * | |
# rename the files so they are found by pytest: change spaces to underscores | |
rename 's/ /_/g' test* | |
# modify each file by adding one level of indentation to each line | |
sed -i 's/^/ /' test*.py | |
# modify each file by adding 'def test_func():' at the top | |
sed -i '1s;^;def test_func():\n;' test*.py | |
- name: Prepare in-depth notebooks | |
run: | | |
# go into tutorial location | |
cd tutorials/in_depth | |
# convert each notebook into a python file | |
jupyter nbconvert --to script *.ipynb | |
# rename the files so they are found by pytest: add 'test' at the beginning | |
rename 's/(.*)\.py/test $1.py/' * | |
# rename the files so they are found by pytest: change spaces to underscores | |
rename 's/ /_/g' test* | |
# modify each file by adding one level of indentation to each line | |
sed -i 's/^/ /' test*.py | |
# modify each file by adding 'def test_func():' at the top | |
sed -i '1s;^;def test_func():\n;' test*.py | |
- name: Test tutorial notebooks | |
run: | | |
# run pytest ONLY on the tutorials | |
cd tutorials | |
cd case_studies | |
pytest --color=yes | |
cd ../focus | |
pytest --color=yes | |
cd ../getting_started | |
pytest --color=yes | |
cd ../in_depth | |
pytest --color=yes | |
pytest: | |
runs-on: ${{ matrix.os }}-latest | |
strategy: | |
matrix: | |
os: [ubuntu, macos, windows] | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install packages | |
run: | | |
pip install --upgrade pip | |
pip install .[test,docs] | |
pip list | |
- name: Test XGI | |
run: | | |
# run test suite | |
cd tests/ | |
pytest --color=yes | |
# run doctests | |
cd ../xgi/ | |
pytest --color=yes |