return
# Create a build group for all tests
- group = self.backend.builds.groups.create(owner=self.owner)
+ group = self.backend.builds.groups.create(owner=self.owner, tested_build=self)
# Create a test build only for the latest version of each package
for name in builds:
""", uuid,
)
- def create(self, owner=None):
+ def create(self, owner=None, tested_build=None):
"""
Creates a new Build Group
"""
INSERT INTO
build_groups
(
- created_by
+ created_by,
+ tested_build_id
)
VALUES(
- %s
+ %s, %s
)
RETURNING
*
- """, owner,
+ """, owner, tested_build,
)
"""
return [b for b in self.builds if b.has_failed()]
+ # Tested Build
+
+ @lazy_property
+ def tested_build(self):
+ if self.data.tested_build_id:
+ return self.backend.builds.get_by_id(self.data.tested_build_id)
+
+ def is_test(self):
+ """
+ Returns True if this is a test group
+ """
+ if self.data.tested_build_id:
+ return True
+
+ return False
+
# Delete
async def delete(self, user=None):
"""
return all((b.has_finished() for b in self.builds))
- def is_test(self):
- """
- Returns True if this is a test group (i.e. all builds are test builds)
- """
- return all((b.is_test() for b in self.builds))
-
async def _build_finished(self, build):
"""
Called when a build has finished
created_at timestamp without time zone DEFAULT CURRENT_TIMESTAMP NOT NULL,
created_by integer,
deleted_at timestamp without time zone,
- deleted_by integer
+ deleted_by integer,
+ finished_at timestamp without time zone,
+ failed boolean DEFAULT false NOT NULL,
+ tested_build_id integer
);
ADD CONSTRAINT build_groups_deleted_by FOREIGN KEY (deleted_by) REFERENCES public.users(id);
+--
+-- Name: build_groups build_groups_tested_build_id; Type: FK CONSTRAINT; Schema: public; Owner: -
+--
+
+ALTER TABLE ONLY public.build_groups
+ ADD CONSTRAINT build_groups_tested_build_id FOREIGN KEY (tested_build_id) REFERENCES public.builds(id);
+
+
--
-- Name: build_packages build_packages_build_id; Type: FK CONSTRAINT; Schema: public; Owner: -
--