@@ -28,13 +28,49 @@ jobs:
2828 - uses : abatilo/actions-poetry@v3
2929 with :
3030 poetry-version : 1.8.3
31- - name : Install deps
31+ - name : Install deps with numpy
3232 timeout-minutes : 5
33- run : poetry install
33+ run : poetry install -E numpy-backend
34+ - name : Lint
35+ run : poetry run flake8 src/ssspx
36+ - name : Docstring style
37+ run : poetry run pydocstyle src/ssspx
38+ - name : Docstring coverage
39+ run : poetry run docstr-coverage src/ssspx --fail-under 90
40+ - name : Type check
41+ run : poetry run mypy src/ssspx
42+ - name : Security scan
43+ run : poetry run bandit -r src/ssspx -c bandit.yaml --severity-level high
44+ - name : Dependency audit
45+ timeout-minutes : 3
46+ run : poetry run pip-audit --ignore-vuln PYSEC-2022-42969
47+ - name : Deprecations up-to-date
48+ run : poetry run python tools/check_deprecations.py
49+ - name : Validate citation metadata
50+ run : poetry run cffconvert --validate --infile CITATION.cff
51+
52+ with :
53+ python-version : ' 3.11'
54+ - uses : actions/cache@v4
55+ with :
56+ path : |
57+ ~/.cache/pip
58+ ~/.cache/pypoetry
59+ key : ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
60+ restore-keys : |
61+ ${{ runner.os }}-poetry-
62+ - uses : abatilo/actions-poetry@v3
63+ with :
64+ poetry-version : 1.8.3
65+ - name : Install deps with numpy
66+ timeout-minutes : 5
67+ run : poetry install -E numpy-backend
3468 - name : Lint
3569 run : poetry run flake8 src/ssspx
3670 - name : Docstring style
3771 run : poetry run pydocstyle src/ssspx
72+ - name : Docstring coverage
73+ run : poetry run docstr-coverage src/ssspx --fail-under 90
3874 - name : Type check
3975 run : poetry run mypy src/ssspx
4076 - name : Security scan
0 commit comments