mirror of
https://github.com/audacity/conan-recipes.git
synced 2025-12-12 19:49:52 -06:00
48 lines
2.1 KiB
Python
48 lines
2.1 KiB
Python
import os
|
|
from impl.remotes import add_remote, remove_remote
|
|
from impl.conan_recipe_store import get_recipe
|
|
from impl.package_reference import PackageReference
|
|
|
|
recipes_remote_name = "conan-utils-audacity-recipes-conan2"
|
|
binaries_remote_name = "conan-utils-audacity-binaries-conan2"
|
|
|
|
|
|
def upload_all(recipes_remote:str, binaries_remote:str, upload_build_tools:bool, build_order:list[str]) -> None:
|
|
if not recipes_remote:
|
|
recipes_remote = os.environ.get('CONAN_RECIPES_REMOTE', "https://artifactory.audacityteam.org/artifactory/api/conan/audacity-recipes-conan2")
|
|
if not binaries_remote:
|
|
binaries_remote = os.environ.get('CONAN_BINARIES_REMOTE', "https://artifactory.audacityteam.org/artifactory/api/conan/audacity-binaries-conan2")
|
|
|
|
recipes_added = add_remote(recipes_remote_name, recipes_remote)
|
|
binaries_added = add_remote(binaries_remote_name, binaries_remote)
|
|
|
|
failed_packages = []
|
|
|
|
try:
|
|
for package_name in build_order:
|
|
package_reference = PackageReference(package_name=package_name)
|
|
recipe = get_recipe(package_reference)
|
|
|
|
if not recipe.is_build_tool or upload_build_tools:
|
|
print(f'Uploading {package_reference}', flush=True)
|
|
try:
|
|
recipe.upload(recipes_remote_name, False)
|
|
recipe.upload(binaries_remote_name, True)
|
|
except Exception as e:
|
|
print(f'Failed to upload {package_reference}: {e}', flush=True)
|
|
failed_packages.append(package_reference)
|
|
else:
|
|
print(f'Skipping {package_reference}: a build tool', flush=True)
|
|
finally:
|
|
if recipes_added:
|
|
remove_remote(recipes_remote_name)
|
|
if binaries_added:
|
|
remove_remote(binaries_remote_name)
|
|
|
|
if len(failed_packages) > 0:
|
|
print('Failed to upload the following packages:', flush=True)
|
|
for package_reference in failed_packages:
|
|
print(f' {package_reference}', flush=True)
|
|
raise Exception('Failed to upload some packages')
|
|
|