def test_config_tuple_creation():
    test_options = PipelineStageOptions(skip_rosdep_keys=['abc', 'def'],
                                        custom_script=Path('./'),
                                        custom_data_dir=Path('./'),
                                        custom_setup_script=Path('./'),
                                        runtime_tag='foo')
    assert test_options
def cross_compile_pipeline(
    args: argparse.Namespace,
    data_collector: DataCollector,
    platform: Platform,
):
    ros_workspace_dir = _resolve_ros_workspace(args.ros_workspace)
    skip_rosdep_keys = args.skip_rosdep_keys
    custom_data_dir = _path_if(args.custom_data_dir)
    custom_rosdep_script = _path_if(args.custom_rosdep_script)
    custom_setup_script = _path_if(args.custom_setup_script)

    sysroot_build_context = prepare_docker_build_environment(
        platform=platform,
        ros_workspace=ros_workspace_dir,
        custom_setup_script=custom_setup_script,
        custom_data_dir=custom_data_dir)
    docker_client = DockerClient(args.sysroot_nocache,
                                 default_docker_dir=sysroot_build_context,
                                 colcon_defaults_file=args.colcon_defaults)

    options = PipelineStageOptions(skip_rosdep_keys, custom_rosdep_script,
                                   custom_data_dir, custom_setup_script)

    for stage in _PIPELINE:
        if stage.name not in args.stages_skip:
            with data_collector.timer('{}'.format(stage.name)):
                stage(platform, docker_client, ros_workspace_dir, options,
                      data_collector)
Example #3
0
def cross_compile_pipeline(
    args: argparse.Namespace,
    data_collector: DataCollector,
    platform: Platform,
):
    ros_workspace_dir = _resolve_ros_workspace(args.ros_workspace)
    skip_rosdep_keys = args.skip_rosdep_keys
    custom_data_dir = _path_if(args.custom_data_dir)
    custom_rosdep_script = _path_if(args.custom_rosdep_script)
    custom_setup_script = _path_if(args.custom_setup_script)
    custom_post_build_script = _path_if(args.custom_post_build_script)
    colcon_defaults_file = _path_if(args.colcon_defaults)

    sysroot_build_context = prepare_docker_build_environment(
        platform=platform,
        ros_workspace=ros_workspace_dir,
        custom_setup_script=custom_setup_script,
        custom_post_build_script=custom_post_build_script,
        colcon_defaults_file=colcon_defaults_file,
        custom_data_dir=custom_data_dir)
    docker_client = DockerClient(args.sysroot_nocache,
                                 default_docker_dir=sysroot_build_context)

    options = PipelineStageOptions(skip_rosdep_keys, custom_rosdep_script,
                                   custom_data_dir, custom_setup_script,
                                   args.runtime_tag)

    skip = set(args.stages_skip)

    # Only package the runtime image if the user has specified a tag for it
    if not args.runtime_tag:
        skip.add(PackageRuntimeImageStage.NAME)

    for stage in _PIPELINE:
        if stage.name not in skip:
            with data_collector.timer('{}'.format(stage.name)):
                stage(platform, docker_client, ros_workspace_dir, options,
                      data_collector)
Example #4
0
def default_pipeline_options() -> PipelineStageOptions:
    return PipelineStageOptions(skip_rosdep_keys=[],
                                custom_script=None,
                                custom_data_dir=None,
                                custom_setup_script=None,
                                runtime_tag=None)