Created
April 8, 2025 09:27
-
-
Save uilianries/e0438f6ac92f8444a1cb89c6faa3a4a7 to your computer and use it in GitHub Desktop.
Conan 2.15.0 - Validate parallel cache on Mac
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Starting 4 parallel Poco builds to test cache feature | |
Starting build 0 | |
Starting build 1 | |
Starting build 2 | |
Starting build 3 | |
Build 1: FAILED (took 0.30 seconds) | |
Error in build 1: | |
======== Exporting recipe to the cache ======== | |
ERROR: Couldn't remove folder: /Users/uilian/.conan2/p/t/pocoaf91dcc73ba05 | |
[Errno 2] No such file or directory: '/Users/uilian/.conan2/p/t/pocoaf91dcc73ba05' | |
Folder might be busy or open. Close any app using it and retry. | |
Build 3: FAILED (took 3.16 seconds) | |
Error in build 3: | |
======== Exporting recipe to the cache ======== | |
poco/1.13.3: [HOOK - hook_lint_recipe.py] pre_export(): RUN: conanlint check "/Users/uilian/Development/conan/conan-center-index/recipes/poco/**/*" --exit-zero --format=rich | |
all/conanfile.py::338:22 - W9050: Attribute `filenames` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 338 self.cpp_info.filenames["cmake_find_package"] = "Poco" │ | |
│ 339 self.cpp_info.filenames["cmake_find_package_multi"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::339:22 - W9050: Attribute `filenames` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 338 self.cpp_info.filenames["cmake_find_package"] = "Poco" │ | |
│ 339 self.cpp_info.filenames["cmake_find_package_multi"] = "Poco" │ | |
│ 340 self.cpp_info.names["cmake_find_package"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::340:22 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 339 self.cpp_info.filenames["cmake_find_package_multi"] = "Poco" │ | |
│ 340 self.cpp_info.names["cmake_find_package"] = "Poco" │ | |
│ 341 self.cpp_info.names["cmake_find_package_multi"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::341:22 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 340 self.cpp_info.names["cmake_find_package"] = "Poco" │ | |
│ 341 self.cpp_info.names["cmake_find_package_multi"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::353:58 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 352 self.cpp_info.components[conan_component].set_property("cmake_file_name", compname) │ | |
│ 353 self.cpp_info.components[conan_component].names["cmake_find_package"] = compname │ | |
│ 354 self.cpp_info.components[conan_component].names["cmake_find_package_multi"] = compname │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::354:58 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 353 self.cpp_info.components[conan_component].names["cmake_find_package"] = compname │ | |
│ 354 self.cpp_info.components[conan_component].names["cmake_find_package_multi"] = compname │ | |
│ 355 if comp.is_lib: │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::84:8 - W0631: Using possibly undefined loop variable 'comp' (undefined-loop-variable) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 83 default_options[comp.option] = comp.default_option │ | |
│ 84 del comp │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
Error: Found 7 warning | |
poco/1.13.3: Exporting package recipe: /Users/uilian/Development/conan/conan-center-index/recipes/poco/all/conanfile.py | |
poco/1.13.3: exports: File 'conandata.yml' found. Exporting it... | |
poco/1.13.3: Calling export_sources() | |
ERROR: Traceback (most recent call last): | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/site-packages/conan/cli/cli.py", line 307, in main | |
cli.run(args) | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/site-packages/conan/cli/cli.py", line 192, in run | |
command.run(self._conan_api, args[0][1:]) | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/site-packages/conan/cli/command.py", line 179, in run | |
info = self._method(conan_api, parser, *args) | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/site-packages/conan/cli/commands/create.py", line 51, in create | |
ref, conanfile = conan_api.export.export(path=path, | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/site-packages/conan/api/subapi/export.py", line 20, in export | |
return cmd_export(app, hook_manager, self.conan_api.config.global_conf, path, name, version, | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/site-packages/conan/internal/api/export.py", line 50, in cmd_export | |
shutil.copy2(conanfile_path, recipe_layout.conanfile()) | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/shutil.py", line 435, in copy2 | |
copystat(src, dst, follow_symlinks=follow_symlinks) | |
File "/Users/uilian/.pyenv/versions/3.10.4/lib/python3.10/shutil.py", line 374, in copystat | |
lookup("utime")(dst, ns=(st.st_atime_ns, st.st_mtime_ns), | |
FileNotFoundError: [Errno 2] No such file or directory | |
ERROR: [Errno 2] No such file or directory | |
Build 0: FAILED (took 5.52 seconds) | |
Error in build 0: | |
======== Exporting recipe to the cache ======== | |
poco/1.13.3: [HOOK - hook_lint_recipe.py] pre_export(): RUN: conanlint check "/Users/uilian/Development/conan/conan-center-index/recipes/poco/**/*" --exit-zero --format=rich | |
all/conanfile.py::338:22 - W9050: Attribute `filenames` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 338 self.cpp_info.filenames["cmake_find_package"] = "Poco" │ | |
│ 339 self.cpp_info.filenames["cmake_find_package_multi"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::339:22 - W9050: Attribute `filenames` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 338 self.cpp_info.filenames["cmake_find_package"] = "Poco" │ | |
│ 339 self.cpp_info.filenames["cmake_find_package_multi"] = "Poco" │ | |
│ 340 self.cpp_info.names["cmake_find_package"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::340:22 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 339 self.cpp_info.filenames["cmake_find_package_multi"] = "Poco" │ | |
│ 340 self.cpp_info.names["cmake_find_package"] = "Poco" │ | |
│ 341 self.cpp_info.names["cmake_find_package_multi"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::341:22 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 340 self.cpp_info.names["cmake_find_package"] = "Poco" │ | |
│ 341 self.cpp_info.names["cmake_find_package_multi"] = "Poco" │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::353:58 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 352 self.cpp_info.components[conan_component].set_property("cmake_file_name", compname) │ | |
│ 353 self.cpp_info.components[conan_component].names["cmake_find_package"] = compname │ | |
│ 354 self.cpp_info.components[conan_component].names["cmake_find_package_multi"] = compname │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::354:58 - W9050: Attribute `names` is deprecated in conan v2 (conan-deprecated-attribute) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 353 self.cpp_info.components[conan_component].names["cmake_find_package"] = compname │ | |
│ 354 self.cpp_info.components[conan_component].names["cmake_find_package_multi"] = compname │ | |
│ 355 if comp.is_lib: │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
all/conanfile.py::84:8 - W0631: Using possibly undefined loop variable 'comp' (undefined-loop-variable) | |
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ | |
│ 83 default_options[comp.option] = comp.default_option │ | |
│ 84 del comp │ | |
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ | |
Error: Found 7 warning | |
poco/1.13.3: Exporting package recipe: /Users/uilian/Development/conan/conan-center-index/recipes/poco/all/conanfile.py | |
poco/1.13.3: exports: File 'conandata.yml' found. Exporting it... | |
poco/1.13.3: Calling export_sources() | |
poco/1.13.3: Copied 1 '.py' file: conanfile.py | |
poco/1.13.3: Copied 1 '.yml' file: conandata.yml | |
poco/1.13.3: Copied 3 '.patch' files: 1.13.0-0003-pocomsg-resource.patch, 1.13.0-0002-mysql-include.patch, 1.13.0.patch | |
poco/1.13.3: Exported to cache folder: /Users/uilian/.conan2/p/poco292623456cb16/e | |
poco/1.13.3: Exported: poco/1.13.3#c726bd839e406e4d64a7a6b7016e6a16 (2025-04-08 09:24:42 UTC) | |
======== Input profiles ======== | |
Profile host: | |
[settings] | |
arch=armv8 | |
build_type=Release | |
compiler=apple-clang | |
compiler.cppstd=17 | |
compiler.libcxx=libc++ | |
compiler.version=15 | |
os=Macos | |
[options] | |
"*/*:shared=True" -o "&:log_debug=False" | |
[conf] | |
core.sources:download_cache=/Users/uilian/.conan2/backup_source | |
tools.build:verbosity=verbose | |
tools.cmake.cmaketoolchain:generator=Ninja | |
tools.compilation:verbosity=verbose | |
tools.files.download:verify=False | |
Profile build: | |
[settings] | |
arch=armv8 | |
build_type=Release | |
compiler=apple-clang | |
compiler.cppstd=17 | |
compiler.libcxx=libc++ | |
compiler.version=15 | |
os=Macos | |
[conf] | |
core.sources:download_cache=/Users/uilian/.conan2/backup_source | |
tools.build:verbosity=verbose | |
tools.cmake.cmaketoolchain:generator=Ninja | |
tools.compilation:verbosity=verbose | |
tools.files.download:verify=False | |
======== Computing dependency graph ======== | |
Graph root | |
cli | |
Requirements | |
bzip2/1.0.8#d00dac990f08d991998d624be81a9526 - Cache | |
expat/2.7.1#b0b67ba910c5147271b444139ca06953 - Cache | |
libmysqlclient/8.1.0#ecca1993f7ce32371ef5436f3639074a - Cache | |
libpq/15.4#7c113f89180dee415d80d6b5aa9bab7f - Cache | |
lz4/1.9.4#4ed63aa8e019d795cd3b8c0d2dd66cda - Cache | |
openssl/3.4.1#f16a5eb84eb7e83d3de1cf6432afa69e - Cache | |
pcre2/10.42#9a35f5089feb875ec61a38eca364ce77 - Cache | |
poco/1.13.3#c726bd839e406e4d64a7a6b7016e6a16 - Cache | |
sqlite3/3.49.1#8631739a4c9b93bd3d6b753bac548a63 - Cache | |
zlib/1.3.1#b8bc2603263cf7eccbd6e17e66b0ed76 - Cache | |
zstd/1.5.5#1f239731dc45147c7fc2f54bfbde73df - Cache | |
Build requirements | |
cmake/3.31.6#ed0e6c1d49bd564ce6fed1a19653b86d - Cache | |
Resolved version ranges | |
cmake/[>=3.18 <4]: cmake/3.31.6 | |
expat/[>=2.6.2 <3]: expat/2.7.1 | |
openssl/[>=1.1 <4]: openssl/3.4.1 | |
sqlite3/[>=3.45.0 <4]: sqlite3/3.49.1 | |
zlib/[>=1.2.11 <2]: zlib/1.3.1 | |
======== Computing necessary packages ======== | |
Connecting to remote 'conancenter' anonymously | |
libmysqlclient/8.1.0: Main binary package 'd6cb6192ed554aed803ffc88428d9f8bd5cc6fa7' missing | |
libmysqlclient/8.1.0: Checking 11 compatible configurations | |
libmysqlclient/8.1.0: Compatible configurations not found in cache, checking servers | |
libmysqlclient/8.1.0: '74d08b3c673dde1c91444015a3c56cadb319b8b8': compiler.cppstd=98 | |
libmysqlclient/8.1.0: '42ae0f418ce2140ea93a860a620625fba7cfd57f': compiler.cppstd=gnu98 | |
libmysqlclient/8.1.0: '646df1c2867a7d30d1d809c072d2c50ca1e64854': compiler.cppstd=11 | |
libmysqlclient/8.1.0: '3446aae667885b0a4a225dfc93f2cbf28e2e2a27': compiler.cppstd=gnu11 | |
libmysqlclient/8.1.0: '3c3ef6e9f4541a672c4715bb3c11f417429709e6': compiler.cppstd=14 | |
libmysqlclient/8.1.0: '15e62d5e2c4a00d2de135606e8189e67e19b7160': compiler.cppstd=gnu14 | |
libmysqlclient/8.1.0: '858622f36c76c29723f9de73c331c5db8ee387e8': compiler.cppstd=gnu17 | |
libmysqlclient/8.1.0: 'b7ff2c7a01fa1aafeb9044af02e358f628b2ef5f': compiler.cppstd=20 | |
libmysqlclient/8.1.0: 'ae07a8ef696a0db8f9b85d9917354e6d884fc970': compiler.cppstd=gnu20 | |
libmysqlclient/8.1.0: '09082f17b48b2c7219eb52f109e12946788f3478': compiler.cppstd=23 | |
libmysqlclient/8.1.0: '893f209f1a9d9cf98516bae01681464d766b1f9d': compiler.cppstd=gnu23 | |
poco/1.13.3: Main binary package 'fb6ad630f9a71387e97e9dede51c1d78156460e9' missing | |
poco/1.13.3: Checking 5 compatible configurations | |
poco/1.13.3: Compatible configurations not found in cache, checking servers | |
poco/1.13.3: '3c2a509f9105a9615cf1fb20cc3bef7f10311ed9': compiler.cppstd=gnu17 | |
poco/1.13.3: 'c72476783a9f5ba2b08158c9e740e394c84d5f58': compiler.cppstd=20 | |
poco/1.13.3: '0f6f2b904796f91d78e5eca5d15b01561e435aaa': compiler.cppstd=gnu20 | |
poco/1.13.3: 'ee358913011993f639c12afb1216d65dee609b69': compiler.cppstd=23 | |
poco/1.13.3: '2eb2e0b22d391cf8e33d08b41db2814080049071': compiler.cppstd=gnu23 | |
Requirements | |
bzip2/1.0.8#d00dac990f08d991998d624be81a9526:bd47875fc25b97398a4030f4060ef8ef3539584a#b74bad8df2fb62bd1237e0cbf06f2474 - Cache | |
expat/2.7.1#b0b67ba910c5147271b444139ca06953:10fd60dbb19c1c7b079fb35f1ca651920973f9ca#e8b9bed6e5065768379b48ce7543bbe9 - Cache | |
libmysqlclient/8.1.0#ecca1993f7ce32371ef5436f3639074a:d6cb6192ed554aed803ffc88428d9f8bd5cc6fa7 - Build | |
libpq/15.4#7c113f89180dee415d80d6b5aa9bab7f:3f3b8ede7e67aa85670ba43bdaad7bb8f9e7313c - Build | |
lz4/1.9.4#4ed63aa8e019d795cd3b8c0d2dd66cda:2ee39e692ca4177b4b689b15bc1f2cfdf8f83706 - Build | |
openssl/3.4.1#f16a5eb84eb7e83d3de1cf6432afa69e:7833c7c48ca5681090256e36ed675b071307c45a#7742034f141384a2aada3aaa32b4ae9d - Cache | |
pcre2/10.42#9a35f5089feb875ec61a38eca364ce77:9ace3c9172570ae624a936ff69fc4adc1c0557f7 - Build | |
poco/1.13.3#c726bd839e406e4d64a7a6b7016e6a16:fb6ad630f9a71387e97e9dede51c1d78156460e9 - Build | |
sqlite3/3.49.1#8631739a4c9b93bd3d6b753bac548a63:fa81bfa430606be9f6fbea2e0412b94a4ab764bc - Build | |
zlib/1.3.1#b8bc2603263cf7eccbd6e17e66b0ed76:2ee39e692ca4177b4b689b15bc1f2cfdf8f83706#a5037fd587ecc8b72242418b6185313a - Cache | |
zstd/1.5.5#1f239731dc45147c7fc2f54bfbde73df:76dad4e6c83dde347fd81bafee7e53584d62846e#b95815235ba5681c5976b415ae2f21e9 - Cache | |
Build requirements | |
cmake/3.31.6#ed0e6c1d49bd564ce6fed1a19653b86d:9e5323c65b94ae38c3c733fe12637776db0119a5#0b2dc3aa1bc49a5866e358092ba4aba0 - Cache | |
======== Installing packages ======== | |
bzip2/1.0.8: Already installed! (1 of 12) | |
cmake/3.31.6: Already installed! (2 of 12) | |
cmake/3.31.6: Appending PATH environment variable: /Users/uilian/.conan2/p/cmake3721984c17248/p/CMake.app/Contents/bin | |
expat/2.7.1: Already installed! (3 of 12) | |
libpq/15.4: WARN: Trying to remove corrupted source folder | |
libpq/15.4: WARN: This can take a while for big packages | |
ERROR: Couldn't remove folder: /Users/uilian/.conan2/p/libpq05bc3716309e4/s | |
[Errno 2] No such file or directory: '/Users/uilian/.conan2/p/libpq05bc3716309e4/s/src/contrib/pg_freespacemap/expected/pg_freespacemap.out' | |
Folder might be busy or open. Close any app using it and retry. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import subprocess | |
import concurrent.futures | |
import os | |
import time | |
POCO_OPTIONS = [ | |
'-o "*/*:shared=True" -o "&:log_debug=False"', | |
'-o "*/*:shared=False" -o "&:log_debug=False"', | |
'-o "*/*:shared=True" -o "&:log_debug=True"', | |
'-o "*/*:shared=False" -o "&:log_debug=True"', | |
] | |
def build_poco(build_id): | |
"""Build Poco Conan recipe with a unique ID for tracking""" | |
print(f"Starting build {build_id}") | |
poco_version = "1.13.3" | |
start_time = time.time() | |
# Run conan create command for Poco | |
result = subprocess.run( | |
["conan", "create", "all", f"--version={poco_version}", "--build=missing", POCO_OPTIONS[build_id]], | |
cwd="/Users/uilian/Development/conan/conan-center-index/recipes/poco", | |
capture_output=True, | |
text=True | |
) | |
end_time = time.time() | |
duration = end_time - start_time | |
return { | |
"build_id": build_id, | |
"success": result.returncode == 0, | |
"duration": duration, | |
"stdout": result.stdout, | |
"stderr": result.stderr | |
} | |
def main(): | |
num_builds = len(POCO_OPTIONS) | |
print(f"Starting {num_builds} parallel Poco builds to test cache feature") | |
# Use ThreadPoolExecutor to run builds in parallel | |
with concurrent.futures.ThreadPoolExecutor(max_workers=num_builds) as executor: | |
# Submit all build jobs | |
future_to_build = {executor.submit(build_poco, i): i for i in range(num_builds)} | |
# Process results as they complete | |
for future in concurrent.futures.as_completed(future_to_build): | |
build_id = future_to_build[future] | |
try: | |
result = future.result() | |
status = "SUCCESS" if result["success"] else "FAILED" | |
print(f"Build {build_id}: {status} (took {result['duration']:.2f} seconds)") | |
if not result["success"]: | |
print(f"Error in build {build_id}:") | |
print(result["stderr"]) | |
except Exception as e: | |
print(f"Build {build_id} generated an exception: {e}") | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment