# Check
async def check(self):
- release = None
+ log.info("Checking for new releases for %s" % self)
- # Wait until we are allowed to send an API request
- async with ratelimiter:
- log.info("Checking for new releases for %s" % self)
+ release = None
- # Fetch the current versions
- versions = await self._fetch_versions()
+ # Fetch the current versions
+ versions = await self._fetch_versions()
- with self.db.transaction():
- # Store timestamp of this check
- self._set_attribute_now("last_check_at")
+ with self.db.transaction():
+ # Store timestamp of this check
+ self._set_attribute_now("last_check_at")
- try:
- if self.follow == "latest":
- release = await self._follow_latest(versions)
- elif self.follow == "stable":
- release = await self._follow_stable(versions)
- elif self.follow == "current-branch":
- release = await self._follow_current_branch(versions)
- else:
- raise ValueError("Cannot handle follow: %s" % self.follow)
-
- # If the release exists, do nothing
- except ReleaseExistsError as e:
- log.debug("Release %s already exists" % e)
-
- # The latest build is newer than this release
- except BuildExistsError as e:
- log.debug("Latest build is newer")
-
- # Launch the build
- if release and release.build:
- await self.backend.builds.launch([release.build])
+ try:
+ if self.follow == "latest":
+ release = await self._follow_latest(versions)
+ elif self.follow == "stable":
+ release = await self._follow_stable(versions)
+ elif self.follow == "current-branch":
+ release = await self._follow_current_branch(versions)
+ else:
+ raise ValueError("Cannot handle follow: %s" % self.follow)
+
+ # If the release exists, do nothing
+ except ReleaseExistsError as e:
+ log.debug("Release %s already exists" % e)
+
+ # The latest build is newer than this release
+ except BuildExistsError as e:
+ log.debug("Latest build is newer")
+
+ # Launch the build
+ if release and release.build:
+ await self.backend.builds.launch([release.build])
async def _fetch_versions(self):
"""
Fetches all versions for this project
"""
- response = await self.backend.monitorings._request(
- "GET", "/api/v2/versions/", {
- "project_id" : self.project_id,
- },
- )
+ # Wait until we are allowed to send an API request
+ async with ratelimiter:
+ response = await self.backend.monitorings._request(
+ "GET", "/api/v2/versions/", {
+ "project_id" : self.project_id,
+ },
+ )
# Parse the response as JSON and return it
return database.Row(response)