80 lines
2.4 KiB
Python
80 lines
2.4 KiB
Python
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
|
|
def build_env(props):
|
|
default_envs = {
|
|
"BUILDBOT_REPOSITORY": props.getProperty("repository"),
|
|
"BUILDBOT_BRANCH": props.getProperty("branch"),
|
|
"BUILDBOT_JOBNAME": props.getProperty("jobname")
|
|
}
|
|
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
|