meta/buildbot/master/master.cfg

650 lines
29 KiB
Python

# -*- python -*-
# ex: set syntax=python:
import json
from buildbot.changes.filter import ChangeFilter
from buildbot.plugins import *
c = BuildmasterConfig = {}
# BUILDSLAVES
secrets = json.load(open('secrets.json'))
c['slaves'] = [
buildslave.BuildSlave('linux-amd64', secrets['linux-amd64'],
max_builds=1,
properties={'platform': 'linux-amd64'}),
buildslave.BuildSlave('linux-i386', secrets['linux-i386'],
max_builds=1,
properties={'platform': 'linux-i686'}),
buildslave.BuildSlave('freebsd64', secrets['freebsd64'],
max_builds=1,
properties={'platform': 'freebsd-amd64'}),
buildslave.BuildSlave('arm7', secrets['arm7'],
max_builds=1,
properties={'platform': 'linux-armv7'}),
buildslave.BuildSlave('arm8', secrets['arm8'],
max_builds=1,
properties={'platform': 'linux-armv8'}),
buildslave.BuildSlave('win32', secrets['win32'],
max_builds=1,
properties={'platform': 'win32'}),
buildslave.BuildSlave('win64', secrets['win64'],
max_builds=1,
properties={'platform': 'win64'}),
buildslave.BuildSlave('osx-10.10', secrets['osx-10.10'],
max_builds=1,
properties={'platform': 'osx-10.10'}),
buildslave.BuildSlave('osx-10.11', secrets['osx-10.11'],
max_builds=1,
properties={'platform': 'osx-10.11'}),
buildslave.BuildSlave('osx-10.12', secrets['osx-10.12'],
max_builds=1,
properties={'platform': 'osx-10.12'}),
]
c['protocols'] = {'pb': {'port': 9989}}
# CHANGESOURCES
c['change_source'] = []
c['change_source'].append(changes.GitPoller(
'https://github.com/monero-project/monero.git',
workdir='gitpoller-workdir', branch='master',
pollinterval=400))
c['change_source'].append(changes.GitPoller(
'https://github.com/monero-project/monero-core.git',
workdir='gitpoller-workdir', branch='master',
pollinterval=600))
c['change_source'].append(changes.GitPoller(
'https://github.com/monero-project/kovri.git',
workdir='gitpoller-workdir', branch='master',
pollinterval=400))
####### SCHEDULERS
# Configure the Schedulers, which decide how to react to incoming changes.
c['schedulers'] = []
from buildbot.plugins import schedulers
c['schedulers'].append(schedulers.ForceScheduler(
name='force',
builderNames=['monero-tests-ubuntu-16.04-i686','monero-tests-windows-10-i686','monero-tests-freebsd-10.3-amd64','monero-tests-ubuntu-16.04-amd64','monero-tests-osx-10.11','monero-tests-osx-10.10','monero-tests-osx-10.12','monero-tests-ubuntu-16.04-armv7','monero-tests-debian-armv8','monero-tests-windows-10-amd64','monero-core-win32','monero-core-win64','monero-core-freebsd','monero-core-ubuntu-arm7','monero-core-debian-armv8','kovri-all-freebsd64','kovri-all-osx-10.12','kovri-all-osx-10.10','kovri-all-osx-10.11','kovri-all-ubuntu-arm7','kovri-all-ubuntu-i686','kovri-all-win32','kovri-all-win64','kovri-all-debian-arm8','kovri-all-ubuntu-amd64','monero-core-osx-10.12','monero-core-osx-10.11','monero-core-ubuntu-amd64','monero-core-ubuntu-i686','monero-static-osx-10.10','monero-static-osx-10.11','monero-static-win32','monero-static-win64','monero-static-ubuntu-amd64','monero-static-freebsd64','monero-static-ubuntu-arm7','monero-static-debian-armv8','monero-static-ubuntu-i686','monero-static-osx-10.12']))
c['schedulers'].append(schedulers.SingleBranchScheduler(
name='monero PR builder',
builderNames=['monero-static-win32','monero-static-win64','monero-static-osx-10.10','monero-static-osx-10.11','monero-static-osx-10.12','monero-static-freebsd64','monero-static-debian-armv8','monero-static-ubuntu-arm7','monero-static-ubuntu-amd64','monero-static-ubuntu-i686'],
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/monero.git')
))
c['schedulers'].append(schedulers.SingleBranchScheduler(
name='monero-core PR builder',
builderNames=['monero-core-osx-10.12','monero-core-osx-10.11','monero-core-ubuntu-i686','monero-core-ubuntu-amd64','monero-core-win32','monero-core-win64','monero-core-ubuntu-arm7'],
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/monero-core.git')
))
c['schedulers'].append(schedulers.SingleBranchScheduler(
name='kovri PR builder',
builderNames=['kovri-all-win32','kovri-all-win64','kovri-all-freebsd64','kovri-all-osx-10.12','kovri-all-osx-10.10','kovri-all-osx-10.11','kovri-all-ubuntu-amd64','kovri-all-ubuntu-i686','kovri-all-ubuntu-arm7','kovri-all-debian-arm8'],
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/kovri.git')
))
c['schedulers'].append(schedulers.Nightly(
name='Tests',
branch='master',
builderNames=['monero-tests-ubuntu-16.04-i686','monero-tests-windows-10-amd64','monero-tests-ubuntu-16.04-armv7','monero-tests-windows-10-i686','monero-tests-freebsd-10.3-amd64','monero-tests-ubuntu-16.04-amd64','monero-tests-osx-10.11','monero-tests-osx-10.10','monero-tests-osx-10.12'],
hour=5,
minute=0,
change_filter=util.ChangeFilter(repository='https://github.com/monero-project/monero.git'),
onlyIfChanged=True))
# thanks m-labs https://github.com/m-labs/buildbot-config/blob/master/master.cfg
def addCoverallsUploadSteps(factory, repo_token):
factory.addStep(
CoverallsCommand(
name = 'coveralls',
description = 'uploading',
descriptionDone = 'upload',
descriptionSuffix = 'coveralls',
flunkOnFailure = False,
warnOnFailure = True,
env = { 'COVERALLS_REPO_TOKEN': repo_token },
# Don't dump env variables potentially containing secret tokens
logEnviron = False
))
import re
from commands import CoverallsCommand
from buildbot.steps.shell import ShellCommand
from buildbot.process.properties import WithProperties
from buildbot.status.results import FAILURE, SUCCESS
# BUILD FACTORIES
noTestsFactory = util.BuildFactory()
noTestsFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
noTestsFactory.addStep(steps.Compile(command = ['make', 'release-static']))
noCoretestsFactory = util.BuildFactory()
noCoretestsFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
noCoretestsFactory.addStep(steps.Compile(command = ['make', 'release-static']))
noCoretestsFactory.addStep(steps.Test(command = ['make', 'release-test'], timeout=None, env={'ARGS': " -E 'coretests|libwallet_api_tests' "}, logfiles={'LastTest': 'build/release/Testing/Temporary/LastTest.log','CTestCostData.txt': 'build/release/Testing/Temporary/CTestCostData.txt'}))
ispHijackedFactory = util.BuildFactory()
ispHijackedFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
ispHijackedFactory.addStep(steps.Compile(command = ['make', 'release-static']))
ispHijackedFactory.addStep(steps.Test(command = ['make', 'release-test'], timeout=None, env={'ARGS': " -E 'coretests|libwallet_api_tests' "}, logfiles={'LastTest': 'build/release/Testing/Temporary/LastTest.log','CTestCostData.txt': 'build/release/Testing/Temporary/CTestCostData.txt'}))
osxTestsFactory = util.BuildFactory()
osxTestsFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='incremental'))
osxTestsFactory.addStep(steps.Test(command = ['make', 'release-test'], timeout=None, logfiles={'LastTest.log': 'build/debug/Testing/Temporary/LastTest.log','CTestCostData.txt': 'build/debug/Testing/Temporary/CTestCostData.txt','coretests.log': 'build/debug/tests/core_tests/coretests.log'}))
armv8Factory = util.BuildFactory()
armv8Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
armv8Factory.addStep(steps.Compile(command = ['make', 'release-static-armv8']))
armv7Factory = util.BuildFactory()
armv7Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='incremental'))
armv7Factory.addStep(steps.Compile(command = ['ccache', 'make', 'release-static-armv7'], timeout=None))
static32Factory = util.BuildFactory()
static32Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
static32Factory.addStep(steps.Compile(command = ['make', 'release-static-32']))
static32Factory.addStep(steps.Test(command = ['make', 'release-test'], timeout=None, env={'ARGS': " -E 'coretests|libwallet_api_tests' "}, logfiles={"LastTest": "build/release/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/release/Testing/Temporary/CTestCostData.txt"}))
win32ReleaseFactory = util.BuildFactory()
win32ReleaseFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
win32ReleaseFactory.addStep(steps.Compile(command = ["make", "release-static-win32"]))
win32ReleaseFactory.addStep(steps.Test(command = ["make", "release-test"], env={'ARGS': " -E 'coretests|libwallet_api_tests' "}, logfiles={"LastTest": "build/release/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/release/Testing/Temporary/CTestCostData.txt"}))
win64ReleaseFactory = util.BuildFactory()
win64ReleaseFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full'))
win64ReleaseFactory.addStep(steps.Compile(command = ["make", "release-static-win64"]))
win64ReleaseFactory.addStep(steps.Test(command = ["make", "release-test"], env={'ARGS': " -E 'coretests|libwallet_api_tests' "}, logfiles={"LastTest": "build/release/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/release/Testing/Temporary/CTestCostData.txt"}))
coreFactory = util.BuildFactory()
coreFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full'))
coreFactory.addStep(steps.Compile(command = ["bash", "-ex", "build.sh"]))
coreOsxFactory = util.BuildFactory()
coreOsxFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full'))
coreOsxFactory.addStep(steps.Compile(command = ["bash", "-ex", "./build.sh"]))
coreFreebsdFactory = util.BuildFactory()
coreFreebsdFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='incremental'))
coreFreebsdFactory.addStep(steps.Compile(command = ["bash", "-ex", "build.sh"],env={'SHELL': '/usr/local/bin/bash', 'PATH': '/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/vagrant/bin:/usr/local/lib/qt5/bin'}))
coreMingw32Factory = util.BuildFactory()
coreMingw32Factory.addStep(steps.RemoveDirectory(dir='monero'))
coreMingw32Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full', method='clobber'))
coreMingw32Factory.addStep(steps.Compile(command = ['/msys32/usr/bin/bash.exe', '-ex', './build.sh'],env={'MSYSTEM': 'MINGW32', 'PATH': '/c/Windows/system32;/c/Windows;/c/Windows/System32/WindowsPowerShell/v1.0;/c/Qt/Qt5.7.0/Tools/mingw530_32/bin;/c/Qt/Qt5.7.0/Tools/mingw530_32/boost/lib;/c/Qt/Qt5.7.0/5.7/mingw53_32/bin;/c/python27/lib/site-packages/pywin32_system32;/c/msys32/mingw32/bin;/c/msys32/usr/bin'}))
coreMingw32Factory.addStep(steps.Compile(name='deploy', description='deploying', descriptionDone='deploy', command = ['make', 'deploy'], workdir='build/build', env={'MSYSTEM': 'MINGW32', 'PATH': '/c/Python27;/c/Python27/Scripts;/c/Windows/system32;/c/Windows;/c/Qt/Qt5.7.0/Tools/mingw530_32/bin;/c/Qt/Qt5.7.0/Tools/mingw530_32/boost/lib;/c/Qt/Qt5.7.0/5.7/mingw53_32/bin;/c/python27/lib/site-packages/pywin32_system32;/c/msys32/mingw32/bin;/msys32/usr/bin'}))
coreMingw32Factory.addStep(steps.SetPropertyFromCommand(name = "set version", command = ["git", "rev-parse", "--short", "HEAD"], property = 'gitversion'))
coreMingw32Factory.addStep(steps.ShellCommand(name = "zip", command = ["zip", "-r", WithProperties("monero-core-%(gitversion)s-%(platform)s.zip"), "build/release/bin"] ))
coreMingw32Factory.addStep(steps.FileUpload(slavesrc=WithProperties("monero-core-%(gitversion)s-%(platform)s.zip"), masterdest=WithProperties("/home/buildbot/master/public_html/downloads/monero-core-%(gitversion)s-%(platform)s.zip"), url=WithProperties("https://build.getmonero.org/downloads/monero-core-%(gitversion)s-%(platform)s.zip")))
coreMingw64Factory = util.BuildFactory()
coreMingw64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full', method="clobber"))
coreMingw64Factory.addStep(steps.Compile(command = ["/msys64/usr/bin/bash.exe","-ex","./build.sh"],env={'MSYSTEM': "MINGW64"}))
kovriAllFactory = util.BuildFactory()
kovriAllFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
kovriAllFactory.addStep(steps.Compile(command=["make", "all-options"]))
kovriAllFactory.addStep(steps.Compile(name="compile tests", command=["make", "tests"]))
kovriArmFactory = util.BuildFactory()
kovriArmFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
kovriArmFactory.addStep(steps.Compile(command=["make", "all-options"], env={'CC': 'clang35', 'CXX': 'clang++35'}))
kovriArmFactory.addStep(steps.Compile(name="compile tests", command=["make", "tests"], env={'CC': 'clang35', 'CXX': 'clang++35'}))
kovriUbuntu64Factory = util.BuildFactory()
kovriUbuntu64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
kovriUbuntu64Factory.addStep(steps.Compile(command=["make", "coverage"]))
kovriUbuntu64Factory.addStep(steps.Compile(name="compile tests", command=["make", "coverage-tests"]))
kovriUbuntu64Factory.addStep(steps.Test(command=["./build/kovri-tests"]))
addCoverallsUploadSteps(kovriUbuntu64Factory,repo_token=secrets['coveralls_token'])
kovriFreebsdFactory = util.BuildFactory()
kovriFreebsdFactory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
kovriFreebsdFactory.addStep(steps.Compile(command=["gmake", "all-options"], env={'CC': 'clang36', 'CXX': 'clang++36'}))
kovriFreebsdFactory.addStep(steps.Compile(name="compile tests", command=["gmake", "tests"], env={'CC': 'clang36', 'CXX': 'clang++36'}))
kovriFreebsdFactory.addStep(steps.Test(command=["./build/kovri-tests"]))
kovriMingw32Factory = util.BuildFactory()
kovriMingw32Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
kovriMingw32Factory.addStep(steps.Compile(command=["/msys32/usr/bin/bash.exe","-c", "make", "all-options"],env={'MSYSTEM': "MINGW32"}))
kovriMingw32Factory.addStep(steps.Compile(name="compile tests", command=["make", "tests"]))
kovriMingw32Factory.addStep(steps.Test(command=["kovri-tests.exe"], workdir="build/build"))
kovriMingw64Factory = util.BuildFactory()
kovriMingw64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/kovri.git', mode='full', submodules=True))
kovriMingw64Factory.addStep(steps.Compile(command=["make", "all-options"],env={'MSYSTEM': "MINGW64"}))
kovriMingw64Factory.addStep(steps.Compile(name="compile tests", command=["make", "tests"]))
kovriMingw64Factory.addStep(steps.Test(command=["kovri-tests.exe"], workdir="build/build"))
coreUbuntu64Factory = util.BuildFactory()
coreUbuntu64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full'))
coreUbuntu64Factory.addStep(steps.Compile(command = ["bash", "-ex", "./build.sh"]))
coreUbuntu64Factory.addStep(steps.SetPropertyFromCommand(name = "set version", command = ["git", "rev-parse", "--short", "HEAD"], property = 'gitversion'))
coreUbuntu64Factory.addStep(steps.FileUpload(slavesrc="build/release/bin/monero-core", masterdest=WithProperties("/home/buildbot/master/public_html/downloads/monero-core-%(gitversion)s-%(platform)s"), url=WithProperties("https://build.getmonero.org/downloads/monero-core-%(gitversion)s-%(platform)s")))
coreDebianFactory = util.BuildFactory()
coreDebianFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero-core.git', mode='full'))
coreDebianFactory.addStep(steps.Compile(command = ["bash", "-ex", "./build.sh"]))
testsFactory = util.BuildFactory()
testsFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='incremental'))
testsFactory.addStep(steps.Compile(command = ["make", "debug"]))
testsFactory.addStep(steps.Test(command = ["make", "debug-test"], timeout=None, logfiles={"LastTest.log": "build/debug/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/debug/Testing/Temporary/CTestCostData.txt","coretests.log": "build/debug/tests/core_tests/coretests.log"}))
testsFreebsdFactory = util.BuildFactory()
testsFreebsdFactory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full', method="clobber"))
testsFreebsdFactory.addStep(steps.Compile(command = ["make", "release-static"]))
testsFreebsdFactory.addStep(steps.Test(command = ["make", "release-test"], timeout=None, logfiles={"LastTest.log": "build/release/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/release/Testing/Temporary/CTestCostData.txt","coretests.log": "build/release/tests/core_tests/coretests.log"}))
testsWin32Factory = util.BuildFactory()
testsWin32Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full', method="clobber"))
testsWin32Factory.addStep(steps.Compile(command = ["make", "release-static-win32"]))
testsWin32Factory.addStep(steps.Test(command = ["make", "release-test"], timeout=None, logfiles={"LastTest.log": "build/release/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/release/Testing/Temporary/CTestCostData.txt"}))
testsWin64Factory = util.BuildFactory()
testsWin64Factory.addStep(steps.Git(repourl='https://github.com/monero-project/monero.git', mode='full', method="clobber"))
testsWin64Factory.addStep(steps.Compile(command = ["make", "release-static-win64"]))
testsWin64Factory.addStep(steps.Test(command = ["make", "release-test"], timeout=None, logfiles={"LastTest.log": "build/release/Testing/Temporary/LastTest.log","CTestCostData.txt": "build/release/Testing/Temporary/CTestCostData.txt"}))
# BUILDERS
c['builders'] = []
c['builders'].append(
util.BuilderConfig(name="monero-tests-windows-10-i686",
slavenames=["win32"],
factory=testsWin32Factory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-osx-10.12",
slavenames=["osx-10.12"],
factory=osxTestsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-osx-10.10",
slavenames=["osx-10.10"],
factory=testsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-osx-10.11",
slavenames=["osx-10.11"],
factory=testsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-static-debian-armv8",
slavenames=["arm8"],
factory=armv8Factory,
mergeRequests=True,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-ubuntu-amd64",
slavenames=["linux-amd64"],
factory=noCoretestsFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-ubuntu-i686",
slavenames=["linux-i386"],
factory=static32Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-ubuntu-arm7",
slavenames=["arm7"],
factory=armv7Factory,
mergeRequests=True,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-freebsd64",
slavenames=["freebsd64"],
factory=noCoretestsFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-osx-10.12",
slavenames=["osx-10.12"],
factory=noCoretestsFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-osx-10.10",
slavenames=["osx-10.10"],
factory=noCoretestsFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-osx-10.11",
slavenames=["osx-10.11"],
factory=noCoretestsFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-win32",
slavenames=["win32"],
factory=win32ReleaseFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-static-win64",
slavenames=["win64"],
factory=win64ReleaseFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-win32",
slavenames=["win32"],
factory=coreMingw32Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-win64",
slavenames=["win64"],
factory=coreMingw64Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-freebsd",
slavenames=["freebsd64"],
factory=coreFreebsdFactory))
c['builders'].append(
util.BuilderConfig(name="monero-core-ubuntu-arm7",
slavenames=["arm7"],
factory=coreFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-debian-armv8",
slavenames=["arm8"],
factory=coreFactory))
c['builders'].append(
util.BuilderConfig(name="monero-core-ubuntu-amd64",
slavenames=["linux-amd64"],
factory=coreUbuntu64Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-ubuntu-i686",
slavenames=["linux-i386"],
factory=coreDebianFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-osx-10.12",
slavenames=["osx-10.12"],
factory=coreOsxFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="monero-core-osx-10.11",
slavenames=["osx-10.11"],
factory=coreOsxFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "monero-core",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-ubuntu-i686",
slavenames=["linux-i386"],
factory=kovriAllFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-osx-10.12",
slavenames=["osx-10.12"],
factory=kovriAllFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-osx-10.10",
slavenames=["osx-10.10"],
factory=kovriAllFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-osx-10.11",
slavenames=["osx-10.11"],
factory=kovriAllFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-ubuntu-amd64",
slavenames=["linux-amd64"],
factory=kovriUbuntu64Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-ubuntu-arm7",
slavenames=["arm7"],
factory=kovriAllFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-debian-arm8",
slavenames=["arm8"],
factory=kovriAllFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-freebsd64",
slavenames=["freebsd64"],
factory=kovriFreebsdFactory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-win32",
slavenames=["win32"],
factory=kovriMingw32Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="kovri-all-win64",
slavenames=["win64"],
factory=kovriMingw64Factory,
properties={
"github_repo_owner": "monero-project",
"github_repo_name": "kovri",
}))
c['builders'].append(
util.BuilderConfig(name="monero-tests-ubuntu-16.04-i686",
slavenames=["linux-i386"],
factory=testsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-ubuntu-16.04-amd64",
slavenames=["linux-amd64"],
factory=testsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-windows-10-amd64",
slavenames=["win64"],
factory=testsWin64Factory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-freebsd-10.3-amd64",
slavenames=["freebsd64"],
factory=testsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-ubuntu-16.04-armv7",
slavenames=["arm7"],
factory=testsFactory))
c['builders'].append(
util.BuilderConfig(name="monero-tests-debian-armv8",
slavenames=["arm8"],
factory=testsFactory))
# STATUS TARGETS
# 'status' is a list of Status Targets. The results of each build will be
# pushed to these targets. buildbot/status/*.py has a variety to choose from,
# including web pages, email senders, and IRC bots.
c['status'] = []
from buildbot.status import html
from buildbot.status.web import authz, auth
secrets = json.load(open('secrets.json'))
authz_cfg=authz.Authz(
gracefulShutdown = 'auth',
forceBuild = 'auth',
forceAllBuilds = 'auth',
pingBuilder = 'auth',
stopBuild = 'auth',
stopAllBuilds = 'auth',
cancelPendingBuild = 'auth',
pauseSlave = 'auth',
cancelAllPendingBuilds = 'auth',
)
c['status'].append(html.WebStatus(http_port=8010,authz=authz_cfg,
change_hook_dialects={
'github':{
'secret': secrets['gh_change_hook'],
'strict': True
}
}))
from buildbot.plugins import status
irc = status.IRC('irc.freenode.org', 'xmr_buildbot',
useColors=True,
channels=[{"channel": "#monero-bots"}
],
allowForce=True,
notify_events={
'started': 0,
'finished': 0,
'failure': 1,
'success': 1,
'exception': 1,
'successToFailure': 1,
'failureToSuccess': 1
})
c['status'].append(irc)
# Github status reporter
from buildbot.plugins import status, util
repoOwner = util.Interpolate("%(prop:github_repo_owner)s")
repoName = util.Interpolate("%(prop:github_repo_name)s")
sha = util.Interpolate("%(src::revision)s")
context = util.Interpolate("buildbot/%(prop:buildername)s")
gs = status.GitHubStatus(token=secrets['github_token'],
repoOwner=repoOwner,
repoName=repoName,
sha=sha,
context=context,
startDescription='Build started.',
endDescription='Build done.')
c['status'].append(gs)
# PROJECT IDENTITY
# the 'title' string will appear at the top of this buildbot
# installation's html.WebStatus home page (linked to the
# 'titleURL') and is embedded in the title of the waterfall HTML page.
c['title'] = 'Monero Project'
c['titleURL'] = 'https://getmonero.org/'
c['buildbotURL'] = 'https://build.getmonero.org/'
# DB URL
c['db'] = {
'db_url':'sqlite:///state.sqlite',
}