Merge remote-tracking branch 'github/25-allow-to-trigger-pipelines-ma… #164
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: Code-Analysis | |
on: | |
push: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 5 * * 1' # Every Monday at 5:00 AM UTC (7:00 AM CEST) | |
jobs: | |
pylint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install $(find . -name "requirement*" -type f -printf ' -r %p') | |
pip install pylint | |
- name: Analysing the code with pylint | |
run: | | |
pylint -d C0301,R0913,W1202 $(git ls-files '*.py') --ignored-modules "rdkit" | |
mypy: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install "numpy<2.0.0" | |
pip install mypy | |
mypy . || exit_code=$? | |
mypy --install-types --non-interactive | |
- name: Analysing the code with mypy | |
run: | | |
mypy --ignore-missing-imports --disallow-any-generics --disallow-untyped-defs --no-implicit-optional --disallow-incomplete-defs . | |
pydocstyle: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install pydocstyle | |
- name: Analysing the code with pydocstyle | |
run: | | |
pydocstyle . | |
docsig: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install docsig | |
- name: Analysing the code with docsig | |
run: | | |
docsig --check-class-constructor --check-dunders --check-protected-class-methods --check-nested --check-overridden --check-protected . | |
black: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install black[jupyter] | |
- name: Analysing the code with black | |
run: | | |
black --check . | |
flake8: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install flake8 | |
- name: Analysing the code with flake8 | |
run: | | |
flake8 --extend-ignore=D203,E203,E501,W503 . | |
interrogate: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install interrogate | |
- name: Analysing the code with interrogate | |
run: | | |
interrogate --ignore-overloaded-functions -vv . | |
bandit: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install bandit | |
- name: Analysing the code with bandit | |
run: | | |
bandit -r --skip=B404,B603,B602 . | |
isort: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install isort | |
- name: Analysing the code with isort | |
run: | | |
isort --profile black . | |
test_basis: | |
needs: | |
- pylint | |
- mypy | |
- pydocstyle | |
- docsig | |
- black | |
- flake8 | |
- interrogate | |
- bandit | |
- isort | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install package | |
run: | | |
python -m pip install --upgrade pip | |
pip install . | |
- name: Run unit-tests | |
run: | | |
python -m unittest discover -v -s tests -t . | |
test_chemprop: | |
needs: | |
- test_basis | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install package | |
run: | | |
python -m pip install --upgrade pip | |
pip install torch | |
pip install .[chemprop] | |
- name: Run unit-tests for chemprop | |
run: | | |
python -m unittest discover -v -s test_extras/test_chemprop -t . | |
test_notebooks: | |
needs: | |
- test_basis | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11" | |
- name: Install package | |
run: | | |
python -m pip install --upgrade pip | |
pip install "pandas<2.2.0" | |
pip install .[notebooks] | |
- name: Run unit-tests for notebooks | |
run: | | |
python test_extras/test_notebooks/test_notebooks.py --continue-on-failure |