def sched_builder(self): for project in sorted(Project.get_all(), key=lambda p: p.name): if (project.name == ""): continue try: log.msg("checking project: %s" % project.name) if project.is_building(): log.msg("project %s still building, skip" % project.name) continue branch = "master" git = Git(project) if os.path.isdir(git.workdir): git.checkout_branch(branch) git.pull() else: git.clone(branch) if not os.path.isdir(git.workdir): continue for remote_branch in git.branches(remote=True): git.checkout_remote_branch(remote_branch.replace('origin/', '')) for release in ('stable', 'testing', 'unstable'): if project.last_tag(release) != git.last_tag(release): try: _, version = git.last_tag(release).split('_') log.msg("new %s tag, building version: %s" % (release, version)) d = threads.deferToThread(self.send_job, project.name, branch, release, version) except Exception, e: log.msg("tag not parsed: %s:%s" % (project.name, git.last_tag(release))) except Exception, e: log.err(e)
def sched_builder(self): for project in sorted(Project.get_all(), key=lambda p: p.name): if (project.name == ""): continue try: log.msg("checking project: %s" % project.name) if project.is_building(): log.msg("project %s still building, skip" % project.name) continue branch = "master" git = Git(project) if os.path.isdir(git.workdir): git.checkout_branch(branch) git.pull() else: git.clone(branch) if not os.path.isdir(git.workdir): continue for remote_branch in git.branches(remote=True): git.checkout_remote_branch( remote_branch.replace('origin/', '')) for release in ('stable', 'testing', 'unstable'): if project.last_tag(release) != git.last_tag(release): try: _, version = git.last_tag(release).split('_') log.msg("new %s tag, building version: %s" % (release, version)) d = threads.deferToThread(self.send_job, project.name, branch, release, version) except Exception, e: log.msg("tag not parsed: %s:%s" % (project.name, git.last_tag(release))) except Exception, e: log.err(e)
def get(self, branch="master"): projects = Project.get_all() response = map(lambda current: _project_json(current, branch), projects) self.write(escape.json_encode(response))