starting to rework qadevel-stg buildmaster

This commit is contained in:
Tim Flink 2015-05-19 17:05:59 +00:00
parent d334b16998
commit d76f4e992b
2 changed files with 43 additions and 4 deletions

View file

@ -30,6 +30,7 @@ mariadb_config: my.cnf.phabricator
mariadb_user: '{{ qadevel_stg_mariadb_user }}'
mariadb_password: '{{ qadevel_stg_mariadb_password }}'
# phabricator config
phabricator_db_prefix: 'phabricatorstg'
enable_phabricator_git: True
phabricator_vcs_user: git
@ -44,10 +45,12 @@ phabricator_mail_enabled: True
phabricator_mail_domain: stg.fedoraproject.org
ircnick: fedoraqabot
# backup details (for parity with prod, not actually used)
backup_dir: /srv/backup
backup_username: root
backup_ssh_pubkey: ssh-dss AAAAB3NzaC1kc3MAAACBAJr3xqn/hHIXeth+NuXPu9P91FG9jozF3Q1JaGmg6szo770rrmhiSsxso/Ibm2mObqQLCyfm/qSOQRynv6tL3tQVHA6EEx0PNacnBcOV7UowR5kd4AYv82K1vQhof3YTxOMmNIOrdy6deDqIf4sLz1TDHvEDwjrxtFf8ugyZWNbTAAAAFQCS5puRZF4gpNbaWxe6gLzm3rBeewAAAIBcEd6pRatE2Qc/dW0YwwudTEaOCUnHmtYs2PHKbOPds0+Woe1aWH38NiE+CmklcUpyRsGEf3O0l5vm3VrVlnfuHpgt/a/pbzxm0U6DGm2AebtqEmaCX3CIuYzKhG5wmXqJ/z+Hc5MDj2mn2TchHqsk1O8VZM+1Ml6zX3Hl4vvBsQAAAIALDt5NFv6GLuid8eik/nn8NORd9FJPDBJxgVqHNIm08RMC6aI++fqwkBhVPFKBra5utrMKQmnKs/sOWycLYTqqcSMPdWSkdWYjBCSJ/QNpyN4laCmPWLgb3I+2zORgR0EjeV2e/46geS0MWLmeEsFwztpSj4Tv4e18L8Dsp2uB2Q== root@backup03-rdiff-backup
# buildmaster details
buildmaster_db_host: localhost
buildmaster_template: ci.master.cfg.j2
buildmaster_endpoint: builds
@ -59,6 +62,10 @@ buildslave_poll_interval: 1800
master_dir: /home/buildmaster/master
master_user: buildmaster
# build details
repo_base: 'https://phab.qadeve.stg.fedoraproject.org/diffusion/'
docs_build_dir: /var/www/docs/
# for now, we're just doing a local slave so we need the slave vars in here
slave_home: /home/buildslave/
slave_dir: /home/buildslave/slave

View file

@ -27,6 +27,7 @@ c['slaves'] = [
{% endfor %}
]
{% if deployment_type == 'qadevel-prod' %}
c['slaves'].append(
openstack.OpenStackLatentBuildSlave(
"{{ qadevel_stg_buildslave_user }}",
@ -39,7 +40,7 @@ c['slaves'].append(
os_auth_url="https://fed-cloud02.cloud.fedoraproject.org:5001/v2.0"
)
)
{% endif %}
# 'slavePortnum' defines the TCP port to listen on for connections from slaves.
# This must match the value configured into the buildslaves (with their
# --master option)
@ -56,6 +57,7 @@ from buildbot.changes.gitpoller import GitPoller
interval = {{ buildslave_poll_interval }}
c['change_source'] = []
{% if deployment_type == 'qadevel-prod' %}
c['change_source'].append(GitPoller(
'https://bitbucket.org/fedoraqa/taskotron-trigger.git',
workdir='gitpoller-workdir-trigger', branch='develop',
@ -85,7 +87,7 @@ c['change_source'].append(GitPoller(
workdir='gitpoller-workdir-fake_fedorainfra', branch='develop',
pollinterval=interval,
project='fake_fedorainfra'))
{% endif %}
####### SCHEDULERS
# Configure the Schedulers, which decide how to react to incoming changes. In this
@ -96,6 +98,7 @@ from buildbot.schedulers.forcesched import ForceScheduler
from buildbot.changes import filter
c['schedulers'] = []
{% if deployment_type == 'qadevel-prod' %}
c['schedulers'].append(SingleBranchScheduler(
name="trigger-scheduler",
change_filter=filter.ChangeFilter(project='trigger', branch='develop'),
@ -127,8 +130,15 @@ c['schedulers'].append(ForceScheduler(
c['schedulers'].append(ForceScheduler(
name="openstack-force",
builderNames=["openstack-builder"]))
{% endif %}
{% if deployment_type == 'qadevel-stg' %}
c['schedulers'].append(SingleBranchScheduler(
name="libtaskotron",
builderNames=['libtaskotron-builder'],
treeStableTimer=None,
change_filter=filter.ChangeFilter(project='libtaskotron',
branch='develop')))
{% endif %}
####### BUILDERS
# The 'builders' list defines the Builders, which tell Buildbot how to perform a build:
@ -141,6 +151,7 @@ from buildbot.steps.shell import ShellCommand
from buildbot.process.properties import Interpolate
{% if deployment_type == 'qadevel-prod' %}
def create_test_factory(repo_name, func=True):
factory = BuildFactory()
factory.addStep(Git(repourl=Interpolate('https://bitbucket.org/fedoraqa/%s.git' % repo_name),
@ -157,11 +168,25 @@ libtaskotron_factory = create_test_factory('libtaskotron')
resultsdb_factory = create_test_factory('resultsdb')
resultsdb_api_factory = create_test_factory('resultsdb_api')
fake_fedorainfra_factory = create_test_factory('fake_fedorainfra')
{% endif %}
{% if deployment_type == 'qadevel-stg' %}
def create_test_factory(repo_name, func=True):
factory = BuildFactory()
factory.addStep(Git(repourl=Interpolate('{{ repo_base }}/%s.git' % repo_name),
mode='full', method='clobber'))
factory.addStep(ShellCommand(command=['virtualenv', '--system-site-packages', 'env']))
factory.addStep(ShellCommand(command=['bash', '-c', 'source env/bin/activate; pip install -r requirements.txt']))
factory.addStep(ShellCommand(command=['bash', '-c', 'source env/bin/activate; TEST="true" py.test %s testing/' % '-F' if func else ''], name=repo_name))
return factory
libtaskotron_factory = create_test_factory('LTRN/libtaskotron')
{% endif %}
from buildbot.config import BuilderConfig
c['builders'] = []
{% if deployment_type == 'qadevel-prod' %}
c['builders'].append(
BuilderConfig(name="trigger-builder",
slavenames=[{% for buildslave in buildslaves %}"{{ buildslave }}",{% endfor %}],
@ -187,8 +212,15 @@ c['builders'].append(
BuilderConfig(name="openstack-builder",
slavenames=["{{ qadevel_stg_buildslave_user }}"],
factory=trigger_factory))
{% endif %}
{% if deployment_type == 'qadevel-stg' %}
c['builders'].append(
BuilderConfig(name="libtaskotron-builder",
slavenames=[{% for buildslave in buildslaves %}"{{ buildslave }}",{% endfor %}],
factory=libtaskotron_factory))
{% endif %}
####### STATUS TARGETS
# 'status' is a list of Status Targets. The results of each build will be