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'] != 'devel': print('Wrong type value in yaml file') sys.exit(1) workspace = args.repos try: if not args.repos: workspace = tempfile.mkdtemp() stacks = {} for name, repo in repo_map['repositories'].items(): stacks[name] = get_stack_of_remote_repository(name, repo['type'], repo['url'], repo['version'] if 'version' in repo else None) finally: if not args.repos: shutil.rmtree(workspace) results_map = doit(repo_map, stacks, args.distros, args.fqdn, rosdistro=args.rosdistro, commit=args.commit, delete_extra_jobs=args.delete) if not args.commit: print('This was not pushed to the server. If you want to do so use "--commit" to do it for real.')
def generate_ci_devel_yaml(yaml_filename, workspace=None): y = yaml.load(open(yaml_filename)) #print y #for k in y.keys(): # print k source_repos = [] release_repos = y['repositories'] #print release_repos for name, release_repo in release_repos.items(): url = release_repo['url'] prefix = 'git://github.com/' suffix = '.git' if not url.startswith(prefix) or not url.endswith(suffix): sys.stderr.write('skipping unknown repository (%s, %s)\n' % (name, url)) continue new_prefix = 'https://raw.github.com/' base_url = new_prefix + url[len(prefix):-len(suffix)] upstream, upstream_type = _get_upstream_info(base_url) #print upstream, upstream_type if upstream is None or upstream_type is None: sys.stderr.write('reading upstream info failed (%s, %s)\n' % (name, base_url)) continue #print upstream, upstream_type if not upstream_type in ['git', 'hg', 'svn']: sys.stderr.write('skipping unknown repository type "%s" (%s, %s)\n' % (upstream_type, name, url)) continue # fetch stack.xml from source repo try: stack = get_stack_of_remote_repository(name, upstream_type, upstream, workspace) except IOError: sys.stderr.write('skipping repository "%s" without stack.xml (%s)\n' % (name, url)) continue except rospkg.stack.InvalidStack, e: sys.stderr.write('skipping repository "%s" with invalid stack.xml (%s): %s\n' % (name, url, str(e))) continue maintainer_email = ' '.join([m.email for m in stack.maintainers]) stack_build_depends = [d.name for d in stack.build_depends] source_repo = { 'type': 'catkin', 'name': stack.name, 'email': maintainer_email, 'label': 'devel', 'params': { 'stack-build-depends': stack_build_depends, 'profiles': ['devel'], # legacy stuff required by rospkg.distro } } upstream_type_data = { 'distro-tag': 'distro', # legacy stuff required by rospkg.distro 'release-tag': 'x.y.z', # legacy stuff required by rospkg.distro } if upstream_type == 'git' or upstream_type == 'hg': upstream_type_data['uri'] = upstream if upstream_type == 'git': upstream_type_data['dev-branch'] = 'master' elif upstream_type == 'hg': upstream_type_data['dev-branch'] = 'default' elif upstream_type == 'svn': upstream_type_data['dev'] = upstream source_repo['vcs_config'] = {upstream_type: upstream_type_data} sys.stderr.write(str(source_repo) + '\n') source_repos.append(source_repo)
def generate_ci_devel_yaml(yaml_filename, workspace=None): y = yaml.load(open(yaml_filename)) #print y #for k in y.keys(): # print k source_repos = [] release_repos = y['repositories'] #print release_repos for name, release_repo in release_repos.items(): url = release_repo['url'] prefix = 'git://github.com/' suffix = '.git' if not url.startswith(prefix) or not url.endswith(suffix): sys.stderr.write('skipping unknown repository (%s, %s)\n' % (name, url)) continue new_prefix = 'https://raw.github.com/' base_url = new_prefix + url[len(prefix):-len(suffix)] upstream, upstream_type = _get_upstream_info(base_url) #print upstream, upstream_type if upstream is None or upstream_type is None: sys.stderr.write('reading upstream info failed (%s, %s)\n' % (name, base_url)) continue #print upstream, upstream_type if not upstream_type in ['git', 'hg', 'svn']: sys.stderr.write('skipping unknown repository type "%s" (%s, %s)\n' % (upstream_type, name, url)) continue # fetch stack.xml from source repo try: stack = get_stack_of_remote_repository(name, upstream_type, upstream, workspace) except IOError: sys.stderr.write('skipping repository "%s" without stack.xml (%s)\n' % (name, url)) continue except rospkg.stack.InvalidStack, e: sys.stderr.write('skipping repository "%s" with invalid stack.xml (%s): %s\n' % (name, url, str(e))) continue maintainer_email = ' '.join([m.email for m in stack.maintainers]) stack_build_depends = [d.name for d in stack.build_depends] source_repo = { 'type': 'catkin', 'name': stack.name, 'email': maintainer_email, 'label': 'devel', 'params': { 'stack-build-depends': stack_build_depends, 'profiles': ['devel'], # legacy stuff required by rospkg.distro } } upstream_type_data = { 'distro-tag': 'distro', # legacy stuff required by rospkg.distro 'release-tag': 'x.y.z', # legacy stuff required by rospkg.distro } if upstream_type == 'git' or upstream_type == 'hg': upstream_type_data['uri'] = upstream if upstream_type == 'git': upstream_type_data['dev-branch'] = 'master' elif upstream_type == 'hg': upstream_type_data['dev-branch'] = 'default' elif upstream_type == 'svn': upstream_type_data['dev'] = upstream source_repo['vcs_config'] = {upstream_type: upstream_type_data} sys.stderr.write(str(source_repo) + '\n') source_repos.append(source_repo)
(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'] != 'devel': print('Wrong type value in yaml file') sys.exit(1) workspace = args.repos try: if not args.repos: workspace = tempfile.mkdtemp() stacks = {} for name, repo in repo_map['repositories'].items(): stacks[name] = get_stack_of_remote_repository( name, repo['type'], repo['url'], repo['version'] if 'version' in repo else None) finally: if not args.repos: shutil.rmtree(workspace) results_map = doit(repo_map, stacks, args.distros, args.fqdn, rosdistro=args.rosdistro, commit=args.commit, delete_extra_jobs=args.delete) if not args.commit: