return list(builds)
- async def create(self, repo, package, owner=None, group=None, test=False):
+ async def create(self, repo, package, owner=None, group=None, test=False,
+ disable_test_builds=False):
"""
Creates a new build based on the given distribution and package
"""
pkg_id,
owner_id,
build_group_id,
- test
+ test,
+ disable_test_builds
)
VALUES
(
- %s, %s, %s, %s, %s
+ %s, %s, %s, %s, %s, %s
)
RETURNING *""",
repo,
owner,
group,
test,
+ disable_test_builds,
)
# Populate cache
self._send_email("builds/messages/failed.txt")
# Create any test builds
- if success and not self.is_test():
+ if success:
return await self.create_test_builds()
def has_finished(self):
"""
This creates test builds for this build
"""
+ # You cannot create any test builds for test builds
+ if self.is_test():
+ return
+
+ # Don't create any test builds if requested to be disabled
+ if self.data.disable_test_builds:
+ log.debug("Creating test builds has been disabled for %s" % self)
+ return
+
builds = {}
# Map all builds by their name
deprecated_at timestamp without time zone,
deprecated_by integer,
test_group_id integer,
- test boolean DEFAULT false NOT NULL
+ test boolean DEFAULT false NOT NULL,
+ disable_tests boolean DEFAULT false NOT NULL
);
# Fetch the repository
repo_name = self.get_argument("repo", None)
+ # Did the uploader request to disable test builds?
+ disable_test_builds = self.get_argument_bool("disable_test_builds")
+
with self.db.transaction():
# Import the package
try:
raise tornado.web.HTTPError(404, "Could not find repository")
# Create a new build
- build = await self.backend.builds.create(repo, package, owner=self.current_user)
+ build = await self.backend.builds.create(repo, package,
+ owner=self.current_user, disable_test_builds=disable_test_builds)
# Delete the upload
await upload.delete()