OXYGENHUB
◆ v0.6.0 oxygenhub / crates / hub / migrations / 0048_test_reports.sql
1.4 KiB · SQL · last changed Test reports from a job's junit artifact (part 1) 1 month ago source blame history raw
0b203bbf Andy McCall ↶ 1
-- Test reports from OxygenFlow jobs (oxygenhub#114): a job's artifact
2
-- named `junit` (JUnit XML) is parsed when uploaded. The counts are kept
3
-- per report and every case with its status and time; a failure's message
4
-- and output are kept cut to a size a page can show.
5
CREATE TABLE test_reports (
6
    id          INTEGER PRIMARY KEY,
7
    repo_id     INTEGER NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
8
    run_id      INTEGER NOT NULL REFERENCES flow_runs(id) ON DELETE CASCADE,
9
    job_id      INTEGER NOT NULL UNIQUE,
10
    job         TEXT NOT NULL,
11
    run_number  INTEGER NOT NULL,
12
    bookmark    TEXT NOT NULL,
13
    state       TEXT NOT NULL,
14
    blob        TEXT NOT NULL,
15
    tests       INTEGER NOT NULL,
16
    passed      INTEGER NOT NULL,
17
    failed      INTEGER NOT NULL,
18
    errors      INTEGER NOT NULL,
19
    skipped     INTEGER NOT NULL,
20
    time_ms     INTEGER NOT NULL,
21
    created_ms  INTEGER NOT NULL
22
);
23
CREATE INDEX test_reports_bookmark ON test_reports (repo_id, bookmark, created_ms);
24
CREATE TABLE test_cases (
25
    report_id   INTEGER NOT NULL REFERENCES test_reports(id) ON DELETE CASCADE,
26
    idx         INTEGER NOT NULL,
27
    suite       TEXT NOT NULL,
28
    classname   TEXT NOT NULL,
29
    name        TEXT NOT NULL,
30
    status      TEXT NOT NULL,
31
    time_ms     INTEGER NOT NULL,
32
    message     TEXT NOT NULL,
33
    output      TEXT NOT NULL,
34
    PRIMARY KEY (report_id, idx)
35
);
36
CREATE INDEX test_cases_name ON test_cases (classname, name);