initial commit

Signed-off-by: sisungo <[email protected]>
This commit is contained in:
2026-09-13 11:24:21 +00:00
commit 1b3d2b768a
58 changed files with 8414 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
CREATE TABLE IF NOT EXISTS packages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT UNIQUE NOT NULL,
pkgbuild_hash TEXT,
description TEXT DEFAULT '',
last_built_hash TEXT,
status TEXT NOT NULL DEFAULT 'pending' CHECK(status IN ('pending', 'building', 'built', 'failed')),
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS builds (
id INTEGER PRIMARY KEY AUTOINCREMENT,
package_name TEXT NOT NULL,
target TEXT NOT NULL DEFAULT 'x86_64-semios-linux',
atombuild INTEGER NOT NULL DEFAULT 1,
status TEXT NOT NULL DEFAULT 'queued' CHECK(status IN ('queued', 'running', 'success', 'failed', 'cancelled')),
machine_id INTEGER,
trigger TEXT NOT NULL DEFAULT 'manual' CHECK(trigger IN ('manual', 'auto', 'hash-change')),
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
started_at DATETIME,
finished_at DATETIME,
log_path TEXT,
error_message TEXT,
FOREIGN KEY (machine_id) REFERENCES machines(id)
);
CREATE TABLE IF NOT EXISTS machines (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE,
hostname TEXT NOT NULL,
port INTEGER NOT NULL DEFAULT 3001,
is_primary INTEGER NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'offline' CHECK(status IN ('online', 'offline', 'building')),
current_build_id INTEGER,
cpu_usage REAL DEFAULT 0.0,
memory_usage REAL DEFAULT 0.0,
memory_total_mb REAL DEFAULT 0.0,
disk_usage REAL DEFAULT 0.0,
last_heartbeat DATETIME,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (current_build_id) REFERENCES builds(id)
);
CREATE INDEX IF NOT EXISTS idx_builds_status ON builds(status);
CREATE INDEX IF NOT EXISTS idx_builds_package ON builds(package_name);
CREATE INDEX IF NOT EXISTS idx_builds_machine ON builds(machine_id);
CREATE INDEX IF NOT EXISTS idx_packages_status ON packages(status);
CREATE INDEX IF NOT EXISTS idx_machines_status ON machines(status);