Promote as a real deployment; version state and scope dropdowns
Turns promotion into a first-class deployment (action='promote') so it lands in the deployments UI with before/after content, per-server restart tracking, and one-click rollback. Non-beta matching-scope servers get restart_state= pending so the existing sweep drains and restarts them the same way drift does. Also adds a per-version state (untested/tested/test-failed) so the upload flow can visibly signal that a beta must land before promotion, and swaps the scope-value text box for game/map dropdowns populated from the fleet. Beta rollback at ready-promote is now labelled Reject and marks the version test-failed. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,7 @@ CREATE TABLE IF NOT EXISTS script_versions (
|
||||
size INTEGER NOT NULL,
|
||||
content BLOB NOT NULL,
|
||||
notes TEXT,
|
||||
state TEXT NOT NULL DEFAULT 'untested', -- 'untested' | 'tested' | 'test-failed'
|
||||
uploaded_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
|
||||
UNIQUE(script_id, version)
|
||||
);
|
||||
@@ -96,11 +97,16 @@ CREATE TABLE IF NOT EXISTS beta_servers (
|
||||
CREATE INDEX IF NOT EXISTS idx_beta_servers_stage ON beta_servers(stage);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS deployments (
|
||||
id TEXT PRIMARY KEY,
|
||||
action TEXT NOT NULL,
|
||||
started_at TEXT NOT NULL,
|
||||
finished_at TEXT,
|
||||
triggered_by TEXT
|
||||
id TEXT PRIMARY KEY,
|
||||
action TEXT NOT NULL, -- 'drift' | 'promote' | 'rollback'
|
||||
started_at TEXT NOT NULL,
|
||||
finished_at TEXT,
|
||||
triggered_by TEXT,
|
||||
script_id INTEGER REFERENCES scripts(id), -- promote/rollback only
|
||||
script_version_id INTEGER REFERENCES script_versions(id), -- the version this deployment lands / restores
|
||||
prior_version_id INTEGER REFERENCES script_versions(id), -- current_version_id before this promote
|
||||
beta_id INTEGER REFERENCES betas(id), -- promote only
|
||||
rolled_back_by TEXT REFERENCES deployments(id) -- set on the promote row when a rollback reverses it
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_deployments_started ON deployments(started_at DESC);
|
||||
|
||||
Reference in New Issue
Block a user