mattzh72--articraft
93 行
2.7 KiB
Makefile
93 行
2.7 KiB
Makefile
default:
|
|
@just --list
|
|
|
|
host := "127.0.0.1"
|
|
port := "8765"
|
|
|
|
uv-version-check:
|
|
@version="$(uv --version | awk '{print $2}')"; \
|
|
required="0.9.17"; \
|
|
awk -v v="$version" -v r="$required" 'BEGIN { \
|
|
split(v, a, "."); split(r, b, "."); \
|
|
for (i = 1; i <= 3; i++) { \
|
|
if ((a[i] + 0) > (b[i] + 0)) exit 0; \
|
|
if ((a[i] + 0) < (b[i] + 0)) exit 1; \
|
|
} \
|
|
exit 0; \
|
|
}' || { \
|
|
echo "uv $required or newer is required for the Python dependency cooldown."; \
|
|
echo "Current: uv $version"; \
|
|
exit 1; \
|
|
}
|
|
|
|
uv-version-ensure:
|
|
@version="$(uv --version | awk '{print $2}')"; \
|
|
required="0.9.17"; \
|
|
if ! awk -v v="$version" -v r="$required" 'BEGIN { \
|
|
split(v, a, "."); split(r, b, "."); \
|
|
for (i = 1; i <= 3; i++) { \
|
|
if ((a[i] + 0) > (b[i] + 0)) exit 0; \
|
|
if ((a[i] + 0) < (b[i] + 0)) exit 1; \
|
|
} \
|
|
exit 0; \
|
|
}'; then \
|
|
echo "Updating uv from $version to $required for the Python dependency cooldown."; \
|
|
uv --no-config self update "$required"; \
|
|
fi
|
|
|
|
setup root='.':
|
|
just uv-version-ensure
|
|
# Create a local env template once; never overwrite an existing secrets file.
|
|
uv run --frozen --directory {{ quote(root) }} articraft env bootstrap
|
|
uv sync --frozen --group dev --directory {{ quote(root) }}
|
|
@if command -v npm >/dev/null 2>&1; then \
|
|
npm --prefix {{ quote(root + "/viewer/web") }} ci; \
|
|
npm --prefix {{ quote(root + "/viewer/web") }} run typecheck; \
|
|
else \
|
|
echo "npm not found; skipping viewer/web dependency install."; \
|
|
echo "Install Node.js and npm to run the viewer and frontend hooks."; \
|
|
fi
|
|
uv run --frozen --directory {{ quote(root) }} articraft init
|
|
|
|
format:
|
|
just uv-version-check
|
|
uv run --frozen ruff format .
|
|
|
|
lint:
|
|
just uv-version-check
|
|
uv run --frozen ruff check .
|
|
|
|
compile record:
|
|
just uv-version-check
|
|
uv run --frozen articraft compile --target visual {{ quote(record) }}
|
|
|
|
compile-full record:
|
|
just uv-version-check
|
|
uv run --frozen articraft compile --target full {{ quote(record) }}
|
|
|
|
smoke-tests:
|
|
just uv-version-check
|
|
uv run --frozen --group dev pytest -q \
|
|
tests/storage \
|
|
tests/viewer/test_api.py \
|
|
tests/sdk/test_imports.py \
|
|
tests/cli
|
|
|
|
test-all:
|
|
just uv-version-check
|
|
uv run --frozen --group dev pytest -q
|
|
|
|
viewer:
|
|
just uv-version-check
|
|
uv run --frozen articraft viewer --host {{ quote(host) }} --port {{ quote(port) }}
|
|
|
|
viewer-dev:
|
|
just uv-version-check
|
|
uv run --frozen articraft viewer --dev --host {{ quote(host) }} --port {{ quote(port) }}
|
|
|
|
dashscope-test:
|
|
bash scripts/dashscope_run.sh official-test
|
|
|
|
dashscope-generate prompt:
|
|
bash scripts/dashscope_run.sh generate {{ quote(prompt) }}
|