Esempio n. 1
0
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
from cpt.packager import ConanMultiPackager


def get_travis_branch():
    return os.getenv("TRAVIS_BRANCH")


def get_reference():
    return "CTRE/{}".format(get_travis_branch())


if __name__ == "__main__":
    builder = ConanMultiPackager(
        reference=get_reference(),
        username="******",
        upload="https://api.bintray.com/conan/hanickadot/ctre",
        upload_only_when_stable=True,
        stable_branch_pattern="v?\d+\.\d+.*",
        test_folder=os.path.join(".conan", "test_package"))
    builder.add_common_builds()
    builder.run()
Esempio n. 2
0
from cpt.packager import ConanMultiPackager


if __name__ == "__main__":
    remotes = [("https://api.bintray.com/conan/bincrafters/public-conan", "yes", "bincrafters"),
               ("https://api.bintray.com/conan/conan-community/conan", "yes", "conan-community"),
               ("https://api.bintray.com/conan/appimage-conan-community/public-conan", "yes", "appimage")]

    command = "sudo apt-get -qq update && sudo apt-get -qq install -y gtk-doc-tools"
    builder = ConanMultiPackager(build_policy="outdated", remotes=remotes, docker_entry_script=command)
    builder.add_common_builds(shared_option_name="pango:shared")
    builder.run()
Esempio n. 3
0
    def stable_branch_pattern(self):
        """ Only upload the package the branch name is like a tag
        """
        return os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v(\d+\.\d+)")

    @property
    def version(self):
        regex = re.compile(self.stable_branch_pattern)
        match = regex.match(self.branch)
        if match:
            return match.group(1)
        return "latest"

    @property
    def reference(self):
        """ Read project version from branch name to create Conan referece
        """
        return os.getenv("CONAN_REFERENCE", "civetweb/{}".format(self.version))

if __name__ == "__main__":
    settings = BuilderSettings()
    builder = ConanMultiPackager(
        reference=settings.reference,
        username=settings.username,
        upload=settings.upload,
        upload_only_when_stable=settings.upload_only_when_stable,
        stable_branch_pattern=settings.stable_branch_pattern,
        test_folder=os.path.join("conan", "test_package"))
    builder.add_common_builds(pure_c=False)
    builder.run()
Esempio n. 4
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from cpt.packager import ConanMultiPackager

if __name__ == "__main__":

    builder = ConanMultiPackager(username="******")
    builder.add_common_builds(pure_c=False)
    builder.run()
Esempio n. 5
0
from cpt.packager import ConanMultiPackager


if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add_common_builds(shared_option_name=False)
    builder.run()
Esempio n. 6
0
# -*- coding: utf-8 -*-
from cpt.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add_common_builds(pure_c=True)
    builder.run()
Esempio n. 7
0
class SimpleTest(BaseTest):

    def test_missing_full_reference(self):
        conanfile = """from conans import ConanFile
class Pkg(ConanFile):
    pass
"""
        self.save_conanfile(conanfile)
        mp = ConanMultiPackager(username="******")
        with self.assertRaisesRegexp(Exception, "Specify a CONAN_REFERENCE or name and version"):
            mp.add_common_builds()

    @unittest.skipUnless(sys.platform.startswith("win"), "Requires Windows")
    def test_msvc(self):
        conanfile = """from conans import ConanFile
import os

class Pkg(ConanFile):
    settings = "os", "compiler", "build_type", "arch"

    def build(self):
        assert("WindowsLibPath" in os.environ)

"""
        self.save_conanfile(conanfile)
        self.packager = ConanMultiPackager(username="******",
                                           channel="mychannel",
                                           visual_versions=[15],
                                           archs=["x86"],
                                           build_types=["Release"],
                                           visual_runtimes=["MD"],
                                           reference="zlib/1.2.2")
        self.packager.add_common_builds()
        self.packager.run_builds(1, 1)

    def test_msvc_exclude_precommand(self):
        conanfile = """from conans import ConanFile
import os

class Pkg(ConanFile):
    settings = "os", "compiler", "build_type", "arch"

    def build(self):
        assert("WindowsLibPath" not in os.environ)

"""
        self.save_conanfile(conanfile)
        self.packager = ConanMultiPackager(username="******",
                                           channel="mychannel",
                                           visual_versions=[15],
                                           archs=["x86"],
                                           build_types=["Release"],
                                           visual_runtimes=["MD"],
                                           exclude_vcvars_precommand=True,
                                           reference="zlib/1.2.2")
        self.packager.add_common_builds()
        self.packager.run_builds(1, 1)

    def test_shared_option_auto_managed(self):
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    name = "lib"
    version = "1.0"
    settings = "os", "compiler", "build_type", "arch"
    options = {"shared": [True, False]}

"""
        self.save_conanfile(conanfile)
        self.packager = ConanMultiPackager(username="******")
        self.packager.add_common_builds()
        self.assertIn("lib:shared", self.packager.items[0].options)

        # Even without name and version but reference
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    settings = "os", "compiler", "build_type", "arch"
    options = {"shared": [True, False]}


"""
        self.save_conanfile(conanfile)
        self.packager = ConanMultiPackager(username="******", reference="lib2/1.0")
        self.packager.add_common_builds()
        self.assertIn("lib2:shared", self.packager.items[0].options)

        self.packager = ConanMultiPackager(username="******", reference="lib2/1.0")
        self.packager.add_common_builds(shared_option_name=False)
        self.assertNotIn("lib2:shared", self.packager.items[0].options)

    def test_auto_managed_subdirectory(self):
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    name = "lib"
    version = "1.0"
    settings = "os", "compiler", "build_type", "arch"
    options = {"shared": [True, False]}

"""
        cwd = os.path.join(self.tmp_folder, "subdirectory")
        tools.save(os.path.join(cwd, "conanfile.py"), conanfile)
        self.packager = ConanMultiPackager(username="******", cwd=cwd)
        self.packager.add_common_builds()
        self.assertGreater(len(self.packager.items), 0)
        self.assertIn("lib:shared", self.packager.items[0].options)

    def test_exported_files(self):
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    name = "lib"
    version = "1.0"
    settings = "os"
    exports = "*"
    exports_sources = "source*"

"""
        ci_manager = MockCIManager()
        self.save_conanfile(conanfile)
        tools.save(os.path.join(self.tmp_folder, "other_file"), "Dummy contents")
        tools.save(os.path.join(self.tmp_folder, "source.cpp"), "Dummy contents")
        self.packager = ConanMultiPackager(username="******", reference="lib/1.0", ci_manager=ci_manager)
        self.packager.add({}, {}, {}, {})
        self.packager.run()

        ref = ConanFileReference.loads("lib/1.0@lasote/testing")
        pf = self.client_cache.package_layout(ref).export()
        found_in_export = False
        for exported in os.listdir(pf):
            if "other_file" == exported:
                found_in_export = True
                break

        self.assertTrue(found_in_export)

        pf = self.client_cache.package_layout(ref).export_sources()
        found_in_export_sources = False
        for exported in os.listdir(pf):
            if "source.cpp" == exported:
                found_in_export_sources = True
                break

        self.assertTrue(found_in_export_sources)

    def test_build_policy(self):
        ci_manager = MockCIManager()
        conanfile = """from conans import ConanFile
import os

class Pkg(ConanFile):
    name = "lib"
    version = "1.2"
    settings = "os", "compiler", "build_type", "arch"

"""
        self.save_conanfile(conanfile)
        with tools.environment_append({"CONAN_USERNAME": "******"}):
            self.packager = ConanMultiPackager(channel="mychannel",
                                               gcc_versions=["6"],
                                               visual_versions=["12"],
                                               archs=["x86", "x86_64"],
                                               build_types=["Release"],
                                               build_policy="outdated",
                                               ci_manager=ci_manager)
            self.packager.add_common_builds()
            self.packager.run()

        with tools.environment_append({"CONAN_USERNAME": "******",
                                       "CONAN_BUILD_POLICY": "outdated"}):
            self.packager = ConanMultiPackager(channel="mychannel",
                                               gcc_versions=["6"],
                                               visual_versions=["12"],
                                               archs=["x86", "x86_64"],
                                               build_types=["Release"],
                                               ci_manager=ci_manager)
            self.packager.add_common_builds()
            self.packager.run()

    def test_multiple_build_policy(self):
        ci_manager = MockCIManager()
        conanfile = """from conans import ConanFile
import os

class Pkg(ConanFile):
    name = "lib"
    version = "1.2"
    settings = "os", "compiler", "build_type", "arch"

"""
        self.save_conanfile(conanfile)
        with tools.environment_append({"CONAN_USERNAME": "******"}):
            self.packager = ConanMultiPackager(channel="mychannel",
                                               gcc_versions=["6"],
                                               visual_versions=["12"],
                                               archs=["x86", "x86_64"],
                                               build_types=["Release"],
                                               build_policy=["cascade", "outdated"],
                                               ci_manager=ci_manager)
            self.packager.add_common_builds()
            self.packager.run()

        with tools.environment_append({"CONAN_USERNAME": "******",
                                       "CONAN_BUILD_POLICY": "outdated, lib"}):
            self.packager = ConanMultiPackager(channel="mychannel",
                                               gcc_versions=["6"],
                                               visual_versions=["12"],
                                               archs=["x86", "x86_64"],
                                               build_types=["Release"],
                                               ci_manager=ci_manager)
            self.packager.add_common_builds()
            self.packager.run()

    def test_custom_conanfile(self):
        conanfile = """from conans import ConanFile
class Pkg(ConanFile):
    name = "lib"
    version = "1.2"
    settings = "os", "compiler", "build_type", "arch"
"""
        tools.save(os.path.join(self.tmp_folder, "foobar.py"), conanfile)
        with tools.environment_append({"CONAN_CONANFILE": "foobar.py"}):
            self.packager = ConanMultiPackager(username="******",
                                               channel="mychannel",
                                               out=self.output.write)
            self.packager.add({}, {}, {}, {})
            self.packager.run()
        self.assertIn("conanfile                 | foobar.py", self.output)

        tools.save(os.path.join(self.tmp_folder, "custom_recipe.py"), conanfile)
        self.packager = ConanMultiPackager(username="******",
                                           channel="mychannel",
                                           conanfile="custom_recipe.py",
                                           out=self.output.write)
        self.packager.add({}, {}, {}, {})
        self.packager.run()
        self.assertIn("conanfile                 | custom_recipe.py", self.output)

    def test_partial_reference(self):
        conanfile = """from conans import ConanFile
class Pkg(ConanFile):
    name = "foobar"
    version = "0.1.0"

    def configure(self):
        self.output.info("hello all")
"""
        tools.save(os.path.join(self.tmp_folder, "conanfile.py"), conanfile)
        with tools.environment_append({"CONAN_REFERENCE": "foobar/0.1.0@"}):
            self.packager = ConanMultiPackager(out=self.output.write)
            self.packager.add({}, {}, {}, {})
            self.packager.run()
        self.assertIn("partial_reference         | foobar/0.1.0@", self.output)

        self.packager = ConanMultiPackager(out=self.output.write)
        self.packager.add({}, {}, {}, {})
        self.packager.run()
        self.assertIn("partial_reference         | foobar/0.1.0@", self.output)

    def test_save_packages_summary(self):
        conanfile = """from conans import ConanFile
class Pkg(ConanFile):
    name = "foobar"
    version = "0.1.0"

    def configure(self):
        self.output.info("hello all")
"""
        json_file = 'cpt_summary_file.json'
        tools.save(os.path.join(self.tmp_folder, "conanfile.py"), conanfile)
        self.packager = ConanMultiPackager(out=self.output.write)
        self.packager.add({}, {}, {}, {})
        self.packager.run(summary_file=json_file)
        self.assertTrue(os.path.isfile(json_file))
        with open(json_file) as json_content:
            json_data = json.load(json_content)
            self.assertFalse(json_data[0]["package"]["error"])

        json_file = "_" + json_file
        self.packager = ConanMultiPackager(out=self.output.write)
        self.packager.add({}, {}, {}, {})
        self.packager.run()
        self.packager.save_packages_summary(json_file)
        self.assertTrue(os.path.isfile(json_file))
        with open(json_file) as json_content:
            json_data = json.load(json_content)
            self.assertFalse(json_data[0]["package"]["error"])

        json_file = "__" + json_file
        with tools.environment_append({"CPT_SUMMARY_FILE": json_file}):
            self.packager = ConanMultiPackager(out=self.output.write)
            self.packager.add({}, {}, {}, {})
            self.packager.run()
            self.assertTrue(os.path.isfile(json_file))
            with open(json_file) as json_content:
                json_data = json.load(json_content)
                self.assertFalse(json_data[0]["package"]["error"])

    def test_disable_test_folder(self):
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    name = "lib"
    version = "1.0"
"""
        self.save_conanfile(conanfile)
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    def test(self):
        raise Exception("Should not run")
"""
        tools.save(os.path.join(self.tmp_folder, "test_package", "conanfile.py"), conanfile)
        with tools.environment_append({"CPT_TEST_FOLDER": "False"}):
            self.packager = ConanMultiPackager(out=self.output.write)
            self.packager.add_common_builds()
            self.packager.run()

    def test_invalid_test_folder(self):
        conanfile = """from conans import ConanFile

class Pkg(ConanFile):
    name = "lib"
    version = "1.0"
"""
        self.save_conanfile(conanfile)
        for test_folder in ["True", "foobar"]:
            with tools.environment_append({"CPT_TEST_FOLDER": test_folder}):
                self.packager = ConanMultiPackager(out=self.output.write)
                self.packager.add_common_builds()
                with self.assertRaises(ConanException) as raised:
                    self.packager.run()
                    self.assertIn("test folder '{}' not available, or it doesn't have a conanfile.py"
                                  .format(test_folder),
                                  str(raised.exception))

    def test_custom_name_version(self):
        conanfile = """from conans import ConanFile
from datetime import date
class Pkg(ConanFile):

    def configure(self):
        self.output.info("hello all")

    def set_name(self):
        self.name = "foobar"

    def set_version(self):
        today = date.today()
        self.version = today.strftime("%Y%B%d")
"""
        tools.save(os.path.join(self.tmp_folder, "conanfile.py"), conanfile)
        self.packager = ConanMultiPackager(out=self.output.write)
        self.packager.add_common_builds(pure_c=False)
        self.packager.run()

    def test_header_only_option_true(self):
        header_only = self._test_header_only(False)
        self.assertEqual(header_only, 1)
        self.packager.run()

    def test_header_only_option_false(self):
        header_only = self._test_header_only(True)
        self.assertEqual(header_only, int(len(self.packager.builds) / 2))
        self.packager.run()

    def _test_header_only(self, default_value):
        conanfile = """from conans import ConanFile
class Pkg(ConanFile):
    name = "qux"
    version = "0.1.0"
    settings = "os"
    options = {"header_only": [True, False], "shared": [True, False], "fPIC": [True, False]}
    default_options = {"header_only": %s, "shared": False, "fPIC": True}

    def configure(self):
        if self.options.header_only:
            del self.options.shared
            del self.options.fPIC

    def package_id(self):
        if self.options.header_only:
            self.info.header_only()
""" % default_value
        tools.save(os.path.join(self.tmp_folder, "conanfile.py"), conanfile)
        self.packager = ConanMultiPackager(out=self.output.write)
        self.packager.add_common_builds(pure_c=False)

        header_only = 0
        for build in self.packager.builds:
            _, options, _, _ = build
            if options.get("qux:header_only") == (not default_value):
                header_only += 1
        return header_only

    def test_build_all_option_values(self):
        conanfile = """from conans import ConanFile
class Pkg(ConanFile):
    name = "qux"
    version = "0.1.0"
    options = {"shared": [True, False], "fPIC": [True, False],
               "header_only": [True, False], "foo": [True, False],
               "bar": ["baz", "qux", "foobar"], "blah": "ANY"}
    default_options = {"shared": False, "fPIC": True, "header_only": False,
                       "foo": False, "bar": "baz", "blah": 42}

    def configure(self):
        self.output.info("hello all")
"""
        tools.save(os.path.join(self.tmp_folder, "conanfile.py"), conanfile)
        self.packager = ConanMultiPackager(out=self.output.write)
        self.packager.add_common_builds(pure_c=False, build_all_options_values=["qux:foo", "qux:bar", "qux:blah"])
        self.packager.run()
Esempio n. 8
0
from cpt.packager import ConanMultiPackager

if __name__ == "__main__":
    remotes = [("https://api.bintray.com/conan/appimage-conan-community/public-conan", "true", "appimage"),
               ("https://api.bintray.com/conan/bincrafters/public-conan", "true", "bincrafters")]
    builder = ConanMultiPackager(remotes=remotes, build_policy="outdated", build_types=["Release"])
    builder.add_common_builds()
    builder.run()
Esempio n. 9
0
from cpt.packager import ConanMultiPackager

if __name__ == "__main__":
    builder = ConanMultiPackager()
    builder.add_common_builds(shared_option_name="sshfs:shared")
    builder.run()
Esempio n. 10
0
    except:
        pass
    os.chdir(cwd)
    return result

def get_repo_branch_from_githubaction():
    def _clean_branch(branch):
        return branch[11:] if branch.startswith("refs/heads/") else branch
    repobranch = _clean_branch(os.getenv("GITHUB_REF", ""))
    if os.getenv("GITHUB_EVENT_NAME", "") == "pull_request":
        repobranch = os.getenv("GITHUB_BASE_REF", "")
    return repobranch

def has_shared_option(recipe_path):
    options = inspect_value_from_recipe(attribute="options", recipe_path=recipe_path)
    return options and "shared" in options

if __name__ == "__main__":
    username = "******"
    recipe_path = os.path.abspath("conanfile.py")
    recipe_name = inspect_value_from_recipe(attribute="name", recipe_path=recipe_path)
    channel, recipe_version = get_repo_branch_from_githubaction().split("/")
    reference = "{}/{}@{}/{}".format(recipe_name, recipe_version, username, channel)
    shared_option_name = "{}:shared".format(recipe_name) if has_shared_option(recipe_path) else None

    builder = ConanMultiPackager(username=username, channel=channel,
                                 build_policy="missing", skip_check_credentials=True)
    builder.add_common_builds(shared_option_name=shared_option_name, pure_c=False, dll_with_static_runtime=True,
                              reference=reference, build_all_options_values=None)
    builder.run()
Esempio n. 11
0
from cpt.packager import ConanMultiPackager

if __name__ == "__main__":
    remotes = [
        ("https://api.bintray.com/conan/bincrafters/public-conan", "yes",
         "bincrafters"),
        ("https://api.bintray.com/conan/conan-community/conan", "yes",
         "conan-community"),
        ("https://api.bintray.com/conan/appimage-conan-community/public-conan",
         "yes", "appimage")
    ]

    builder = ConanMultiPackager(build_policy="missing", remotes=remotes)
    builder.add_common_builds(shared_option_name="libappimage:shared")

    builder.run()
Esempio n. 12
0
    package_nam = os.getenv('CONAN_PACKAGE_NAME')
    reference = f'{package_nam}/{package_ver}'
    channel = os.getenv('CONAN_CHANNEL', 'dev')
    upload = os.getenv('CONAN_UPLOAD')
    branch_pat = os.getenv('CONAN_STABLE_BRANCH_PATTERN',
                           r'release/\d+\.\d+\.\d+.*')
    conanfile = os.getenv('CONAN_CONANFILE',
                          os.path.join('conan', 'conanfile.py'))
    test_folder = os.getenv('CONAN_TEST_FOLDER',
                            os.path.join('conan', 'test_package'))
    only_stable = os.getenv('CONAN_UPLOAD_ONLY_WHEN_STABLE', True)
    header_only = os.getenv('CONAN_HEADER_ONLY', False)
    pure_c = os.getenv('CONAN_PURE_C', False)

    builder = ConanMultiPackager(username=uname,
                                 login_username=login_uname,
                                 reference=reference,
                                 channel=channel,
                                 upload=upload,
                                 stable_branch_pattern=branch_pat,
                                 upload_only_when_stable=only_stable,
                                 conanfile=conanfile,
                                 test_folder=test_folder)

    if header_only == "False":
        builder.add_common_builds(pure_c=pure_c)
    else:
        builder.add()

    builder.run()
Esempio n. 13
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from cpt.packager import ConanMultiPackager

if __name__ == "__main__":
    remotes = [
        ("https://api.bintray.com/conan/appimage-conan-community/public-conan",
         "yes", "appimage"),
        ("https://api.bintray.com/conan/bincrafters/public-conan", "yes",
         "bincrafters"),
        ("https://api.bintray.com/conan/conan-community/conan", "yes",
         "conan-community")
    ]

    builder = ConanMultiPackager(build_policy="outdated",
                                 remotes=remotes,
                                 build_types=["Release"],
                                 archs=["x86_64"])
    builder.add_common_builds(
        shared_option_name="AppImageUpdaterBridge:shared")
    builder.run()
Esempio n. 14
0
class DockerTest(BaseTest):
    @unittest.skipUnless(sys.platform.startswith("linux"), "Requires Linux")
    def test_docker(self):
        if not os.getenv("PYPI_PASSWORD", None):
            return
        self.deploy_pip()
        ci_manager = MockCIManager()
        unique_ref = "zlib/%s" % str(time.time())
        conanfile = """from conans import ConanFile
import os

class Pkg(ConanFile):
    settings = "os", "compiler", "build_type", "arch"

"""
        self.save_conanfile(conanfile)
        the_version = version.replace(
            "-", ".")  # Canonical name for artifactory repo
        pip = "--extra-index-url %s/simple conan-package-tools==%s " % (
            PYPI_TESTING_REPO, the_version)
        with tools.environment_append({
                "CONAN_USE_DOCKER": "1",
                "CONAN_DOCKER_USE_SUDO": "1",
                "CONAN_PIP_PACKAGE": pip,
                "CONAN_LOGIN_USERNAME": CONAN_LOGIN_UPLOAD,
                "CONAN_USERNAME": "******",
                "CONAN_UPLOAD": CONAN_UPLOAD_URL,
                "CONAN_PASSWORD": CONAN_UPLOAD_PASSWORD
        }):
            self.packager = ConanMultiPackager(
                ["--build missing", "-r conan.io"],
                channel="mychannel",
                gcc_versions=["6"],
                archs=["x86", "x86_64"],
                build_types=["Release"],
                reference=unique_ref,
                ci_manager=ci_manager)
            self.packager.add_common_builds()
            self.packager.run()

        search_pattern = "%s*" % unique_ref
        ref = ConanFileReference.loads("%s@lasote/mychannel" % unique_ref)

        # Remove from remote
        results = self.api.search_recipes(
            search_pattern, remote="upload_repo")["results"][0]["items"]
        self.assertEquals(len(results), 1)
        packages = self.api.search_packages(
            ref, remote="upload_repo")["results"][0]["items"][0]["packages"]
        self.assertEquals(len(packages), 2)

        self.api.authenticate(name=CONAN_LOGIN_UPLOAD,
                              password=CONAN_UPLOAD_PASSWORD,
                              remote="upload_repo")
        self.api.remove(search_pattern, remote="upload_repo", force=True)
        self.assertEquals(
            self.api.search_recipes(search_pattern)["results"], [])

        # Try upload only when stable, shouldn't upload anything
        with tools.environment_append({
                "CONAN_USE_DOCKER": "1",
                "CONAN_DOCKER_USE_SUDO": "1",
                "CONAN_PIP_PACKAGE": pip,
                "CONAN_LOGIN_USERNAME": CONAN_LOGIN_UPLOAD,
                "CONAN_USERNAME": "******",
                "CONAN_PASSWORD": CONAN_UPLOAD_PASSWORD,
                "CONAN_UPLOAD_ONLY_WHEN_STABLE": "1"
        }):
            self.packager = ConanMultiPackager(
                ["--build missing", "-r conan.io"],
                channel="mychannel",
                gcc_versions=["6"],
                archs=["x86", "x86_64"],
                build_types=["Release"],
                reference=unique_ref,
                upload=CONAN_UPLOAD_URL,
                ci_manager=ci_manager)
            self.packager.add_common_builds()
            self.packager.run()

        results = self.api.search_recipes(search_pattern,
                                          remote="upload_repo")["results"]
        self.assertEquals(len(results), 0)
        self.api.remove(search_pattern, remote="upload_repo", force=True)