Skip to content

Commit 3392a05

Browse files
committed
WIP: add treeListing model
1 parent cf2407e commit 3392a05

File tree

2 files changed

+136
-0
lines changed

2 files changed

+136
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Generated by Django 5.1.12 on 2025-10-08 16:59
2+
3+
import django.contrib.postgres.fields
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
("kernelCI_app", "0003_add_build_series_field"),
11+
]
12+
13+
operations = [
14+
migrations.CreateModel(
15+
name="TreeListing",
16+
fields=[
17+
("id", models.TextField(primary_key=True, serialize=False)),
18+
("field_timestamp", models.DateTimeField(db_column="_timestamp")),
19+
("checkout_id", models.TextField()),
20+
("origin", models.TextField()),
21+
("tree_name", models.TextField(blank=True, null=True)),
22+
("git_repository_url", models.TextField(blank=True, null=True)),
23+
("git_repository_branch", models.TextField(blank=True, null=True)),
24+
("git_commit_hash", models.TextField(blank=True, null=True)),
25+
("git_commit_name", models.TextField(blank=True, null=True)),
26+
(
27+
"git_commit_tags",
28+
django.contrib.postgres.fields.ArrayField(
29+
base_field=models.TextField(), size=None
30+
),
31+
),
32+
("start_time", models.DateTimeField(blank=True, null=True)),
33+
(
34+
"origin_builds_finish_time",
35+
models.DateTimeField(blank=True, null=True),
36+
),
37+
(
38+
"origin_tests_finish_time",
39+
models.DateTimeField(blank=True, null=True),
40+
),
41+
("pass_builds", models.IntegerField(default=0)),
42+
("fail_builds", models.IntegerField(default=0)),
43+
("done_builds", models.IntegerField(default=0)),
44+
("miss_builds", models.IntegerField(default=0)),
45+
("skip_builds", models.IntegerField(default=0)),
46+
("error_builds", models.IntegerField(default=0)),
47+
("null_builds", models.IntegerField(default=0)),
48+
("pass_boots", models.IntegerField(default=0)),
49+
("fail_boots", models.IntegerField(default=0)),
50+
("done_boots", models.IntegerField(default=0)),
51+
("miss_boots", models.IntegerField(default=0)),
52+
("skip_boots", models.IntegerField(default=0)),
53+
("error_boots", models.IntegerField(default=0)),
54+
("null_boots", models.IntegerField(default=0)),
55+
("pass_tests", models.IntegerField(default=0)),
56+
("fail_tests", models.IntegerField(default=0)),
57+
("done_tests", models.IntegerField(default=0)),
58+
("miss_tests", models.IntegerField(default=0)),
59+
("skip_tests", models.IntegerField(default=0)),
60+
("error_tests", models.IntegerField(default=0)),
61+
("null_tests", models.IntegerField(default=0)),
62+
],
63+
options={
64+
"db_table": "tree_listing",
65+
"constraints": [
66+
models.UniqueConstraint(
67+
fields=(
68+
"origin",
69+
"tree_name",
70+
"git_repository_url",
71+
"git_repository_branch",
72+
),
73+
name="unique_tree",
74+
)
75+
],
76+
},
77+
),
78+
]

backend/kernelCI_app/models.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,61 @@ class Incidents(models.Model):
164164

165165
class Meta:
166166
db_table = "incidents"
167+
168+
169+
class TreeListing(models.Model):
170+
id = models.TextField(primary_key=True) # Arbitrary number
171+
field_timestamp = models.DateTimeField(db_column="_timestamp") # Created at
172+
checkout_id = models.TextField()
173+
origin = models.TextField()
174+
tree_name = models.TextField(blank=True, null=True)
175+
git_repository_url = models.TextField(blank=True, null=True)
176+
git_repository_branch = models.TextField(blank=True, null=True)
177+
git_commit_hash = models.TextField(blank=True, null=True)
178+
git_commit_name = models.TextField(blank=True, null=True)
179+
git_commit_tags = ArrayField(models.TextField()) # Cannot be null, but can be empty
180+
start_time = models.DateTimeField(blank=True, null=True)
181+
origin_builds_finish_time = models.DateTimeField(blank=True, null=True)
182+
origin_tests_finish_time = models.DateTimeField(blank=True, null=True)
183+
184+
pass_builds = models.IntegerField(default=0)
185+
fail_builds = models.IntegerField(default=0)
186+
done_builds = models.IntegerField(default=0)
187+
miss_builds = models.IntegerField(default=0)
188+
skip_builds = models.IntegerField(default=0)
189+
error_builds = models.IntegerField(default=0)
190+
null_builds = models.IntegerField(default=0)
191+
192+
pass_boots = models.IntegerField(default=0)
193+
fail_boots = models.IntegerField(default=0)
194+
done_boots = models.IntegerField(default=0)
195+
miss_boots = models.IntegerField(default=0)
196+
skip_boots = models.IntegerField(default=0)
197+
error_boots = models.IntegerField(default=0)
198+
null_boots = models.IntegerField(default=0)
199+
200+
pass_tests = models.IntegerField(default=0)
201+
fail_tests = models.IntegerField(default=0)
202+
done_tests = models.IntegerField(default=0)
203+
miss_tests = models.IntegerField(default=0)
204+
skip_tests = models.IntegerField(default=0)
205+
error_tests = models.IntegerField(default=0)
206+
null_tests = models.IntegerField(default=0)
207+
208+
class Meta:
209+
db_table = "tree_listing"
210+
constraints = [
211+
models.UniqueConstraint(
212+
fields=[
213+
"origin",
214+
"tree_name",
215+
"git_repository_url",
216+
"git_repository_branch",
217+
],
218+
name="unique_tree",
219+
)
220+
]
221+
indexes = [
222+
models.Index(fields=["start_time"], name="tree_listing_start_time"),
223+
models.Index(fields=["origin"], name="tree_listing_origin"),
224+
]

0 commit comments

Comments
 (0)