70 lines
2.5 KiB
Python
70 lines
2.5 KiB
Python
#!/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()
|