def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(
        description="Generate a 'doc' job on Jenkins")
    add_argument_config_url(parser)
    add_argument_rosdistro_name(parser)
    add_argument_build_name(parser, 'doc')
    add_argument_repository_name(parser)
    add_argument_os_name(parser)
    add_argument_os_code_name(parser)
    add_argument_arch(parser)
    args = parser.parse_args(argv)

    configure_doc_job(
        args.config_url, args.rosdistro_name, args.doc_build_name,
        args.repository_name, args.os_name, args.os_code_name, args.arch)
Exemplo n.º 2
0
def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(
        description="Generate a 'doc' job on Jenkins")
    add_argument_config_url(parser)
    add_argument_rosdistro_name(parser)
    add_argument_build_name(parser, 'doc')
    add_argument_repository_name(parser)
    add_argument_os_name(parser)
    add_argument_os_code_name(parser)
    add_argument_arch(parser)
    args = parser.parse_args(argv)

    return configure_doc_job(args.config_url, args.rosdistro_name,
                             args.doc_build_name, args.repository_name,
                             args.os_name, args.os_code_name, args.arch)
Exemplo n.º 3
0
def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(description="Generate a 'doc' script")
    add_argument_config_url(parser)
    add_argument_rosdistro_name(parser)
    add_argument_build_name(parser, 'doc')
    add_argument_repository_name(parser)
    add_argument_os_name(parser)
    add_argument_os_code_name(parser)
    add_argument_arch(parser)
    add_argument_force(parser)
    args = parser.parse_args(argv)

    # collect all template snippets of specific types
    class IncludeHook(Hook):
        def __init__(self):
            Hook.__init__(self)
            self.scms = []
            self.scripts = []

        def beforeInclude(self, *args, **kwargs):
            template_path = kwargs['file'].name
            if template_path.endswith('/snippet/scm.xml.em'):
                self.scms.append(
                    (kwargs['locals']['repo_spec'], kwargs['locals']['path']))
            if template_path.endswith('/snippet/builder_shell.xml.em'):
                self.scripts.append(kwargs['locals']['script'])

    hook = IncludeHook()
    from ros_buildfarm import templates
    templates.template_hooks = [hook]

    configure_doc_job(args.config_url,
                      args.rosdistro_name,
                      args.doc_build_name,
                      args.repository_name,
                      args.os_name,
                      args.os_code_name,
                      args.arch,
                      jenkins=False,
                      views=[])

    templates.template_hooks = None
    scripts = hook.scripts

    doc_job_name = get_doc_job_name(args.rosdistro_name, args.doc_build_name,
                                    args.repository_name, args.os_name,
                                    args.os_code_name, args.arch)

    # set force flag
    force_flag = '$force'
    for i, script in enumerate(scripts):
        offset = script.find(force_flag)
        if offset != -1:
            script = script[:offset] + ('true' if args.force else 'false') + \
                script[offset + len(force_flag):]
            scripts[i] = script
            break

    # remove rsync from server
    rsync_cmd = 'rsync'
    for i, script in enumerate(scripts):
        offset = script.find(rsync_cmd)
        if offset != -1:
            del scripts[i]
            break

    # remove rsync back to server
    cmd_part = '--delete'
    for i, script in enumerate(scripts):
        offset = script.find(cmd_part)
        if offset != -1:
            del scripts[i]
            break

    value = expand_template('doc/doc_script.sh.em', {
        'doc_job_name': doc_job_name,
        'scms': hook.scms,
        'scripts': scripts
    },
                            options={BANGPATH_OPT: False})
    value = value.replace('python3', sys.executable)
    print(value)
def main(argv=sys.argv[1:]):
    parser = argparse.ArgumentParser(
        description="Generate a 'doc' script")
    add_argument_config_url(parser)
    add_argument_rosdistro_name(parser)
    add_argument_build_name(parser, 'doc')
    add_argument_repository_name(parser)
    add_argument_os_name(parser)
    add_argument_os_code_name(parser)
    add_argument_arch(parser)
    add_argument_force(parser)
    args = parser.parse_args(argv)

    # collect all template snippets of specific types
    class IncludeHook(Hook):

        def __init__(self):
            Hook.__init__(self)
            self.scms = []
            self.scripts = []

        def beforeInclude(self, *args, **kwargs):
            template_path = kwargs['file'].name
            if template_path.endswith('/snippet/scm.xml.em'):
                self.scms.append(
                    (kwargs['locals']['repo_spec'], kwargs['locals']['path']))
            if template_path.endswith('/snippet/builder_shell.xml.em'):
                self.scripts.append(kwargs['locals']['script'])

    hook = IncludeHook()
    from ros_buildfarm import templates
    templates.template_hooks = [hook]

    configure_doc_job(
        args.config_url, args.rosdistro_name, args.doc_build_name,
        args.repository_name, args.os_name, args.os_code_name, args.arch,
        jenkins=False, views=[])

    templates.template_hooks = None
    scripts = hook.scripts

    doc_job_name = get_doc_job_name(
        args.rosdistro_name, args.doc_build_name, args.repository_name,
        args.os_name, args.os_code_name, args .arch)

    # set force flag
    force_flag = '$force'
    for i, script in enumerate(scripts):
        offset = script.find(force_flag)
        if offset != -1:
            script = script[:offset] + ('true' if args.force else 'false') + \
                script[offset + len(force_flag):]
            scripts[i] = script
            break

    # remove rsync from server
    rsync_cmd = 'rsync'
    for i, script in enumerate(scripts):
        offset = script.find(rsync_cmd)
        if offset != -1:
            del scripts[i]
            break

    # remove rsync back to server
    cmd_part = '--delete'
    for i, script in enumerate(scripts):
        offset = script.find(cmd_part)
        if offset != -1:
            del scripts[i]
            break

    value = expand_template(
        'doc/doc_script.sh.em', {
            'doc_job_name': doc_job_name,
            'scms': hook.scms,
            'scripts': scripts},
        options={BANGPATH_OPT: False})
    value = value.replace('python3', sys.executable)
    print(value)