Skip to main content

max / makenotwork

1.5 KB · 37 lines History Blame Raw
1 -- Build pipeline: automated OTA builds triggered by git tags.
2
3 CREATE TABLE ota_build_configs (
4 id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
5 app_id UUID NOT NULL REFERENCES sync_apps(id) ON DELETE CASCADE,
6 repo_id UUID NOT NULL REFERENCES git_repos(id) ON DELETE CASCADE,
7 build_command TEXT NOT NULL,
8 artifact_path TEXT NOT NULL,
9 signing_key_path TEXT NOT NULL DEFAULT '',
10 targets TEXT[] NOT NULL DEFAULT ARRAY['linux/x86_64', 'linux/aarch64'],
11 enabled BOOLEAN NOT NULL DEFAULT true,
12 created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
13 updated_at TIMESTAMPTZ NOT NULL DEFAULT now(),
14 UNIQUE(app_id)
15 );
16
17 CREATE TABLE ota_builds (
18 id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
19 config_id UUID NOT NULL REFERENCES ota_build_configs(id) ON DELETE CASCADE,
20 app_id UUID NOT NULL REFERENCES sync_apps(id) ON DELETE CASCADE,
21 version TEXT NOT NULL,
22 tag TEXT NOT NULL,
23 status TEXT NOT NULL DEFAULT 'pending',
24 started_at TIMESTAMPTZ,
25 finished_at TIMESTAMPTZ,
26 log TEXT NOT NULL DEFAULT '',
27 error_message TEXT,
28 release_id UUID REFERENCES ota_releases(id) ON DELETE SET NULL,
29 triggered_by TEXT NOT NULL DEFAULT 'tag',
30 created_at TIMESTAMPTZ NOT NULL DEFAULT now()
31 );
32
33 CREATE INDEX idx_ota_build_configs_repo_id ON ota_build_configs(repo_id);
34 CREATE INDEX idx_ota_builds_config_id ON ota_builds(config_id);
35 CREATE INDEX idx_ota_builds_status ON ota_builds(status);
36 CREATE INDEX idx_ota_builds_created_at ON ota_builds(created_at DESC);
37