def initial_values(self): distroseries = BuildableDistroSeries.findSeries(self.user) series = [ series for series in distroseries if series.status in (SeriesStatus.CURRENT, SeriesStatus.DEVELOPMENT) ] if IBranch.providedBy(self.context): recipe_text = MINIMAL_RECIPE_TEXT_BZR % self.context.identity elif IGitRepository.providedBy(self.context): default_ref = None if self.context.default_branch is not None: default_ref = self.context.getRefByPath( self.context.default_branch) if default_ref is not None: branch_name = default_ref.name else: branch_name = "ENTER-BRANCH-NAME" recipe_text = MINIMAL_RECIPE_TEXT_GIT % (self.context.identity, branch_name) elif IGitRef.providedBy(self.context): recipe_text = MINIMAL_RECIPE_TEXT_GIT % ( self.context.repository.identity, self.context.name) else: raise AssertionError("Unsupported context: %r" % (self.context, )) return { 'name': self._find_unused_name(self.user), 'recipe_text': recipe_text, 'owner': self.user, 'distroseries': series, 'build_daily': True, 'use_ppa': EXISTING_PPA, }
def requestBuild(self, archive, requester, distroseries, pocket=PackagePublishingPocket.RELEASE, manual=False): """See `ISourcePackageRecipe`.""" if not archive.is_ppa: raise NonPPABuildRequest buildable_distros = BuildableDistroSeries.findSeries(archive.owner) if distroseries not in buildable_distros: raise BuildNotAllowedForDistro(self, distroseries) reject_reason = archive.checkUpload( requester, distroseries, None, archive.default_component, pocket) if reject_reason is not None: raise reject_reason if self.isOverQuota(requester, distroseries): raise TooManyBuilds(self, distroseries) pending = IStore(self).find(SourcePackageRecipeBuild, SourcePackageRecipeBuild.recipe_id == self.id, SourcePackageRecipeBuild.distroseries_id == distroseries.id, SourcePackageRecipeBuild.archive_id == archive.id, SourcePackageRecipeBuild.status == BuildStatus.NEEDSBUILD) if pending.any() is not None: raise BuildAlreadyPending(self, distroseries) build = getUtility(ISourcePackageRecipeBuildSource).new(distroseries, self, requester, archive) build.queueBuild() queue_record = build.buildqueue_record if manual: queue_record.manualScore(queue_record.lastscore + 100) return build
def requestBuild(self, archive, requester, distroseries, pocket=PackagePublishingPocket.RELEASE, manual=False): """See `ISourcePackageRecipe`.""" if not archive.is_ppa: raise NonPPABuildRequest buildable_distros = BuildableDistroSeries.findSeries(archive.owner) if distroseries not in buildable_distros: raise BuildNotAllowedForDistro(self, distroseries) reject_reason = archive.checkUpload( requester, distroseries, None, archive.default_component, pocket) if reject_reason is not None: raise reject_reason pending = IStore(self).find(SourcePackageRecipeBuild, SourcePackageRecipeBuild.recipe_id == self.id, SourcePackageRecipeBuild.distroseries_id == distroseries.id, SourcePackageRecipeBuild.archive_id == archive.id, SourcePackageRecipeBuild.status == BuildStatus.NEEDSBUILD) if pending.any() is not None: raise BuildAlreadyPending(self, distroseries) build = getUtility(ISourcePackageRecipeBuildSource).new(distroseries, self, requester, archive) build.queueBuild() queue_record = build.buildqueue_record if manual: queue_record.manualScore(queue_record.lastscore + 100) return build
def initial_values(self): series = [ term.value for term in BuildableDistroSeries() if term.value.status in (SeriesStatus.CURRENT, SeriesStatus.DEVELOPMENT) ][0] return { 'owner': self.user, 'distro_series': series, 'metadata': '{}', }
def initial_values(self): distroseries = BuildableDistroSeries.findSeries(self.user) series = [series for series in distroseries if series.status in ( SeriesStatus.CURRENT, SeriesStatus.DEVELOPMENT)] return { 'name': self._find_unused_name(self.user), 'recipe_text': MINIMAL_RECIPE_TEXT % self.context.bzr_identity, 'owner': self.user, 'distroseries': series, 'build_daily': True, 'use_ppa': EXISTING_PPA, }
def initial_values(self): distroseries = BuildableDistroSeries.findSeries(self.user) series = [ series for series in distroseries if series.status in (SeriesStatus.CURRENT, SeriesStatus.DEVELOPMENT) ] return { 'name': self._find_unused_name(self.user), 'recipe_text': MINIMAL_RECIPE_TEXT % self.context.bzr_identity, 'owner': self.user, 'distroseries': series, 'build_daily': True, 'use_ppa': EXISTING_PPA, }
def performDailyBuild(self): """See `ISourcePackageRecipe`.""" builds = [] self.is_stale = False buildable_distros = set( BuildableDistroSeries.findSeries(self.daily_build_archive.owner)) build_for = set(self.distroseries).intersection(buildable_distros) for distroseries in build_for: try: build = self.requestBuild(self.daily_build_archive, self.owner, distroseries, PackagePublishingPocket.RELEASE) builds.append(build) except BuildAlreadyPending: continue return builds
def performDailyBuild(self): """See `ISourcePackageRecipe`.""" builds = [] self.is_stale = False buildable_distros = set(BuildableDistroSeries.findSeries( self.daily_build_archive.owner)) build_for = set(self.distroseries).intersection(buildable_distros) for distroseries in build_for: try: build = self.requestBuild( self.daily_build_archive, self.owner, distroseries, PackagePublishingPocket.RELEASE) builds.append(build) except BuildAlreadyPending: continue return builds
def containsUnbuildableSeries(self, archive): buildable_distros = set(BuildableDistroSeries.findSeries( archive.owner)) return len(set(self.distroseries).difference(buildable_distros)) >= 1
def containsUnbuildableSeries(self, archive): buildable_distros = set( BuildableDistroSeries.findSeries(archive.owner)) return len(set(self.distroseries).difference(buildable_distros)) >= 1