def build_package(version):
    """
    Build package with debianize.
    """
    delete_old_packages()
    args, extra_args = parse_version_extra_args(version.extra_args)
    deps = read_dependencies_setup_py(os.path.join(os.getcwd(), 'setup.py'))
    deps_with_versions = lookup_versions(deps, args.versions_file)
    traverse_dependencies(deps_with_versions, args.versions_file)
    if args.bdist:
        download_bdist_dependencies(deps_with_versions)
        build_bdist()
    deps_with_versions = fix_dependencies(deps_with_versions)
    extra_args = create_fpm_extra_args(deps_with_versions, extra_args)

    log.debug("Building {0} version {1} with "
              "vdt.versionplugin.buildout".format(os.path.basename(os.getcwd()), version))
    with version.checkout_tag:
        fpm_cmd = fpm_command(os.path.basename(os.getcwd()), 'setup.py',
                              no_python_dependencies=True, extra_args=extra_args, version=version,
                              iteration=args.iteration)

        log.debug("Running command {0}".format(" ".join(fpm_cmd)))
        log.debug(subprocess.check_output(fpm_cmd))

    return 0
示例#2
0
def build_package(version):
    """
    Build package with debianize.
    """
    delete_old_packages()
    args, extra_args = parse_version_extra_args(version.extra_args)
    deps = read_dependencies_setup_py(os.path.join(os.getcwd(), 'setup.py'))
    deps_with_versions = lookup_versions(deps, args.versions_file)
    traverse_dependencies(deps_with_versions, args.versions_file)
    if args.bdist:
        download_bdist_dependencies(deps_with_versions)
        build_bdist()
    deps_with_versions = fix_dependencies(deps_with_versions)
    extra_args = create_fpm_extra_args(deps_with_versions, extra_args)

    log.debug("Building {0} version {1} with "
              "vdt.versionplugin.buildout".format(
                  os.path.basename(os.getcwd()), version))
    with version.checkout_tag:
        fpm_cmd = fpm_command(os.path.basename(os.getcwd()),
                              'setup.py',
                              no_python_dependencies=True,
                              extra_args=extra_args,
                              version=version,
                              iteration=args.iteration)

        log.debug("Running command {0}".format(" ".join(fpm_cmd)))
        log.debug(subprocess.check_output(fpm_cmd))

    return 0
def test_fpm_command_version_hotfix(monkeypatch):
    monkeypatch.setattr('vdt.versionplugin.buildout.shared.os.path.join',
                        Mock(return_value='files/preremove'))

    result = fpm_command('pyyaml', './home/test/setup.py', version='1.2.0-jenkins-704', iteration=1)

    expected_result = ['fpm', '--name', 'python-yaml', '-s', 'python', '-t', 'deb', '-f',
                       '--version=1.2.0-jenkins-704.1', '--maintainer=CSI', '--exclude=*.pyc',
                       '--exclude=*.pyo', '--depends=python', '--category=python',
                       '--python-bin=/usr/bin/python', '--template-scripts',
                       '--python-install-lib=/usr/lib/python2.7/dist-packages/',
                       '--deb-no-default-config-files',
                       '--python-install-bin=/usr/local/bin/',
                       '--before-remove=files/preremove', './home/test/setup.py']

    assert sorted(result) == sorted(expected_result)
def test_fpm_command_no_dependencies_and_no_extra_args(monkeypatch):
    monkeypatch.setattr('vdt.versionplugin.buildout.shared.os.path.join',
                        Mock(return_value='files/preremove'))

    result = fpm_command('test', './home/test/setup.py')

    expected_result = ['fpm', '-s', 'python', '-t', 'deb', '-f', '--maintainer=CSI',
                       '--exclude=*.pyc', '--exclude=*.pyo', '--depends=python',
                       '--category=python', '--python-bin=/usr/bin/python',
                       '--template-scripts',
                       '--python-install-lib=/usr/lib/python2.7/dist-packages/',
                       '--deb-no-default-config-files',
                       '--python-install-bin=/usr/local/bin/',
                       '--before-remove=files/preremove', './home/test/setup.py']

    assert sorted(result) == sorted(expected_result)