def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'binarydeb' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_binarydeb_dir(parser) add_argument_dockerfile_dir(parser) add_argument_skip_download_sourcedeb(parser) add_argument_append_timestamp(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'uid': get_user_id(), 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'skip_download_sourcedeb': args.skip_download_sourcedeb, 'binarydeb_dir': '/tmp/binarydeb', 'dockerfile_dir': '/tmp/docker_build_binarydeb', }) create_dockerfile( 'release/binarydeb_create_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser(description="Run the 'sourcerpm' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_dockerfile_dir(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_sourcepkg_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'target_repository': None, 'uid': get_user_id(), }) create_dockerfile('release/rpm/sourcepkg_task.Dockerfile.em', data, args.dockerfile_dir) with open(os.path.join(args.dockerfile_dir, 'mock_config.cfg'), 'w') as mock_cfg: mock_cfg.write(expand_template('release/rpm/mock_config.cfg.em', data))
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser(description="Run the 'binarydeb' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_binarydeb_dir(parser) add_argument_dockerfile_dir(parser) add_argument_skip_download_sourcedeb(parser) add_argument_append_timestamp(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'uid': get_user_id(), 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'skip_download_sourcedeb': args.skip_download_sourcedeb, 'binarydeb_dir': '/tmp/binarydeb', 'dockerfile_dir': '/tmp/docker_build_binarydeb', }) create_dockerfile('release/binarydeb_create_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'doc' management jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'doc') add_argument_dry_run(parser) args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_doc_build_files(config, args.rosdistro_name) build_file = build_files[args.doc_build_name] if build_file.documentation_type != DOC_TYPE_ROSDOC: print(("The doc build file '%s' has the wrong documentation type to " + "be used with this script") % args.doc_build_name, file=sys.stderr) return 1 jenkins = connect(config.jenkins_url) configure_management_view(jenkins, dry_run=args.dry_run) group_name = get_doc_view_name(args.rosdistro_name, args.doc_build_name) configure_reconfigure_jobs_job(jenkins, group_name, args, config, build_file, dry_run=args.dry_run) configure_trigger_jobs_job(jenkins, group_name, build_file, dry_run=args.dry_run)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Generate the release compare page') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_older_rosdistro_names(parser) add_argument_output_dir(parser) parser.add_argument('--copy-resources', action='store_true', help='Copy the resources instead of using symlinks') args = parser.parse_args(argv) # Generate a page comparing all older ones. build_release_compare_page(args.config_url, args.older_rosdistro_names + [args.rosdistro_name], args.output_dir, copy_resources=args.copy_resources) # generate a one-to-one comparison for each older rosdistro if len(args.older_rosdistro_names) > 1: for older_rosdistro_name in args.older_rosdistro_names: build_release_compare_page( args.config_url, [older_rosdistro_name, args.rosdistro_name], args.output_dir, copy_resources=args.copy_resources)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'check_sync_criteria' job") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_cache_dir(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'os_name': 'ubuntu', 'os_code_name': 'trusty', 'maintainer_email': '*****@*****.**', 'maintainer_name': 'Dirk Thomas', 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': os.getuid(), }) create_dockerfile( 'release/release_check_sync_criteria_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'release' job") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_groovy_script(parser) add_argument_dockerfile_dir(parser) add_argument_dry_run(parser) add_argument_package_names(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile( 'release/release_create_reconfigure_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'doc' job") add_argument_config_url(parser) add_argument_rosdistro_index_url(parser, required=True) 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_vcs_information(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_force(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile( 'doc/doc_create_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'release' management jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_release_build_files(config, args.rosdistro_name) build_file = build_files[args.release_build_name] reconfigure_jobs_job_config = get_reconfigure_jobs_job_config( args, config, build_file) trigger_jobs_job_config = get_trigger_jobs_job_config( args, config, build_file) import_upstream_job_config = get_import_upstream_job_config( args, config, build_file) jenkins = connect(config.jenkins_url) view = configure_view(jenkins, JENKINS_MANAGEMENT_VIEW) group_name = get_release_view_name( args.rosdistro_name, args.release_build_name) job_name = '%s_%s' % (group_name, 'reconfigure-jobs') configure_job(jenkins, job_name, reconfigure_jobs_job_config, view=view) job_name = '%s_%s' % (group_name, 'trigger-jobs') configure_job(jenkins, job_name, trigger_jobs_job_config, view=view) job_name = 'import_upstream' configure_job(jenkins, job_name, import_upstream_job_config, view=view)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'devel' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') add_argument_repository_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_custom_rosdep_urls(parser) parser.add_argument( '--prerelease-overlay', action='store_true', help='Operate on two catkin workspaces') add_argument_build_tool(parser, required=True) add_argument_ros_version(parser) add_argument_env_vars(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'custom_rosdep_urls': args.custom_rosdep_urls, 'uid': get_user_id(), }) create_dockerfile( 'devel/devel_create_tasks.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'sourcedeb' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) parser.add_argument( '--source-dir', required=True, help='The directory where the package sources will be stored') add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'arch': get_system_architecture(), 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile( 'release/sourcedeb_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser(description="Run the 'sourcedeb' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) parser.add_argument( '--source-dir', required=True, help='The directory where the package sources will be stored') add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'arch': get_system_architecture(), 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile('release/deb/sourcepkg_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'Dockerfile' for building the binarydeb") add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_binarydeb_dir(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) debian_package_name = get_debian_package_name( args.rosdistro_name, args.package_name) # get expected package version from rosdistro index = get_index(args.rosdistro_index_url) dist_file = get_distribution_file(index, args.rosdistro_name) assert args.package_name in dist_file.release_packages pkg = dist_file.release_packages[args.package_name] repo = dist_file.repositories[pkg.repository_name] package_version = repo.release_repository.version debian_package_version = package_version # find PKGBUILD dependencies pkgbuild_proc = subprocess.Popen(["/bin/bash","-c","source PKGBUILD ; echo $(printf \"'%s' \" \"${makedepends[@]}\") $(printf \"'%s' \" \"${depends[@]}\")"], stdout=subprocess.PIPE) pkgbuild_out,_ = pkgbuild_proc.communicate() archlinux_pkg_names = pkgbuild_proc.decode('ascii').split(" ") # generate Dockerfile data = { 'os_name': args.os_name, 'os_code_name': args.os_code_name, 'arch': args.arch, 'uid': get_user_id(), 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'dependencies': archlinux_pkg_names, 'rosdistro_name': args.rosdistro_name, 'package_name': args.package_name, 'binarydeb_dir': args.binarydeb_dir, } create_dockerfile( 'release/binary_archlinux_task.Dockerfile.em', data, args.dockerfile_dir) # output hints about necessary volumes to mount ros_buildfarm_basepath = os.path.normpath( os.path.join(os.path.dirname(__file__), '..', '..')) print('Mount the following volumes when running the container:') print(' -v %s:/tmp/ros_buildfarm:ro' % ros_buildfarm_basepath) print(' -v %s:/tmp/binary_archlinux' % args.binarydeb_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'trigger_jobs' job") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_missing_only(parser) add_argument_source_only(parser) add_argument_groovy_script(parser) add_argument_cache_dir(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile( 'release/release_create_trigger_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser(description="Run the 'devel' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') add_argument_repository_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_custom_rosdep_urls(parser) parser.add_argument('--prerelease-overlay', action='store_true', help='Operate on two catkin workspaces') add_argument_env_vars(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'custom_rosdep_urls': args.custom_rosdep_urls, 'uid': get_user_id(), }) create_dockerfile('devel/devel_create_tasks.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'check_sync_criteria' job") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_cache_dir(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile( 'release/release_check_sync_criteria_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'rosdistro_cache' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'os_name': 'ubuntu', 'os_code_name': 'trusty', 'maintainer_email': '*****@*****.**', 'maintainer_name': 'Dirk Thomas', 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': os.getuid(), }) create_dockerfile( 'misc/rosdistro_cache_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'devel' management jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') add_argument_dry_run(parser) args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_source_build_files(config, args.rosdistro_name) build_file = build_files[args.source_build_name] jenkins = connect(config.jenkins_url) configure_management_view(jenkins, dry_run=args.dry_run) group_name = get_devel_view_name(args.rosdistro_name, args.source_build_name) configure_reconfigure_jobs_job(jenkins, group_name, args, config, build_file, dry_run=args.dry_run) configure_trigger_jobs_job(jenkins, group_name, build_file, dry_run=args.dry_run)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'doc_metadata' job on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'doc') add_argument_dry_run(parser) args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_doc_build_files(config, args.rosdistro_name) build_file = build_files[args.doc_build_name] if build_file.documentation_type != DOC_TYPE_MANIFEST: print(("The doc build file '%s' has the wrong documentation type to " + "be used with this script") % args.doc_build_name, file=sys.stderr) return 1 return configure_doc_metadata_job(args.config_url, args.rosdistro_name, args.doc_build_name, config=config, build_file=build_file, dry_run=args.dry_run)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'devel' job") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_groovy_script(parser) add_argument_dockerfile_dir(parser) add_argument_dry_run(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile( 'devel/devel_create_reconfigure_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'doc' management jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'doc') args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_doc_build_files(config, args.rosdistro_name) build_file = build_files[args.doc_build_name] if build_file.documentation_type != DOC_TYPE_ROSDOC: print(("The doc build file '%s' has the wrong documentation type to " + "be used with this script") % args.doc_build_name, file=sys.stderr) return 1 jenkins = connect(config.jenkins_url) configure_management_view(jenkins) group_name = get_doc_view_name( args.rosdistro_name, args.doc_build_name) configure_reconfigure_jobs_job( jenkins, group_name, args, config, build_file) configure_trigger_jobs_job(jenkins, group_name, build_file)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser(description="Run the 'doc' job") add_argument_config_url(parser) add_argument_rosdistro_index_url(parser, required=True) 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_build_tool(parser, required=True) add_argument_vcs_information(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) add_argument_custom_rosdep_urls(parser) add_argument_force(parser) add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'custom_rosdep_urls': args.custom_rosdep_urls, 'uid': get_user_id(), }) create_dockerfile('doc/doc_create_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'sourcedeb' job") add_argument_rosdistro_index_url(parser, required=True) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_distribution_repository_urls(parser) add_argument_distribution_repository_key_files(parser) parser.add_argument( '--source-dir', required=True, help='The directory where the package sources will be stored') add_argument_dockerfile_dir(parser) args = parser.parse_args(argv) data = copy.deepcopy(args.__dict__) data.update({ 'maintainer_email': '*****@*****.**', 'maintainer_name': 'Dirk Thomas', 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': os.getuid(), }) create_dockerfile( 'release/sourcedeb_task.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'release' management jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_dry_run(parser) args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_release_build_files(config, args.rosdistro_name) build_file = build_files[args.release_build_name] package_formats = set( package_format_mapping[os_name] for os_name in build_file.targets.keys()) assert len(package_formats) == 1 package_format = package_formats.pop() group_name = get_release_job_prefix( args.rosdistro_name, args.release_build_name) reconfigure_jobs_job_config = get_reconfigure_jobs_job_config( args, config, build_file) trigger_jobs_job_config = get_trigger_jobs_job_config( args, config, build_file) trigger_missed_jobs_job_config = get_trigger_missed_jobs_job_config( args, config, build_file) import_upstream_job_config = get_import_upstream_job_config( args, config, build_file, package_format) trigger_broken_with_non_broken_upstream_job_config = \ _get_trigger_broken_with_non_broken_upstream_job_config( args.rosdistro_name, args.release_build_name, build_file) jenkins = connect(config.jenkins_url) configure_management_view(jenkins, dry_run=args.dry_run) job_name = '%s_%s' % (group_name, 'reconfigure-jobs') configure_job( jenkins, job_name, reconfigure_jobs_job_config, dry_run=args.dry_run) job_name = '%s_%s' % (group_name, 'trigger-jobs') configure_job( jenkins, job_name, trigger_jobs_job_config, dry_run=args.dry_run) job_name = '%s_%s' % (group_name, 'trigger-missed-jobs') configure_job( jenkins, job_name, trigger_missed_jobs_job_config, dry_run=args.dry_run) job_name = 'import_upstream%s' % ('' if package_format == 'deb' else '_' + package_format) configure_job( jenkins, job_name, import_upstream_job_config, dry_run=args.dry_run) job_name = '%s_%s' % \ (group_name, 'trigger-broken-with-non-broken-upstream') configure_job( jenkins, job_name, trigger_broken_with_non_broken_upstream_job_config, dry_run=args.dry_run)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Create a workspace from vcs repos files.') add_argument_rosdistro_name(parser) add_argument_repos_file_urls(parser) add_argument_repository_names(parser, optional=True) add_argument_test_branch(parser) parser.add_argument('--workspace-root', help='The path of the desired workspace', required=True) args = parser.parse_args(argv) assert args.repos_file_urls or args.repository_names ensure_workspace_exists(args.workspace_root) repos_files = [] if args.repository_names: with Scope('SUBSECTION', 'get repository information from rosdistro'): index = get_index(get_index_url()) dist = get_distribution(index, args.rosdistro_name) data = {} for repo_name in args.repository_names: repo = dist.repositories[repo_name] src_repo = repo.source_repository repo_data = { 'type': src_repo.type, 'url': src_repo.url, } if src_repo.version is not None: repo_data['version'] = src_repo.version data[repo_name] = repo_data repos_file = os.path.join(args.workspace_root, 'repositories-from-rosdistro.repos') with open(repos_file, 'w') as h: h.write( yaml.safe_dump({'repositories': data}, default_flow_style=False)) repos_files.append(repos_file) with Scope('SUBSECTION', 'fetch repos files(s)'): for repos_file_url in args.repos_file_urls: repos_file = os.path.join(args.workspace_root, os.path.basename(repos_file_url)) print('Fetching \'%s\' to \'%s\'' % (repos_file_url, repos_file)) urlretrieve(repos_file_url, repos_file) repos_files += [repos_file] with Scope('SUBSECTION', 'import repositories'): source_space = os.path.join(args.workspace_root, 'src') for repos_file in repos_files: print('Importing repositories from \'%s\'' % (repos_file)) import_repositories(source_space, repos_file, args.test_branch) with Scope('SUBSECTION', 'vcs export --exact'): # if a repo has been rebased against the default branch vcs can't detect the remote export_repositories(args.workspace_root, check=not args.test_branch)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'devel' jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') args = parser.parse_args(argv) return configure_devel_jobs( args.config_url, args.rosdistro_name, args.source_build_name)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'build binarydeb'): parser = argparse.ArgumentParser(description='Build package binarydeb') add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_sourcepkg_dir(parser) args = parser.parse_args(argv) return build_binarydeb(args.rosdistro_name, args.package_name, args.sourcepkg_dir)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'append build timestamp'): parser = argparse.ArgumentParser( description='Append current timestamp to package version') add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_sourcedeb_dir(parser) args = parser.parse_args(argv) return append_build_timestamp( args.rosdistro_name, args.package_name, args.sourcedeb_dir)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'append build timestamp'): parser = argparse.ArgumentParser( description='Append current timestamp to package version') add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_sourcedeb_dir(parser) args = parser.parse_args(argv) return append_build_timestamp(args.rosdistro_name, args.package_name, args.sourcedeb_dir)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'build binarydeb'): parser = argparse.ArgumentParser( description='Build package binarydeb') add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_sourcedeb_dir(parser) args = parser.parse_args(argv) return build_binarydeb( args.rosdistro_name, args.package_name, args.sourcedeb_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'release' management jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_dry_run(parser) args = parser.parse_args(argv) config = get_index(args.config_url) build_files = get_release_build_files(config, args.rosdistro_name) build_file = build_files[args.release_build_name] group_name = get_release_job_prefix( args.rosdistro_name, args.release_build_name) reconfigure_jobs_job_config = get_reconfigure_jobs_job_config( args, config, build_file) trigger_jobs_job_config = get_trigger_jobs_job_config( args, config, build_file) trigger_missed_jobs_job_config = get_trigger_missed_jobs_job_config( args, config, build_file) import_upstream_job_config = get_import_upstream_job_config( args, config, build_file) trigger_broken_with_non_broken_upstream_job_config = \ _get_trigger_broken_with_non_broken_upstream_job_config( args.rosdistro_name, args.release_build_name, build_file) jenkins = connect(config.jenkins_url) configure_management_view(jenkins, dry_run=args.dry_run) job_name = '%s_%s' % (group_name, 'reconfigure-jobs') configure_job( jenkins, job_name, reconfigure_jobs_job_config, dry_run=args.dry_run) job_name = '%s_%s' % (group_name, 'trigger-jobs') configure_job( jenkins, job_name, trigger_jobs_job_config, dry_run=args.dry_run) job_name = '%s_%s' % (group_name, 'trigger-missed-jobs') configure_job( jenkins, job_name, trigger_missed_jobs_job_config, dry_run=args.dry_run) job_name = 'import_upstream' configure_job( jenkins, job_name, import_upstream_job_config, dry_run=args.dry_run) job_name = '%s_%s' % \ (group_name, 'trigger-broken-with-non-broken-upstream') configure_job( jenkins, job_name, trigger_broken_with_non_broken_upstream_job_config, dry_run=args.dry_run)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Audit the rosdistro for packages failing to build.') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_cache_dir(parser, '/tmp/package_repo_cache') add_argument_return_zero(parser) args = parser.parse_args(argv) recommended_action_count = run_audit(args.config_url, args.rosdistro_name, args.cache_dir) return 1 if recommended_action_count and not args.return_zero else 0
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'doc' jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'doc') add_argument_groovy_script(parser) args = parser.parse_args(argv) return configure_doc_jobs( args.config_url, args.rosdistro_name, args.doc_build_name, groovy_script=args.groovy_script)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'release' jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_append_timestamp(parser) args = parser.parse_args(argv) return configure_release_jobs( args.config_url, args.rosdistro_name, args.release_build_name, append_timestamp=args.append_timestamp)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'get sourcedeb'): parser = argparse.ArgumentParser( description='Get released package sourcedeb') add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_sourcedeb_dir(parser) add_argument_skip_download_sourcedeb(parser) args = parser.parse_args(argv) return get_sourcedeb( args.rosdistro_name, args.package_name, args.sourcedeb_dir, args.skip_download_sourcedeb)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'devel' script") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') 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) # 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_devel_job( args.config_url, args.rosdistro_name, args.source_build_name, args.repository_name, args.os_name, args.os_code_name, args.arch, jenkins=False, views=False) templates.template_hooks = None devel_job_name = get_devel_job_name( args.rosdistro_name, args.source_build_name, args.repository_name, args.os_name, args.os_code_name, args.arch) value = expand_template( 'devel/devel_script.sh.em', { 'devel_job_name': devel_job_name, 'scms': hook.scms, 'scripts': hook.scripts}, options={BANGPATH_OPT: False}) value = value.replace('python3', sys.executable) print(value)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'get sourcedeb'): parser = argparse.ArgumentParser( description='Get released package sourcedeb') add_argument_rosdistro_index_url(parser) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_sourcedeb_dir(parser) add_argument_skip_download_sourcedeb(parser) args = parser.parse_args(argv) return get_sourcedeb( args.rosdistro_index_url, args.rosdistro_name, args.package_name, args.sourcedeb_dir, args.skip_download_sourcedeb)
def main(argv=sys.argv[1:]): global templates parser = argparse.ArgumentParser( description="Generate a 'devel' script") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') 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) # collect all template snippets of specific types class IncludeHook(Hook): def __init__(self): super(IncludeHook, self).__init__() 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() templates.template_hooks = [hook] configure_devel_job( args.config_url, args.rosdistro_name, args.source_build_name, args.repository_name, args.os_name, args.os_code_name, args.arch, jenkins=False, views=False) templates.template_hooks = None devel_job_name = get_devel_job_name( args.rosdistro_name, args.source_build_name, args.repository_name, args.os_name, args.os_code_name, args.arch) value = expand_template( 'devel/devel_script.sh.em', { 'devel_job_name': devel_job_name, 'scms': hook.scms, 'scripts': hook.scripts}, options={BANGPATH_OPT: False}) print(value)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'release' job on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) args = parser.parse_args(argv) return configure_release_job(args.config_url, args.rosdistro_name, args.release_build_name, args.package_name, args.os_name, args.os_code_name)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'release' job on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) args = parser.parse_args(argv) return configure_release_job( args.config_url, args.rosdistro_name, args.release_build_name, args.package_name, args.os_name, args.os_code_name)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'build sourcerpm'): parser = argparse.ArgumentParser( description='Build package sourcerpm') add_argument_rosdistro_index_url(parser) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_source_dir(parser) args = parser.parse_args(argv) return build_sourcerpm( args.rosdistro_index_url, args.rosdistro_name, args.package_name, args.os_name, args.os_code_name, args.source_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Generate the blocked releases page') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_output_dir(parser) parser.add_argument('--copy-resources', action='store_true', help='Copy the resources instead of using symlinks') args = parser.parse_args(argv) return build_blocked_releases_page(args.config_url, args.rosdistro_name, args.output_dir, copy_resources=args.copy_resources)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'release' jobs on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_groovy_script(parser) add_argument_dry_run(parser) add_argument_package_names(parser) args = parser.parse_args(argv) return configure_release_jobs( args.config_url, args.rosdistro_name, args.release_build_name, groovy_script=args.groovy_script, dry_run=args.dry_run, whitelist_package_names=args.package_names)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'release_status_page' job") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_debian_repository_urls(parser, nargs=3) add_argument_cache_dir(parser, '/tmp/debian_repo_cache') add_argument_output_dir(parser) args = parser.parse_args(argv) return build_release_status_page( args.config_url, args.rosdistro_name, args.release_build_name, args.debian_repository_urls[0], args.debian_repository_urls[1], args.debian_repository_urls[2], args.cache_dir, args.output_dir)
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)
def main(argv=sys.argv[1:]): with Scope('SUBSECTION', 'get sources'): parser = argparse.ArgumentParser( description="Get released package sources") add_argument_rosdistro_index_url(parser) add_argument_rosdistro_name(parser) add_argument_package_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_source_dir(parser) args = parser.parse_args(argv) return get_sources( args.rosdistro_index_url, args.rosdistro_name, args.package_name, args.os_name, args.os_code_name, args.source_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Trigger a set of jobs which artifacts are missing in ' + 'the repository') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_missing_only(parser) add_argument_source_only(parser) add_argument_cache_dir(parser, '/tmp/debian_repo_cache') args = parser.parse_args(argv) return trigger_release_jobs( args.config_url, args.rosdistro_name, args.release_build_name, args.missing_only, args.source_only, args.cache_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'devel' job on Jenkins") add_argument_rosdistro_index_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') 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_devel_job( args.rosdistro_index_url, args.rosdistro_name, args.source_build_name, args.repository_name, args.os_name, args.os_code_name, args.arch)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'devel' job on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'source') 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_devel_job(args.config_url, args.rosdistro_name, args.source_build_name, args.repository_name, args.os_name, args.os_code_name, args.arch)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Run the 'repos_status_page' job") add_argument_rosdistro_name(parser) add_argument_debian_repository_urls(parser) add_argument_os_code_name_and_arch_tuples(parser) add_argument_cache_dir(parser, '/tmp/debian_repo_cache') add_argument_output_name(parser) add_argument_output_dir(parser) args = parser.parse_args(argv) return build_debian_repos_status_page( args.rosdistro_name, args.debian_repository_urls, args.os_code_name_and_arch_tuples, args.cache_dir, args.output_name, args.output_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Generate the blocked releases page') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_output_dir(parser) parser.add_argument( '--copy-resources', action='store_true', help='Copy the resources instead of using symlinks') args = parser.parse_args(argv) return build_blocked_releases_page( args.config_url, args.rosdistro_name, args.output_dir, copy_resources=args.copy_resources)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser(description="Run the 'CI' job") # Positional add_argument_rosdistro_name(parser) add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_build_tool(parser, required=True) add_argument_distribution_repository_key_files(parser) add_argument_distribution_repository_urls(parser) add_argument_dockerfile_dir(parser) add_argument_env_vars(parser) add_argument_install_packages(parser) a1 = add_argument_package_selection_args(parser) a2 = add_argument_build_tool_args(parser) add_argument_repos_file_urls(parser) add_argument_repository_names(parser, optional=True) add_argument_ros_version(parser) add_argument_skip_rosdep_keys(parser) add_argument_test_branch(parser) parser.add_argument( '--workspace-mount-point', nargs='*', help='Locations within the docker image where the workspace(s) ' 'will be mounted when the docker image is run.') remainder_args = extract_multiple_remainders(argv, (a1, a2)) args = parser.parse_args(argv) for k, v in remainder_args.items(): setattr(args, k, v) assert args.repos_file_urls or args.repository_names data = copy.deepcopy(args.__dict__) data.update({ 'distribution_repository_urls': args.distribution_repository_urls, 'distribution_repository_keys': get_distribution_repository_keys( args.distribution_repository_urls, args.distribution_repository_key_files), 'uid': get_user_id(), }) create_dockerfile('ci/ci_create_tasks.Dockerfile.em', data, args.dockerfile_dir)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Check if the sync criteria are matched to sync ' + 'packages from the building to the testing repo') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_cache_dir(parser, '/tmp/debian_repo_cache') args = parser.parse_args(argv) success = check_sync_criteria(args.config_url, args.rosdistro_name, args.release_build_name, args.os_code_name, args.arch, args.cache_dir) return 0 if success else 1
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate a 'CI' job on Jenkins") # Positional add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'ci') add_argument_os_name(parser) add_argument_os_code_name(parser) add_argument_arch(parser) args = parser.parse_args(argv) configure_ci_job( args.config_url, args.rosdistro_name, args.ci_build_name, args.os_name, args.os_code_name, args.arch)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description="Generate the 'dashboard' job on Jenkins") add_argument_config_url(parser) add_argument_rosdistro_name(parser) args = parser.parse_args(argv) config = get_index(args.config_url) job_config = get_job_config(args, config) jenkins = connect(config.jenkins_url) configure_management_view(jenkins) job_name = '%s_rosdistro-cache' % args.rosdistro_name configure_job(jenkins, job_name, job_config)
def main(argv=sys.argv[1:]): parser = argparse.ArgumentParser( description='Check if the sync criteria are matched to sync ' + 'packages from the building to the testing repo') add_argument_config_url(parser) add_argument_rosdistro_name(parser) add_argument_build_name(parser, 'release') add_argument_os_code_name(parser) add_argument_arch(parser) add_argument_cache_dir(parser, '/tmp/debian_repo_cache') args = parser.parse_args(argv) success = check_sync_criteria( args.config_url, args.rosdistro_name, args.release_build_name, args.os_code_name, args.arch, args.cache_dir) return 0 if success else 1