Repository navigation
Expand file tree
/
Copy pathjustfile
More file actions
42 lines (35 loc) · 1.72 KB
/
Copy pathjustfile
File metadata and controls
42 lines (35 loc) · 1.72 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
set shell := ["bash", "-euo", "pipefail", "-c"]
import 'devkit.just'
default:
@just --list
# Point git at this repo's hooks (the dev shell does it too).
install-hooks:
git config core.hooksPath .githooks
# The devkit's own gates: lint, every script's --self-test, the invariants block, docs-lint, the plugin.
quality:
#!/usr/bin/env bash
set -euo pipefail
for tool in ruff shellcheck actionlint; do command -v "$tool" >/dev/null || { echo "quality: $tool not installed — run inside 'nix develop'" >&2; exit 1; }; done
ruff check .
ruff format --check .
# Errors only: the warnings/infos came over from marola, which never gated shellcheck.
shellcheck --severity=error scripts/*.sh scripts/lib/*.sh plugins/marola-devkit/hooks/*.sh .githooks/* .claude/statusline.sh tests/*.sh
actionlint
bash tests/self-tests.sh
python3 scripts/wiring.py --lint-devkit
scripts/agents-check.sh
python3 scripts/merge_key_check.py .
python3 scripts/docs_lint.py
python3 scripts/skills_vendor.py check --lock plugins/marola-devkit/skills/skills.lock
python3 scripts/release.py --check
if command -v claude >/dev/null; then claude plugin validate .; else echo "claude not on PATH — skipping plugin validate"; fi
# Release the devkit: a version-bump branch for the release PR, or, once main carries X.Y.Z, its tag.
# just release 0.7.0 [--dry-run]
release *args:
python3 scripts/release.py {{ args }}
# The git hooks' contract (README): fast checks at commit, the full gate at push.
precommit:
ruff check .
shellcheck --severity=error scripts/*.sh scripts/lib/*.sh plugins/marola-devkit/hooks/*.sh .githooks/* .claude/statusline.sh tests/*.sh
scripts/agents-check.sh
prepush: quality