username = os.getenv('CONAN_USERNAME', 'jjones646') os.environ['CONAN_USERNAME'] = username channel = os.getenv('CONAN_CHANNEL', 'stable') os.environ['CONAN_CHANNEL'] = channel log_run = os.getenv('CONAN_LOG_RUN_TO_FILE', '1') os.environ['CONAN_LOG_RUN_TO_FILE'] = log_run def get_builds_with_options(builder): builds = [] for settings, options, env_vars, build_requires in builder.builds: builds.append([settings, {'benchmark:enable_lto': True}, env_vars, build_requires]) builds.append([settings, {'benchmark:enable_lto': False}, env_vars, build_requires]) builds.append([settings, {'benchmark:enable_exceptions': True}, env_vars, build_requires]) builds.append([settings, {'benchmark:enable_exceptions': False}, env_vars, build_requires]) return builds if __name__ == '__main__': builder = ConanMultiPackager( gcc_versions=['5', '6', '7'], apple_clang_versions=['8.0', '8.1', '9.0'], visual_versions=['14', '15'], archs=['x86_64', 'x86'], username=username, channel=channel, reference='benchmark/1.4.0', ) builder.add_common_builds(pure_c=False) builder.builds = get_builds_with_options(builder) builder.run()
def test_upload_false(self): packager = ConanMultiPackager("--build missing -r conan.io", "lasote", "mychannel", upload=False) self.assertFalse(packager._upload_enabled())
# Build Conan package # Dmitriy Vetutnev, ODANT, 2020 from conan.packager import ConanMultiPackager import os env_pure_c = os.getenv("CONAN_PURE_C", True) pure_c = True if str(env_pure_c).lower() != "false" else False if __name__ == "__main__": builder = ConanMultiPackager(exclude_vcvars_precommand=True) builder.add_common_builds(pure_c=pure_c) builder.remove_build_if( lambda build: build.settings.get("compiler.libcxx") == "libstdc++") builder.run()
import os from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager( username="******", channel="stable", remotes="https://api.bintray.com/conan/bitprim/bitprim", archs=["x86_64"]) builder.add_common_builds(shared_option_name="bitprim-node-cint:shared") filtered_builds = [] for settings, options, env_vars, build_requires in builder.builds: if settings["build_type"] == "Release" \ and not options["bitprim-node-cint:shared"] \ and (not "compiler.runtime" in settings or not settings["compiler.runtime"] == "MT"): env_vars["BITPRIM_BUILD_NUMBER"] = os.getenv( 'BITPRIM_BUILD_NUMBER', '-') filtered_builds.append( [settings, options, env_vars, build_requires]) builder.builds = filtered_builds builder.run()
from conan.packager import ConanMultiPackager import os, platform if __name__ == "__main__": builder = ConanMultiPackager(args="--build missing") builder.add_common_builds() filtered_builds = [] for settings, options, env_vars, build_requires in builder.builds: if not (settings["arch"] == "x86"): filtered_builds.append( [settings, options, env_vars, build_requires]) builder.builds = filtered_builds builder.run()
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******", channel="testing") builder.add_common_builds(shared_option_name="libzmq:shared") builder.run()
if __name__ == "__main__": header_only = False name = get_name_from_recipe() version = get_version_from_recipe() reference = "{0}/{1}".format(name, version) username = "******" login_username = "******" upload_remote = "https://api.bintray.com/conan/conan-community/{0}".format( username) builder = ConanMultiPackager(stable_branch_pattern="stable/*", upload_only_when_stable=True, username=username, login_username=login_username, reference=reference, upload=upload_remote, remotes=upload_remote) if header_only: filtered_builds = [] for settings, options, env_vars, build_requires, reference in builder.items: if settings["compiler"] == "gcc": filtered_builds.append( [settings, options, env_vars, build_requires]) break builder.builds = filtered_builds builder.add_common_builds(shared_option_name="wiringpi:shared", pure_c=True)
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******", archs=["x86_64"], args="--build missing") builder.add_common_builds(shared_option_name="rdkafka:shared", pure_c=False) builder.run()
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******") builder.add_common_builds(pure_c=False) builder.run()
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******", channel="stable", args="--build=missing") builder.add_common_builds(shared_option_name="IlmBase:shared") builder.run()
from conan.packager import ConanMultiPackager import platform if __name__ == "__main__": mingw_configurations = [("4.9", "x86_64", "seh", "posix"), ("4.9", "x86_64", "sjlj", "posix"), ("4.9", "x86", "sjlj", "posix"), ("4.9", "x86", "dwarf2", "posix")] builder = ConanMultiPackager(mingw_configurations=mingw_configurations) builder.add_common_builds(shared_option_name="zlib:shared", pure_c=True) builder.run()
from conan.packager import ConanMultiPackager from conans.tools import os_info import platform if __name__ == "__main__": builder = ConanMultiPackager(args=['--build', 'missing']) builder.add_common_builds(shared_option_name="simple:shared", pure_c=False) builder.builds = [[settings, options, env_vars, build_requires, reference] for settings, options, env_vars, build_requires, reference in builder.items if (not (os_info.is_linux and settings["arch"] == "x86")) and options['simple:shared'] == True] builder.run()
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******") builder.add_common_builds() builder.run()
# Darwin all OK # Windows fails shared builds # Linux all OK from conan.packager import ConanMultiPackager import platform if __name__ == '__main__': builder = ConanMultiPackager(username='******') builder.add_common_builds(shared_option_name='libwebp:shared', pure_c=True) filtered_builds = [] for settings, options, env_vars, build_requires in builder.builds: if (platform.system() == 'Windows' and options['libwebp:shared'] == False or platform.system() == 'Linux' or platform.system() == 'Darwin'): filtered_builds.append( [settings, options, env_vars, build_requires]) builder.builds = filtered_builds builder.run()
def test_check_credentials(self): runner = MockRunner() runner.output = "arepo: myurl" builder = ConanMultiPackager(username="******", channel="testing", reference="Hello/0.1", password="******", upload="myurl", visual_versions=[], gcc_versions=[], apple_clang_versions=[], runner=runner, platform_info=platform_mock_for("Darwin")) builder.add_common_builds() builder.run() # When activated, check credentials before to create the profiles self.assertEqual(runner.calls[0], 'conan remote add upload_repo myurl') self.assertEqual(runner.calls[2], 'conan user pepe -p="password" -r=upload_repo') self.assertIn( "conan create", runner.calls[-2]) # Not login again before upload its cached self.assertEqual( runner.calls[-1], "conan upload Hello/0.1@pepe/testing --retry 3 --all --force --confirm " "-r=upload_repo") runner = MockRunner() builder = ConanMultiPackager(username="******", channel="testing", reference="Hello/0.1", password="******", visual_versions=[], gcc_versions=[], apple_clang_versions=[], runner=runner, remotes="otherurl", platform_info=platform_mock_for("Darwin")) builder.add_common_builds() builder.run() # When upload is not required, credentials verification must be avoided self.assertFalse( 'conan user pepe -p="password" -r=upload_repo' in runner.calls) self.assertFalse( 'conan upload Hello/0.1@pepe/testing --retry 3 ' '--all --force --confirm -r=upload_repo' in runner.calls) # If we skip the credentials check, the login will be performed just before the upload builder = ConanMultiPackager(username="******", channel="testing", reference="Hello/0.1", password="******", upload="myurl", visual_versions=[], gcc_versions=[], apple_clang_versions=[], runner=runner, platform_info=platform_mock_for("Darwin"), skip_check_credentials=True) builder.add_common_builds() builder.run() self.assertEqual(runner.calls[-2], 'conan user pepe -p="password" -r=upload_repo') self.assertEqual( runner.calls[-1], "conan upload Hello/0.1@pepe/testing --retry 3 --all --force --confirm " "-r=upload_repo")
from conan.packager import ConanMultiPackager import platform import os if __name__ == "__main__": builder = ConanMultiPackager(visual_runtimes=["MT", "MD"]) if platform.system() == "Windows": builder.add_common_builds(visual_versions=[12, 13]) if platform.system() == "Linux": for ver in (filter(None, os.getenv("CONAN_GCC_VERSIONS", "").split(",")) or ["4.8", "4.9", "5.2", "5.3"]): for arch in ["x86", "x86_64"]: builder.add( { "arch": arch, "build_type": "Release", "compiler": "gcc", "compiler.version": ver }, {}) if platform.system() == "Darwin": for ver in (filter( None, os.getenv("CONAN_APPLE_CLANG_VERSIONS_VERSIONS", "").split(",")) or ["5.0", "5.1", "6.0", "6.1", "7.0"]): for arch in ["x86", "x86_64"]: builder.add(
from conan.packager import ConanMultiPackager import os if __name__ == "__main__": if os.getenv("CXX") == "g++-7": version = os.getenv("TRAVIS_TAG") if not version: version = "dev" reference = "functionalplus/%s" % version username = "******" channel = "stable" upload_remote = "https://api.bintray.com/conan/Dobiasd/public-conan" if version is not "dev" else None print("Conan package metadata:", reference, username, channel, upload_remote) builder = ConanMultiPackager(reference=reference, username=username, channel=channel, upload=upload_remote) builder.add( settings={ 'os': 'Linux', 'compiler.version': '7', 'compiler.libcxx': 'libstdc++11', 'arch': 'x86_64', 'build_type': 'Release', 'compiler': 'gcc' }) builder.run()
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******") builder.add(settings={}, options={}, env_vars={}, build_requires={}) builder.run()
"/") if repobranch_a else repobranch_t.split("/") return username, channel, version def get_env_vars(): return get_ci_vars() if is_ci_running() else get_default_vars() def get_os(): return platform.system().replace("Darwin", "Macos") if __name__ == "__main__": name = get_name_from_recipe() username, channel, version = get_env_vars() reference = "{0}/{1}".format(name, version) upload = "https://api.bintray.com/conan/{0}/public-conan".format(username) builder = ConanMultiPackager( username=username, channel=channel, reference=reference, upload=upload, remotes= upload, #while redundant, this moves bincrafters remote to position 0 upload_only_when_stable=True, stable_branch_pattern="stable/*") builder.add_common_builds() builder.run()
# coding: utf-8 from conan.packager import ConanMultiPackager import platform if __name__ == "__main__": builder = ConanMultiPackager(username="******") if platform.system() == "Windows": for compiler_version in ["11", "12", "14"]: for compiler_runtime in ["MT", "MD"]: for build_type in ["Release", "Debug"]: for arch in ["x86", "x86_64"]: for shared in ["True", "False"]: settings = {} settings["compiler"] = "Visual Studio" settings["compiler.version"] = compiler_version settings["build_type"] = build_type settings["compiler.runtime"] = "%s%s" % ( compiler_runtime, "d" if build_type == "Debug" else "") settings["arch"] = arch options = {} options["fftw:shared"] = shared builder.add(settings, options) else: for build_type in ["Release", "Debug"]: for shared in ["True", "False"]: settings = {} settings["build_type"] = build_type
result.append([settings, options, env_vars, build_requires, reference]) return result def filter_libcxx(builds): result = [] for settings, options, env_vars, build_requires, reference in builds: if settings["compiler.libcxx"] == "libstdc++11": result.append( [settings, options, env_vars, build_requires, reference]) return result if __name__ == "__main__": builder = ConanMultiPackager(username=username, visual_versions=visual_versions, visual_runtimes=visual_runtimes, exclude_vcvars_precommand=True) builder.add_common_builds(pure_c=False) # Adjusting build configurations builds = builder.items if platform.system() == "Windows": builds = add_dll_sign(builds) builds = filter_shared_MT(builds) if platform.system() == "Linux": builds = filter_libcxx(builds) builds = add_with_unit_tests(builds) # Replace build configurations builder.items = [] for settings, options, env_vars, build_requires, _ in builds: builder.add(settings=settings, options=options,
def get_env_vars(): return get_ci_vars() if is_ci_running() else get_default_vars() def get_os(): return platform.system().replace("Darwin", "Macos") if __name__ == "__main__": name = get_name_from_recipe() username, channel, version = get_env_vars() reference = "{0}/{1}".format(name, version) upload = "https://api.bintray.com/conan/{0}/opensource".format( username.lower()) bincrafters = "https://api.bintray.com/conan/bincrafters/public-conan" builder = ConanMultiPackager( username=username, channel=channel, reference=reference, upload=upload, remotes=[upload, bincrafters], upload_only_when_stable=True, docker_entry_script= 'sudo apt-get -qq update && sudo apt-get -qq install -y pkg-config', stable_branch_pattern="stable/*") builder.add_common_builds(shared_option_name=name + ":shared") builder.run()
from conan.packager import ConanMultiPackager import platform if __name__ == "__main__": builder = ConanMultiPackager(build_policy="missing") shared_option = False if platform.system() == "Windows" else None builder.add_common_builds(shared_option_name=shared_option, pure_c=False) builder.run()
#!/usr/bin/env python3 from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******") cxxstds = ['11','14'] libstdcxx = ['libstdc++', 'libstdc++11'] shared = [True, False] for triple in [[c,l] for c in cxxstds for l in libstdcxx]: builder.add( settings={"compiler.libcxx":triple[1]}, options={"stdcxx" : triple[0], "fPIC":True}, env_vars={}, build_requires={}) builder.run()
from conan.packager import ConanMultiPackager import platform if __name__ == "__main__": builder = ConanMultiPackager(username="******", channel="testing") builder.add_common_builds(pure_c=False) builder.run()
def test_only_mingw(self): mingw_configurations = [("4.9", "x86_64", "seh", "posix")] builder = ConanMultiPackager( mingw_configurations=mingw_configurations, visual_versions=[], username="******", platform_info=platform_mock_for("Windows"), reference="lib/1.0") builder.add_common_builds(shared_option_name="zlib:shared", pure_c=True) expected = [ ({ 'compiler.exception': 'seh', 'compiler.libcxx': "libstdc++", 'compiler.threads': 'posix', 'compiler.version': '4.9', 'arch': 'x86_64', 'build_type': 'Release', 'compiler': 'gcc' }, { 'zlib:shared': True }, {}, { '*': [ConanFileReference.loads("mingw_installer/1.0@conan/stable")] }), ({ 'compiler.exception': 'seh', 'compiler.libcxx': "libstdc++", 'arch': 'x86_64', 'compiler.threads': 'posix', 'compiler.version': '4.9', 'build_type': 'Debug', 'compiler': 'gcc' }, { 'zlib:shared': True }, {}, { '*': [ConanFileReference.loads("mingw_installer/1.0@conan/stable")] }), ({ 'compiler.exception': 'seh', 'compiler.libcxx': "libstdc++", 'compiler.threads': 'posix', 'compiler.version': '4.9', 'arch': 'x86_64', 'build_type': 'Release', 'compiler': 'gcc' }, { 'zlib:shared': False }, {}, { '*': [ConanFileReference.loads("mingw_installer/1.0@conan/stable")] }), ({ 'compiler.exception': 'seh', 'compiler.libcxx': "libstdc++", 'arch': 'x86_64', 'compiler.threads': 'posix', 'compiler.version': '4.9', 'build_type': 'Debug', 'compiler': 'gcc' }, { 'zlib:shared': False }, {}, { '*': [ConanFileReference.loads("mingw_installer/1.0@conan/stable")] }) ] self.assertEquals([tuple(a) for a in builder.builds], expected)
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager(username="******", channel="stable") builder.add_common_builds(shared_option_name="lmdb:shared", pure_c=True) # filtered_builds = [] # # for settings, options in builder.builds: # for settings, options, env_vars, build_requires, reference in builder.items: # # # Selecting the debug runtimes (MTd, MDd) on Windows for Debug builds # # if settings["compiler"] == "Visual Studio": # # if settings["compiler.runtime"].startswith("MT"): # # continue # # if settings["build_type"] == "Debug" and not settings["compiler.runtime"].endswith("d"): # # settings["compiler.runtime"] += "d" # # # Build both libstdc++ and libstdc++11 # # elif settings["compiler"] == "gcc": # # settings["compiler.libcxx"] = "libstdc++11" # # filtered_builds.append([settings, options]) # # settings["compiler.libcxx"] = "libstdc++" # # filtered_builds.append([settings, options]) # # else: # # filtered_builds.append([settings, options]) # builder.builds = filtered_builds builder.run()
def test_upload(self): runner = MockRunner() runner.output = "arepo: myurl" builder = ConanMultiPackager(username="******", channel="testing", reference="Hello/0.1", password="******", upload="myurl", visual_versions=[], gcc_versions=[], apple_clang_versions=[], runner=runner, remotes="myurl, otherurl", platform_info=platform_mock_for("Darwin")) builder.add_common_builds() builder.run() # Duplicated upload remote puts upload repo first (in the remotes order) self.assertEqual(runner.calls[0:3], [ 'conan remote add remote0 otherurl --insert', 'conan remote add upload_repo myurl --insert', 'conan remote list' ]) # Now check that the upload remote order is preserved if we specify it in the remotes runner = MockRunner() builder = ConanMultiPackager(username="******", channel="testing", reference="Hello/0.1", password="******", upload="myurl", visual_versions=[], gcc_versions=[], apple_clang_versions=[], runner=runner, remotes="otherurl, myurl, moreurl", platform_info=platform_mock_for("Darwin")) builder.add_common_builds() builder.run() # Duplicated upload remote puts upload repo first (in the remotes order) self.assertEqual(runner.calls[0:3], [ 'conan remote add remote0 moreurl --insert', 'conan remote add upload_repo myurl --insert', 'conan remote add remote2 otherurl --insert' ]) self.assertEqual( runner.calls[-1], 'conan upload Hello/0.1@pepe/testing --retry 3 --all --force ' '--confirm -r=upload_repo') runner = MockRunner() builder = ConanMultiPackager(username="******", channel="testing", reference="Hello/0.1", password="******", upload="myurl", visual_versions=[], gcc_versions=[], apple_clang_versions=[], runner=runner, remotes="otherurl", platform_info=platform_mock_for("Darwin")) builder.add_common_builds() builder.run() self.assertEqual(runner.calls[0:3], [ 'conan remote add remote0 otherurl --insert', 'conan remote list', 'conan remote add upload_repo myurl' ]) self.assertEqual( runner.calls[-1], 'conan upload Hello/0.1@pepe/testing --retry 3 --all ' '--force --confirm -r=upload_repo')
from conan.packager import ConanMultiPackager if __name__ == "__main__": builder = ConanMultiPackager() builder.add_common_builds(pure_c=True, shared_option_name="c-ares:shared") builder.run()
#!/usr/bin/env python3 from conan.packager import ConanMultiPackager from conans.tools import os_info import copy import os if __name__ == "__main__": builder = ConanMultiPackager(build_policy="outdated") builder.add(settings={ "os": "Arduino", "os.board": "XYZrobot1280", "compiler": "gcc", "compiler.version": "7.3", "compiler.libcxx": "libstdc++11", "arch": "avr" }, build_requires={ "*": [ "arduino-sdk/1.8.11@conan/testing", "arduino-cmake/1.0.0@conan/testing", "cmake_installer/3.16.3@conan/stable" ] }) builder.run()