blob: 55456311badafd1b454ee9ef15beb92a5e6e9a5f [file] [log] [blame]
Austin Schuhe89fa2d2019-08-14 20:24:23 -07001#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3import os
4import re
5import subprocess
6from cpt.packager import ConanMultiPackager
7
8
9def set_appveyor_environment():
10 if os.getenv("APPVEYOR") is not None:
11 compiler_version = os.getenv("CMAKE_VS_VERSION").split(" ")[0].replace('"', '')
12 os.environ["CONAN_VISUAL_VERSIONS"] = compiler_version
13 os.environ["CONAN_STABLE_BRANCH_PATTERN"] = "master"
14 ci_platform = os.getenv("Platform").replace('"', '')
15 ci_platform = "x86" if ci_platform == "x86" else "x86_64"
16 os.environ["CONAN_ARCHS"] = ci_platform
17 os.environ["CONAN_BUILD_TYPES"] = os.getenv("Configuration").replace('"', '')
18
19
20def get_branch():
21 try:
22 for line in subprocess.check_output("git branch", shell=True).decode().splitlines():
23 line = line.strip()
24 if line.startswith("*") and " (HEAD detached" not in line:
25 return line.replace("*", "", 1).strip()
26 return ""
27 except Exception:
28 pass
29 return ""
30
31
32def get_version():
33 version = get_branch()
34 if os.getenv("TRAVIS", False):
35 version = os.getenv("TRAVIS_BRANCH")
36
37 if os.getenv("APPVEYOR", False):
38 version = os.getenv("APPVEYOR_REPO_BRANCH")
39 if os.getenv("APPVEYOR_REPO_TAG") == "true":
40 version = os.getenv("APPVEYOR_REPO_TAG_NAME")
41
42 match = re.search(r"v(\d+\.\d+\.\d+.*)", version)
43 if match:
44 return match.group(1)
45 return version
46
47
48def get_reference(username):
49 return "flatbuffers/{}@google/stable".format(get_version())
50
51
52if __name__ == "__main__":
53 login_username = os.getenv("CONAN_LOGIN_USERNAME", "aardappel")
54 username = os.getenv("CONAN_USERNAME", "google")
55 upload = os.getenv("CONAN_UPLOAD", "https://api.bintray.com/conan/aardappel/flatbuffers")
56 stable_branch_pattern = os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v\d+\.\d+\.\d+.*")
57 test_folder = os.getenv("CPT_TEST_FOLDER", os.path.join("conan", "test_package"))
58 upload_only_when_stable = os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True)
59 set_appveyor_environment()
60
61 builder = ConanMultiPackager(reference=get_reference(username),
62 username=username,
63 login_username=login_username,
64 upload=upload,
65 stable_branch_pattern=stable_branch_pattern,
66 upload_only_when_stable=upload_only_when_stable,
67 test_folder=test_folder)
68 builder.add_common_builds(pure_c=False)
69 builder.run()