Skip to content

Commit

Permalink
Merge branch 'release/0.19.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
lasote committed Sep 12, 2018
2 parents 143b8aa + 25bebed commit 7c3a312
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 25 deletions.
2 changes: 1 addition & 1 deletion cpt/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@

__version__ = '0.19.1'
__version__ = '0.19.2'
2 changes: 1 addition & 1 deletion cpt/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
idna==2.6
six>=1.10.0
requests[security]
conan>=0.22.0
conan>=1.7.0, <1.8.0
tabulate==0.8.2
32 changes: 14 additions & 18 deletions cpt/runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,28 +52,24 @@ def run(self):

with self.printer.foldable_output("conan_create"):
name, version, user, channel = self._reference
# print_dict
# TODO: Get uploaded packages with Conan 1.3 from the ret json

# FIXME: chdir Can be removed in 1.3, fixed issue about api changing curdir
with tools.chdir(self._abs_folder):
if self._build_policy:
self._build_policy = [self._build_policy]
# https://github.com/conan-io/conan-package-tools/issues/184
with tools.environment_append({"_CONAN_CREATE_COMMAND_": "1"}):
params = {"name": name, "version": version, "user": user,
"channel": channel, "build_modes": self._build_policy,
"profile_name": self._profile_abs_path}
self.printer.print_message("Calling 'conan create'")
self.printer.print_dict(params)

self._conan_api.create(".", name=name, version=version,
if self._build_policy:
self._build_policy = [self._build_policy]
# https://github.com/conan-io/conan-package-tools/issues/184
with tools.environment_append({"_CONAN_CREATE_COMMAND_": "1"}):
params = {"name": name, "version": version, "user": user,
"channel": channel, "build_modes": self._build_policy,
"profile_name": self._profile_abs_path}
self.printer.print_message("Calling 'conan create'")
self.printer.print_dict(params)

r = self._conan_api.create(".", name=name, version=version,
user=user, channel=channel,
build_modes=self._build_policy,
profile_name=self._profile_abs_path,
test_folder=self._test_folder)

self._uploader.upload_packages(self._reference, self._upload)
package_id = r['installed'][0]['packages'][0]['id']
self._uploader.upload_packages(self._reference, self._upload, package_id)


class DockerCreateRunner(object):
Expand Down Expand Up @@ -169,7 +165,7 @@ def run(self, pull_image=True, docker_entry_script=None):
update_command = self._pip_update_conan_command() + " && "
else:
update_command = ""
command = ('%s docker run --rm -v %s:%s/project %s %s %s %s '
command = ('%s docker run --rm -v "%s:%s/project" %s %s %s %s '
'"%s cd project && '
'%s run_create_in_docker "' % (self._sudo_docker_command,
os.getcwd(),
Expand Down
16 changes: 16 additions & 0 deletions cpt/test/integration/upload_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,19 @@ def test_existing_upload_repo(self):
# FIXME: Probaby we should rename if name is different (Conan 1.3)
self.assertIn("Remote for URL 'https://api.bintray.com/conan/conan-community/conan' "
"already exist, keeping the current remote and its name", self.output)

def test_existing_upload_repo_by_name(self):
self.api.remote_add("upload_repo",
"https://api.bintray.com/different/conan-community/conan")
self.save_conanfile(self.conanfile)
with tools.environment_append({"CONAN_PASSWORD": "mypass",
"CONAN_UPLOAD": "https://api.bintray.com/conan/"
"conan-community/conan"}):
mp = ConanMultiPackager(username="lasote", out=self.output.write,
ci_manager=self.ci_manager)
mp.add({}, {}, {})
with self.assertRaisesRegexp(ConanException, "Wrong user or password"):
mp.run()
self.assertNotIn("already exist, keeping the current remote and its name", self.output)
repo = self.api.get_remote_by_name("upload_repo")
self.assertEquals(repo.url, "https://api.bintray.com/conan/conan-community/conan")
12 changes: 12 additions & 0 deletions cpt/test/unit/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,18 @@ def __init__(self):

def create(self, *args, **kwargs):
self.calls.append(Action("create", args, kwargs))
return {
"installed": [
{
"packages": [
{
"id": "227fb0ea22f4797212e72ba94ea89c7b3fbc2a0c"
}
],
"recipe": {
"id": kwargs["name"]
}
}]}

def create_profile(self, *args, **kwargs):
save(os.path.join(self._client_cache.profiles_path, args[0]), "[settings]")
Expand Down
16 changes: 11 additions & 5 deletions cpt/uploader.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ def __init__(self, conan_api, remote_manager, auth_manager, printer, upload_retr
if not self._upload_retry:
self._upload_retry = 0

def upload_packages(self, reference, upload):
def upload_packages(self, reference, upload, package_id):
remote_name = self.remote_manager.upload_remote_name
if not remote_name:
self.printer.print_message("Upload skipped, not upload remote available")
Expand All @@ -26,16 +26,22 @@ def upload_packages(self, reference, upload):
self.printer.print_message("Uploading packages for '%s'" % str(reference))
self.auth_manager.login(remote_name)


if Version(client_version) < Version("1.7.0"):
self.conan_api.upload(str(reference),
all_packages=True,
package=package_id,
remote=remote_name,
force=True,
retry=int(self._upload_retry))
else:
elif Version(client_version) < Version("1.8.0"):
self.conan_api.upload(str(reference),
all_packages=True,
package=package_id,
remote_name=remote_name,
force=True,
retry=int(self._upload_retry))
# Comming 1.8:
#else:
# self.conan_api.upload(str(reference),
# all_packages=True,
# remote_name=remote_name,
# policy=UPLOAD_POLICY_FORCE,
# retry=int(self._upload_retry))

0 comments on commit 7c3a312

Please sign in to comment.