CI #768
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: CI | |
on: | |
push: | |
pull_request: | |
# Run weekly at 00:00 on Sunday. | |
schedule: | |
- cron: '0 0 * * 0' | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
max-parallel: 4 | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ["3.9", "3.10", "3.11"] | |
steps: | |
- uses: actions/checkout@v1 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install -r requirements/development.txt | |
- name: Run tests | |
run: | | |
python -m pip install coverage | |
coverage run --source=axelrod -m unittest discover | |
- name: Report coverage | |
run: | | |
coverage report -m --fail-under=100 | |
- name: Check that documentation builds | |
run: | | |
python -m pip install sphinx | |
python -m pip install sphinx_rtd_theme | |
python -m pip install mock | |
python -m pip install numpy | |
cd docs; make clean; make html; cd ..; | |
- name: Run doctests | |
run: | | |
python doctests.py | |
- name: Check that all strategies are indexed | |
run: | | |
python run_strategy_indexer.py | |
- name: Check that strategies are added to axelrod.all_strategies | |
run: | | |
python -m pip install pylint | |
python -m pylint --disable=all --enable=unused-import axelrod/strategies/_strategies.py | |
- name: Check that installs | |
run: | | |
python setup.py install | |
cd .. | |
python -c "import axelrod" | |
format-check: | |
needs: build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
max-parallel: 4 | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.11"] | |
steps: | |
- name: Check imports are sorted | |
run: | | |
python -m pip install "isort==4.3.21" | |
python -m isort --check-only --recursive axelrod/. | |
- name: Check format | |
run: | | |
python -m pip install black=="22.10.0" | |
python -m black -l 80 . --check | |