Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
91 lines (72 loc) · 2.66 KB
/
Copy pathMakefile
File metadata and controls
91 lines (72 loc) · 2.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
.PHONY: init install lint typecheck test test-all test-engine test-engine-postgres test-knowledge test-serve lint-serve ci regen-openapi docs-build docs-serve docs-clean release publish version-bump
init: install
uv run pre-commit install
install:
uv sync --group dev --group docs
lint:
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
typecheck:
uv run pyright
test:
uv run pytest -m unit
test-all:
uv run pytest
test-engine:
uv run pytest tests/unit tests/integration tests/property tests/replay tests/migration \
--ignore=tests/integration/test_postgres_checkpointer.py \
--ignore=tests/integration/test_mlnode_sklearn.py \
--ignore=tests/integration/test_mlnode_xgboost.py \
--ignore=tests/integration/test_ml_pickle_safety.py \
--ignore=tests/integration/test_training_subgraph_example.py
test-engine-postgres:
uv run pytest tests/integration/test_postgres_checkpointer.py
test-knowledge:
uv run pytest tests/unit tests/integration tests/property \
--ignore=tests/integration/test_postgres_checkpointer.py \
--ignore=tests/integration/test_mlnode_sklearn.py \
--ignore=tests/integration/test_mlnode_xgboost.py \
-m "knowledge or unit"
test-serve:
uv run pytest -q -m serve --tb=short
# Full local CI mirror — the robust superset the PR workflow no longer runs in
# full. GitHub path-filters the heavy infra jobs (Postgres/pgbouncer, Neo4j
# testcontainer, all-extras serve surface) to only the PRs that touch them; run
# this before pushing a large or cross-cutting change to exercise every gate
# locally. Runs all gates + the complete suite including slow/container-backed
# tests (``--runslow`` spins testcontainers, so a running Docker daemon and the
# full extra set are required — hence the all-extras sync first).
ci:
uv sync --all-extras --group dev
uv run ruff check src/ tests/
uv run ruff format --check src/ tests/
uv run pyright
uv run python scripts/build_draft7.py && git diff --exit-code src/stargraph/schemas/ir-v1-draft7.json
uv run python scripts/regen_openapi.py && git diff --exit-code docs/reference/openapi.json
uv run pytest --runslow
@echo "local ci: all gates green"
lint-serve:
uv run ruff check \
src/stargraph/serve \
src/stargraph/bosun \
src/stargraph/nodes/nautilus \
src/stargraph/nodes/interrupt \
src/stargraph/nodes/artifacts \
src/stargraph/tools/nautilus \
src/stargraph/artifacts \
src/stargraph/triggers
regen-openapi:
uv run python scripts/regen_openapi.py
docs-build:
uv run mkdocs build --strict
docs-serve:
uv run mkdocs serve
docs-clean:
rm -rf site/
release:
@./scripts/release.sh
publish:
uv build
uv run twine upload dist/*
version-bump:
@./scripts/version_bump.sh