def test_get_default_archive(self): """ Return the archive with the default flag set to True. """ self.assertIsNone(get_default_archive()) default = ArchiveFactory.create(name="default", default=True) self.assertEqual(default, get_default_archive())
def generate_checksums(build_pk): """ This task should ask the archive transport to generate checksum files for each project build the specified build has caused. """ build = Build.objects.get(pk=build_pk) archive = get_default_archive() transport = archive.get_transport() archived_artifacts = archive.get_archived_artifacts_for_build(build) transport.start() for artifact in archived_artifacts: if artifact.projectbuild_dependency: logging.info("Generating checksums for %s" % artifact) transport.generate_checksums(artifact) transport.end()
def get_context_data(self, **kwargs): """ Supplement the projectbuilds with the project: """ context = super( ProjectBuildDetailView, self).get_context_data(**kwargs) context["project"] = self._get_project_from_url() context["projectbuild"] = self._get_build_from_url() context["dependencies"] = self._get_build_dependencies( context["projectbuild"]) archive = get_default_archive() if archive: context["archived_items"] = archive.items.filter( projectbuild_dependency__projectbuild=context["projectbuild"]) return context
def generate_checksums(build_pk): """ This task should ask the archive transport to generate checksum files for each project build the specified build has caused. """ build = Build.objects.get(pk=build_pk) archive = get_default_archive() if not archive: logging.info("No default archiver - no checksum to generate") return build_pk transport = archive.get_transport() archived_artifacts = archive.get_archived_artifacts_for_build(build) transport.start() for artifact in archived_artifacts: if artifact.projectbuild_dependency: logging.info("Generating checksums for %s" % artifact) transport.generate_checksums(artifact) transport.end() return build_pk
def process_build_artifacts(build_pk): """ This task should be triggered after we've imported the artifacts from Jenkins for a build. """ build = Build.objects.get(pk=build_pk) logging.info( "Processing build artifacts from build %s %d", build, build.number) archive = get_default_archive() if archive: items = archive.add_build(build) logging.info("Archiving %s", items) for artifact, files in items.items(): first, rest = files[0], files[1:] chain( archive_artifact_from_jenkins.si(first.pk), *[link_artifact_in_archive.si(first.pk, item.pk) for item in rest]).apply() else: logging.info("No default archiver - build not automatically archived.") return build_pk
def process_build_artifacts(build_pk): """ This task should be triggered after we've imported the artifacts from Jenkins for a build. """ build = Build.objects.get(pk=build_pk) logging.info("Processing build artifacts from build %s %d", build, build.number) archive = get_default_archive() if archive: items = archive.add_build(build) logging.info("Archiving %s", items) for artifact, files in items.items(): first, rest = files[0], files[1:] chain( archive_artifact_from_jenkins.si(first.pk), *[ link_artifact_in_archive.si(first.pk, item.pk) for item in rest ]).apply() else: logging.info("No default archiver - build not automatically archived.") return build_pk
def process_build_artifacts(build_pk): """ This task should be triggered after we've imported the artifacts from Jenkins for a build. """ build = Build.objects.get(pk=build_pk) logger.info("Processing build artifacts from build %s" % build) if build.build_id: dependency = ProjectBuildDependency.objects.filter( dependency__job=build.job, projectbuild__build_key=build.build_id).first() # TODO: Handle generic dependency builds. if dependency: projectbuild = dependency.projectbuild archive = get_default_archive() if archive: items = archive.archive_projectbuild(projectbuild) for item in items: archive_artifact_from_jenkins.delay(item.artifact.pk, archive.pk) else: logger.info("No default archiver - projectbuild not automatically archived.") return build_pk