-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjustfile
More file actions
113 lines (82 loc) · 2.85 KB
/
Copy pathjustfile
File metadata and controls
113 lines (82 loc) · 2.85 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# GiBaTron
# Run `just` with no arguments to see available recipes
set dotenv-load := false
# Default recipe: show help
default:
@just --list
# --- Scanner ---
# Scan a remote machine for hardware profile
scan target:
.venv/bin/python -m gibatron.scanner --remote {{target}}
# --- Building ---
# Build a kernel for a specific combination
build base layers="" target="":
.venv/bin/python -m gibatron.orchestrator build {{base}} {{layers}} {{target}}
# Resume a failed build
build-resume build_name:
.venv/bin/python -m gibatron.orchestrator build --resume {{build_name}}
# Build all combinations in the matrix
build-matrix:
.venv/bin/python -m gibatron.orchestrator build-matrix
# Dry-run compatibility check
validate base layers="":
.venv/bin/python -m gibatron.orchestrator validate {{base}} {{layers}}
# --- Testing ---
# Test a built kernel in QEMU
test base deb:
.venv/bin/python -m gibatron.tester {{base}} {{deb}}
# Test host+guest kernel combo with nested QEMU
test-nested base host_deb guest_deb:
.venv/bin/python -m gibatron.tester --nested {{base}} {{host_deb}} {{guest_deb}}
# Build/refresh a base rootfs image
rootfs-build target:
.venv/bin/python -m gibatron.tester --rootfs-build {{target}}
# List available rootfs images
rootfs-list:
.venv/bin/python -m gibatron.tester --rootfs-list
# --- Project Management ---
# Create a new project from template
init name:
.venv/bin/python -m gibatron.orchestrator init {{name}}
# Set active project context
switch name:
.venv/bin/python -m gibatron.orchestrator switch {{name}}
# List all projects
list-projects:
.venv/bin/python -m gibatron.orchestrator list-projects
# --- Source Management ---
# Setup a kernel version (clone + worktree)
source-setup version:
.venv/bin/python -m gibatron.orchestrator source-setup {{version}}
# List available kernel source worktrees
source-list:
.venv/bin/python -m gibatron.orchestrator source-list
# --- Utility ---
# Remove build artifacts
clean:
.venv/bin/python -m gibatron.orchestrator clean
# Show active context and available configs
status:
.venv/bin/python -m gibatron.orchestrator status
# Validate scan report against driver map
driver-map-check report:
.venv/bin/python -m gibatron.configurator driver-map-check {{report}}
# --- Development ---
# Run all tests
test-all:
.venv/bin/pytest tests/ -v
# Run tests with coverage
test-cov:
.venv/bin/pytest tests/ --cov=gibatron --cov-report=term-missing
# Install project in dev mode
dev-setup:
python3 -m venv .venv && .venv/bin/pip install -e ".[dev]" && .venv/bin/pre-commit install
# Run linters
lint:
.venv/bin/ruff check src/ tests/ tools/
.venv/bin/ruff format --check src/ tests/ tools/
.venv/bin/mypy src/gibatron/
# Format code
fmt:
.venv/bin/ruff format src/ tests/ tools/
.venv/bin/ruff check --fix src/ tests/ tools/