from buildbot.plugins import util import re def _is_build_script_available(props): return props.getProperty("build_script_available", default=False) @util.renderer def is_build_script_available(props): return _is_build_script_available(props) @util.renderer def isnt_build_script_available(props): return not _is_build_script_available(props) def _is_test_script_available(props): return props.getProperty("test_script_available", default=False) @util.renderer def is_test_script_available(props): return _is_test_script_available(props) @util.renderer def isnt_test_script_available(props): return not _is_test_script_available(props) def _files_to_upload(props): try: return ','.join(props.getProperty("files_to_upload", default="").rstrip().split("\n")) except AttributeError: return "" @util.renderer def files_to_upload(props): return _files_to_upload(props) @util.renderer def has_files_to_upload(props): return bool(_files_to_upload(props)) @util.renderer def no_files_to_upload(props): return not _files_to_upload(props) def _should_build_sign(props): if props.getProperty('branch') == 'v0.6' \ and props.getProperty('jobname') == 'android' \ and props.getProperty('repository') in ( 'git@github.com:Bitmessage/PyBitmessage.git', 'https://github.com/Bitmessage/PyBitmessage' ): return True return False @util.renderer def should_build_sign(props): return _is_build_script_available(props) and _should_build_sign(props) @util.renderer def shouldnt_build_sign(props): return _is_build_script_available(props) and not _should_build_sign(props) @util.renderer @util.renderer def build_env(props): default_envs = { BUILDBOT_REPOSITORY: props.getProperty("repository") BUILDBOT_BRANCH: props.getProperty("branch") BUILDBOT_JOB: props.getProperty("job") } new_envs = {} if props.getProperty("jobname", default="") == "android": new_envs = { "P4A_RELEASE_KEYSTORE": "/var/lib/buildbot/keystore", "P4A_RELEASE_KEYSTORE_PASSWD": util.Secret("bitmessage-keystore"), "P4A_RELEASE_KEYALIAS_PASSWD": util.Secret("bitmessage-keystore"), "P4A_RELEASE_KEYALIAS": "bitmessagetest" } if _should_build_sign(props): return {**default_envs, **new_envs} return default_envs