def main(): """ Main function. """ builder = ConanMultiPackager(username="******", channel="testing") builder.add_common_builds() filtered_builds = [] for settings, options, env_vars, build_requires in builder.builds: if settings["compiler"] == "Visual Studio": if settings["compiler.runtime"] == "MT" or settings["compiler.runtime"] == "MTd": # Ignore MT runtime continue if settings["arch"] != "x86_64": continue filtered_builds.append([settings, options, env_vars, build_requires]) builder.builds = filtered_builds builder.run()
from conan.packager import ConanMultiPackager import platform if __name__ == "__main__": builder = ConanMultiPackager() builder.add_common_builds(shared_option_name="littlecms:shared", pure_c=True) builder.run()
from conan.packager import ConanMultiPackager import platform if __name__ == "__main__": builder = ConanMultiPackager() # builder.add_common_builds(shared_option_name="SDL2:shared", pure_c=True) # if platform.system() == "Darwin": # # Remove static builds in OSx # static_builds = [] # for build in builder.builds: # if build[1]["SDL2:shared"]: # static_builds.append([build[0], {}]) # # builder.builds = static_builds # builder.run() # Will upload just the recipe
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 import platform if __name__ == "__main__": builder = ConanMultiPackager() builder.add_common_builds(shared_option_name="zlib:shared", pure_c=True) builder.run()
if 'CONAN_BASE_PROFILE_ARCHBUILD' in os.environ: os.system("conan profile update settings.arch_build=\"%s\" ./ci-profile" % os.environ['CONAN_BASE_PROFILE_ARCHBUILD']) if 'CONAN_BASE_PROFILE_COMPILER' in os.environ: os.system("conan profile update settings.compiler=\"%s\" ./ci-profile" % os.environ['CONAN_BASE_PROFILE_COMPILER']) if 'CONAN_BASE_PROFILE_COMPILER_VERSION' in os.environ: os.system("conan profile update settings.compiler.version=\"%s\" ./ci-profile" % os.environ['CONAN_BASE_PROFILE_COMPILER_VERSION']) if 'CONAN_BASE_PROFILE_COMPILER_LIBCXX' in os.environ: os.system("conan profile update settings.compiler.libcxx=\"%s\" ./ci-profile" % os.environ['CONAN_BASE_PROFILE_COMPILER_LIBCXX']) if 'CONAN_BASE_PROFILE_BUILDTYPE' in os.environ: os.system("conan profile update settings.build_type=\"%s\" ./ci-profile" % os.environ['CONAN_BASE_PROFILE_BUILDTYPE']) if 'CONAN_OPTIONS' in os.environ: for option in os.environ['CONAN_OPTIONS'].split(','): os.system("conan profile update options.%s ./ci-profile" % option) user_name = "user" user_channel = "testing" if 'CONAN_USERNAME' in os.environ: user_name = os.environ['CONAN_USERNAME'] if 'CONAN_CHANNEL' in os.environ: user_channel = os.environ['CONAN_CHANNEL'] builder = ConanMultiPackager(build_policy="outdated", upload_retry=3, upload_only_recipe=True) builder.add() builder.run(os.path.abspath("./ci-profile"))
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 if __name__ == "__main__": builder = ConanMultiPackager() builder.add_common_builds(shared_option_name="SDL2:shared", pure_c=True) # if platform.system() == "Darwin": # # Remove static builds in OSx # static_builds = [] # for build in builder.builds: # if build[1]["SDL2:shared"]: # static_builds.append([build[0], {}]) # # builder.builds = static_builds # builder.run() # Will upload just the recipe
def build(): builder = ConanMultiPackager(build_policy="missing") builder.add_common_builds(pure_c=False, shared_option_name=False) builder.remove_build_if( lambda build: build.settings["compiler.libcxx"] == "libstdc++") builder.run()