2016-11-30 03:18:55 +00:00
|
|
|
# -*- 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'))
|
2016-11-30 17:12:00 +00:00
|
|
|
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")))
|
2016-11-30 03:18:55 +00:00
|
|
|
|
|
|
|
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',
|
|
|
|
}
|