...
1CREATE SCHEMA IF NOT EXISTS test_infra;
2SET SCHEMA 'test_infra';
3
4CREATE OR REPLACE FUNCTION trigger_set_timestamp() RETURNS TRIGGER
5LANGUAGE plpgsql AS $func$
6BEGIN
7 NEW.updated_at = NOW();
8 RETURN NEW;
9END $func$;
10
11-- tbl edge_jobs
12CREATE TABLE IF NOT EXISTS edge_jobs (
13 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
14 created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
15 updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
16 elapsed BIGINT,
17 started TIMESTAMPTZ,
18 finished TIMESTAMPTZ,
19 version TEXT,
20 path TEXT,
21 job TEXT,
22 workflow TEXT,
23 number TEXT CONSTRAINT unique_number UNIQUE, -- runID + unique string
24 run TEXT, -- runID
25 tests_run INTEGER,
26 tests_failed INTEGER,
27 passed BOOLEAN,
28 repos TEXT,
29 repo_commit TEXT
30);
31
32CREATE OR REPLACE TRIGGER edge_jobs_timestamp BEFORE
33UPDATE ON edge_jobs FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();
34
35-- tbl edge_job_metadatas
36CREATE TABLE IF NOT EXISTS edge_job_metadatas (
37 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
38 created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
39 updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
40 edge_job UUID NOT NULL REFERENCES edge_jobs(id) ON DELETE CASCADE,
41 key TEXT,
42 value TEXT
43);
44
45CREATE INDEX IF NOT EXISTS idx_edge_job_fkey ON edge_job_metadatas (edge_job);
46CREATE INDEX IF NOT EXISTS idx_edge_job_fkey_inc_key_value ON edge_job_metadatas (edge_job) INCLUDE (key, value);
47
48CREATE OR REPLACE TRIGGER edge_job_metadatas_timestamp BEFORE
49UPDATE ON edge_job_metadatas FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();
50
51-- tbl edge_job_tests
52CREATE TABLE IF NOT EXISTS edge_job_tests (
53 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,
54 created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
55 updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
56 edge_job UUID NOT NULL REFERENCES edge_jobs(id) ON DELETE CASCADE,
57 name TEXT,
58 suite TEXT,
59 time BIGINT, -- convert to some other time / duration type?
60 failed BOOLEAN,
61 failure_text TEXT
62);
63
64CREATE INDEX IF NOT EXISTS idx_edge_job_fkey ON edge_job_tests (edge_job);
65
66CREATE OR REPLACE TRIGGER edge_job_tests_timestamp BEFORE
67UPDATE ON edge_job_tests FOR EACH ROW EXECUTE PROCEDURE trigger_set_timestamp();
View as plain text