Test hook support #1298
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: CI | |
on: | |
pull_request: | |
jobs: | |
lint: | |
name: Linting | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
run: pip install -r requirements-dev.txt | |
- name: Run ruff linter | |
run: ruff check . | |
- name: Run ruff formatter | |
run: ruff format --check --diff . | |
- name: Run pyright | |
run: pyright . | |
- name: Run vulture check | |
run: vulture src/ tests/ | |
- name: Import linter | |
run: PYTHONPATH=src lint-imports | |
- name: Check TOML formatting | |
run: | | |
set -eE | |
set -o pipefail | |
export TAPLO_VERSION=0.9.2 | |
curl -fsSL https://github.com/tamasfe/taplo/releases/download/${TAPLO_VERSION}/taplo-full-linux-x86_64.gz \ | |
| gzip -d - | install -m 755 /dev/stdin /usr/local/bin/taplo | |
taplo fmt --check --diff | |
test: | |
name: Run pytest | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Install dependencies | |
run: pip install pytest -r requirements-dev.txt | |
- name: Run pytest | |
run: | | |
set -eEx | |
set -o pipefail | |
python -m pytest -vv --cov | |
python -m pytest --dead-fixtures | |
# <100% coverage might indicate that some tests are not doing what they should, | |
# but realistically, it might too hard to reach, so lower it a bit | |
# (at the moment of writing, it is 99.95%) | |
coverage report --include='tests/*' --precision=2 --fail-under=97.00 | |
- name: Test local installation | |
run: | | |
set -eE | |
set -o pipefail | |
pip install . | |
pip uninstall -y cloudai | |
pip install -e . | |
- name: Test commands | |
run: | | |
set -eEx | |
set -o pipefail | |
cloudai --help | |
# this checks that all TOMLs are valid, Test Scenarios are checked agains _all_ tests | |
cloudai verify-configs conf/ | |
# this checks that all TOMLs are valid, Test Scenarios are checked agains _only_ the tests in the specified directory | |
cloudai verify-configs --tests-dir conf/common/test conf/common | |
cloudai verify-configs --tests-dir conf/release/spcx/l40s/test conf/release/spcx/l40s |