from buildfarm import dependency_walker
    packages = dependency_walker.get_packages(workspace, rd, skip_update=args.skip_update)
    dependencies = dependency_walker.get_jenkins_dependencies(args.rosdistro, packages)

    yum_target_repository = rd._build_files[0].yum_target_repository
    if args.fqdn is None:
        fqdn_parts = urlsplit(yum_target_repository)
        args.fqdn = fqdn_parts.netloc
    if args.arches is None:
        args.arches = rd.get_arches()

    release_jobs.check_for_circular_dependencies(dependencies)

    # even for wet_only the dry packages need to be consider, else they are not added as downstream dependencies for the wet jobs
    stack_depends, dry_maintainers = release_jobs.dry_get_stack_dependencies(args.rosdistro)
    dry_jobgraph = release_jobs.dry_generate_jobgraph(args.rosdistro, dependencies, stack_depends)

    combined_jobgraph = {}
    for k, v in dependencies.iteritems():
        combined_jobgraph[k] = v
    for k, v in dry_jobgraph.iteritems():
        combined_jobgraph[k] = v

    # setup a job triggered by all other rpmjobs
    combined_jobgraph[rpmify_package_name(args.rosdistro, 'metapackages')] = combined_jobgraph.keys()
    combined_jobgraph[rpmify_package_name(args.rosdistro, 'sync')] = [rpmify_package_name(args.rosdistro, 'metapackages')]

    results_map = doit(
        rd,
        args.distros,
        args.arches,
            rd._repoinfo,
            args.rosdistro,
            skip_update=args.skip_update)
        dependencies = dependency_walker_fuerte.get_dependencies(
            args.rosdistro, stacks)
        packages = stacks
        sourcedeb_timeout = None
        binarydeb_timeout = None

    release_jobs.check_for_circular_dependencies(dependencies)

    if args.rosdistro == 'groovy':
        # even for wet_only the dry packages need to be consider, else they are not added as downstream dependencies for the wet jobs
        stack_depends, dry_maintainers = release_jobs.dry_get_stack_dependencies(
            args.rosdistro, workspace)
        dry_jobgraph = release_jobs.dry_generate_jobgraph(
            args.rosdistro, dependencies, stack_depends)
    else:
        stack_depends, dry_maintainers = {}, {}
        dry_jobgraph = {}

    combined_jobgraph = {}
    for k, v in dry_jobgraph.iteritems():
        combined_jobgraph[k] = v
    for k, v in dependencies.iteritems():
        combined_jobgraph[k] = v

    # setup a job triggered by all other debjobs
    combined_jobgraph[debianize_package_name(
        args.rosdistro, 'metapackages')] = combined_jobgraph.keys()
    combined_jobgraph[debianize_package_name(args.rosdistro, 'sync')] = [
        debianize_package_name(args.rosdistro, 'metapackages')
Beispiel #3
0
        sys.exit(1)
    if repo_map['release-name'] != args.rosdistro:
        print('release-name mismatch (%s != %s)' % (repo_map['release-name'], args.rosdistro))
        sys.exit(1)
    if 'repositories' not in repo_map:
        print('No "repositories" key in yaml file')
    if 'type' not in repo_map or repo_map['type'] != 'gbp':
        print('Wrong type value in yaml file')
        sys.exit(1)

    workspace = args.repos
    try:
        if not args.repos:
            workspace = tempfile.mkdtemp()
        (dependencies, package_names_by_url) = dependency_walker.get_dependencies(workspace, repo_map['repositories'], args.rosdistro)
        dry_jobgraph = release_jobs.dry_generate_jobgraph(args.rosdistro)

        combined_jobgraph = {}
        for k, v in dependencies.iteritems():
            combined_jobgraph[k] = v
        for k, v in dry_jobgraph.iteritems():
            combined_jobgraph[k] = v

        # setup a job triggered by all other debjobs
        combined_jobgraph[debianize_package_name(args.rosdistro, 'metapackages')] = combined_jobgraph.keys()

    finally:
        if not args.repos:
            shutil.rmtree(workspace)

    missing = release_jobs.compute_missing(
        sys.exit(1)
    if repo_map['release-name'] != args.rosdistro:
        print('release-name mismatch (%s != %s)' % (repo_map['release-name'], args.rosdistro))
        sys.exit(1)
    if 'repositories' not in repo_map:
        print('No "repositories" key in yaml file')
    if 'type' not in repo_map or repo_map['type'] != 'gbp':
        print('Wrong type value in yaml file')
        sys.exit(1)

    workspace = args.repos
    try:
        if not args.repos:
            workspace = tempfile.mkdtemp()
        (dependencies, package_names_by_url) = dependency_walker.get_dependencies(workspace, repo_map['repositories'], args.rosdistro)
        dry_jobgraph = release_jobs.dry_generate_jobgraph(args.rosdistro) 
        
        combined_jobgraph = {}
        for k, v in dependencies.iteritems():
            combined_jobgraph[k] = v
        for k, v in dry_jobgraph.iteritems():
            combined_jobgraph[k] = v

        # setup a job triggered by all other debjobs 
        combined_jobgraph[debianize_package_name(args.rosdistro, 'metapackages')] = combined_jobgraph.keys()

    finally:
        if not args.repos:
            shutil.rmtree(workspace)

    results_map = doit(repo_map,