| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | #!/usr/bin/env python# -*- coding: utf-8 -*-import osimport refrom cpt.packager import ConanMultiPackagerfrom cpt.ci_manager import CIManagerfrom cpt.printer import Printerclass 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()
 |