12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import os
- import re
- from cpt.packager import ConanMultiPackager
- from cpt.ci_manager import CIManager
- from cpt.printer import Printer
- class BuilderSettings(object):
- @property
- def branch(self):
- """ Get branch name
- """
- printer = Printer(None)
- ci_manager = CIManager(printer)
- return ci_manager.get_branch()
- @property
- def username(self):
- """ Set civetweb as package's owner
- """
- return os.getenv("CONAN_USERNAME", "civetweb")
- @property
- def upload(self):
- """ Set civetweb repository to be used on upload.
- The upload server address could be customized by env var
- CONAN_UPLOAD. If not defined, the method will check the branch name.
- Only master or CONAN_STABLE_BRANCH_PATTERN will be accepted.
- The master branch will be pushed to testing channel, because it does
- not match the stable pattern. Otherwise it will upload to stable
- channel.
- """
- if os.getenv("CONAN_UPLOAD", None) is not None:
- return os.getenv("CONAN_UPLOAD")
- prog = re.compile(self.stable_branch_pattern)
- if self.branch and prog.match(self.branch):
- return "https://api.bintray.com/conan/civetweb/conan"
- return None
- @property
- def upload_only_when_stable(self):
- """ Force to upload when match stable pattern branch
- """
- return os.getenv("CONAN_UPLOAD_ONLY_WHEN_STABLE", True)
- @property
- def stable_branch_pattern(self):
- """ Only upload the package the branch name is like a tag
- """
- return os.getenv("CONAN_STABLE_BRANCH_PATTERN", r"v(\d+\.\d+)")
- @property
- def version(self):
- regex = re.compile(self.stable_branch_pattern)
- match = regex.match(self.branch)
- if match:
- return match.group(1)
- return "latest"
- @property
- def reference(self):
- """ Read project version from branch name to create Conan referece
- """
- return os.getenv("CONAN_REFERENCE", "civetweb/{}".format(self.version))
- if __name__ == "__main__":
- settings = BuilderSettings()
- builder = ConanMultiPackager(
- reference=settings.reference,
- username=settings.username,
- upload=settings.upload,
- upload_only_when_stable=settings.upload_only_when_stable,
- stable_branch_pattern=settings.stable_branch_pattern,
- test_folder=os.path.join("conan", "test_package"))
- builder.add_common_builds(pure_c=False)
- builder.run()
|