| #!/usr/bin/env python |
| # -*- coding: utf-8 -*- |
| import os |
| import re |
| import subprocess |
| from cpt.packager import ConanMultiPackager |
| |
| |
| def set_appveyor_environment(): |
| if os.getenv("APPVEYOR") is not None: |
| compiler_version = os.getenv("CMAKE_VS_VERSION").split(" ")[0].replace('"', '') |
| os.environ["CONAN_VISUAL_VERSIONS"] = compiler_version |
| os.environ["CONAN_STABLE_BRANCH_PATTERN"] = "master" |
| ci_platform = os.getenv("Platform").replace('"', '') |
| ci_platform = "x86" if ci_platform == "x86" else "x86_64" |
| os.environ["CONAN_ARCHS"] = ci_platform |
| os.environ["CONAN_BUILD_TYPES"] = os.getenv("Configuration").replace('"', '') |
| |
| |
| def get_branch(): |
| try: |
| for line in subprocess.check_output("git branch", shell=True).decode().splitlines(): |
| line = line.strip() |
| if line.startswith("*") and " (HEAD detached" not in line: |
| return line.replace("*", "", 1).strip() |
| return "" |
| except Exception: |
| pass |
| return "" |
| |
| |
| def get_version(): |
| version = get_branch() |
| if os.getenv("TRAVIS", False): |
| version = os.getenv("TRAVIS_BRANCH") |
| |
| if os.getenv("APPVEYOR", False): |
| version = os.getenv("APPVEYOR_REPO_BRANCH") |
| if os.getenv("APPVEYOR_REPO_TAG") == "true": |
| version = os.getenv("APPVEYOR_REPO_TAG_NAME") |
| |
| match = re.search(r"v(\d+\.\d+\.\d+.*)", version) |
| if match: |
| return match.group(1) |
| return version |
| |
| |
| def get_reference(username): |
| return "flatbuffers/{}@google/stable".format(get_version()) |
| |
| |
| if __name__ == "__main__": |
| login_username = os.getenv("CONAN_LOGIN_USERNAME", "aardappel") |
| username = os.getenv("CONAN_USERNAME", "google") |
| upload = os.getenv("CONAN_UPLOAD", "https://api.bintray.com/conan/aardappel/flatbuffers") |
| stable_branch_pattern = os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v\d+\.\d+\.\d+.*") |
| test_folder = os.getenv("CPT_TEST_FOLDER", os.path.join("conan", "test_package")) |
| upload_only_when_stable = os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True) |
| set_appveyor_environment() |
| |
| builder = ConanMultiPackager(reference=get_reference(username), |
| username=username, |
| login_username=login_username, |
| upload=upload, |
| stable_branch_pattern=stable_branch_pattern, |
| upload_only_when_stable=upload_only_when_stable, |
| test_folder=test_folder) |
| builder.add_common_builds(pure_c=False) |
| builder.run() |