from buildbot.plugins import changes, schedulers, steps, util, worker

REPOURL = 'https://git.blackfinn.de/smartwatch/narf52.git'

# Change sources
cs = changes.GitPoller(project='narf52', repourl=REPOURL, branches=True, pollInterval=60)

# Factory
factory = util.BuildFactory()
factory.addStep(steps.Git(repourl=REPOURL, mode='full'))
factory.addStep(steps.Compile(command=['APPLICATION=blinky', 'PLATFORM=nrf52', 'make', 'all', '-j8']))

# Worker
arm_none_eabi_worker = worker.DockerLatentWorker('buildbot-worker-arm-none-eabi', 'pass', docker_host='tcp://192.168.178.82:2375', image='buildbot-worker-arm-none-eabi')

# Builder
builder = util.BuilderConfig(name='pinetime', workernames=["buildbot-worker-arm-none-eabi"],
                             factory=factory)

# Scheduler
# Schedulers
change_scheduler = schedulers.SingleBranchScheduler(name="narf52",
                                                    change_filter=util.ChangeFilter(project=['narf52']),
                                                    treeStableTimer=None, builderNames=["pinetime"])

force_scheduler = schedulers.ForceScheduler(name="force_pinetime", builderNames=["pinetime"])


def append(c):
    c['change_source'].append(cs)
    c['workers'].append(arm_none_eabi_worker)
    c['builders'].append(builder)
    c['schedulers'].append(change_scheduler)
    c['schedulers'].append(force_scheduler)
    return c