diff options
Diffstat (limited to 'build_files/buildbot-lts/docker/master.cfg')
-rw-r--r-- | build_files/buildbot-lts/docker/master.cfg | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/build_files/buildbot-lts/docker/master.cfg b/build_files/buildbot-lts/docker/master.cfg new file mode 100644 index 00000000000..1dfa8bbdf7c --- /dev/null +++ b/build_files/buildbot-lts/docker/master.cfg @@ -0,0 +1,240 @@ +# -*- python -*- +# ex: set filetype=python: + +import os + +from buildbot.plugins import * + +# This is a sample buildmaster config file. It must be installed as +# 'master.cfg' in your buildmaster's base directory. + +# This is the dictionary that the buildmaster pays attention to. We also use +# a shorter alias to save typing. +c = BuildmasterConfig = {} + +####### WORKERS + +# The 'workers' list defines the set of recognized workers. Each element is +# a Worker object, specifying a unique worker name and password. The same +# worker name and password must be configured on the worker. + +c['workers'] = [worker.Worker("lts-worker", 'secret')] + +if 'BUILDBOT_MQ_URL' in os.environ: + c['mq'] = { + 'type' : 'wamp', + 'router_url': os.environ['BUILDBOT_MQ_URL'], + 'realm': os.environ.get('BUILDBOT_MQ_REALM', 'buildbot').decode('utf-8'), + 'debug' : 'BUILDBOT_MQ_DEBUG' in os.environ, + 'debug_websockets' : 'BUILDBOT_MQ_DEBUG' in os.environ, + 'debug_lowlevel' : 'BUILDBOT_MQ_DEBUG' in os.environ, + } +# 'protocols' contains information about protocols which master will use for +# communicating with workers. You must define at least 'port' option that workers +# could connect to your master with this protocol. +# 'port' must match the value configured into the workers (with their +# --master option) +c['protocols'] = {'pb': {'port': os.environ.get("BUILDBOT_WORKER_PORT", 9989)}} + +####### CHANGESOURCES + +# the 'change_source' setting tells the buildmaster how it should find out +# about source code changes. We don't build when sources change. +c['change_source'] = [] + +####### SCHEDULERS + +# Configure the Schedulers, which decide how to react to incoming changes. In this +# case, just kick off a 'runtests' build + +c['schedulers'] = [ + schedulers.ForceScheduler( + name="build", + builderNames=["release-blender-283"], + properties=[ + util.StringParameter( + name="blender_version", + label="Version of blender.", + default="2.83"), + util.StringParameter( + name="blender_version_full", + label="Version of blender (Full).", + default="2.83.1") + ] + ), + + schedulers.Triggerable( + name="deploy-source-archive", + builderNames=["deploy-source-archive"] + ), + + schedulers.Triggerable( + name="deploy-buildbot-packages", + builderNames=["deploy-buildbot-packages"] + ), +] + +####### BUILDERS + +# The 'builders' list defines the Builders, which tell Buildbot how to perform a build: +# what steps, and which workers can execute them. Note that any particular build will +# only take place on one worker. + +deploy_source_archive_factory = util.BuildFactory() +deploy_source_archive_factory.addStep(steps.Git(name="Checkout Blender Source", repourl='https://git.blender.org/blender.git', branch=util.Interpolate('blender-v%(prop:blender_version)s-release'), mode='full')) +deploy_source_archive_factory.addStep(steps.ShellSequence(name="Make source archive", commands=[ + util.ShellArg(command=["make", "source_archive"], logfile='make_source_archive'), + # The next two shell commands are only needed during development + util.ShellArg(command=["mv", "blender-2.83.2-beta.tar.xz", util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz')]), + util.ShellArg(command=["mv", "blender-2.83.2-beta.tar.xz.md5sum", util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz.md5sum')]), +])) +deploy_source_archive_factory.addStep(steps.FileUpload( + name="Upload source archive", + workersrc=util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz'), + masterdest=util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz'))) +deploy_source_archive_factory.addStep(steps.FileUpload( + name="Upload source archive checksum", + workersrc=util.Interpolate('blender-v%(prop:blender_version_full)s.tar.xz.md5sum'), + masterdest=util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz.md5sum'))) +deploy_source_archive_factory.addStep(steps.MasterShellCommand( + name="Upload source archive", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) +deploy_source_archive_factory.addStep(steps.MasterShellCommand( + name="Upload windows64.zip build", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-v%(prop:blender_version_full)s.tar.xz.md5sum'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) + +deploy_buildbot_packages_factory = util.BuildFactory() +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Download linux64 build", + command=[ + 'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-linux64.tar.xz'), + "-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-linux64.tar.xz')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Download windows64.msi build", + command=[ + 'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-windows64.msi'), + "-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.msi')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Download windows64.zip build", + command=[ + 'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-windows64.zip'), + "-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.zip')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Download macOS build", + command=[ + 'wget', util.Interpolate('https://builder.blender.org/download/blender-%(prop:blender_version_full)s-macOS.dmg'), + "-O", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-macOS.dmg')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Create checksum (md5/sha256)", + command=[ + 'sh', + '-C', + '/var/lib/buildbot/bin/create_checksum.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-*'), + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s'), +])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Upload linux64 build", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-linux64.tar.xz'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Upload windows64.msi build", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.msi'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Upload windows64.zip build", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-windows64.zip'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Upload macOS build", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s-macOS.dmg'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Upload md5 checksum", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s.md5'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) +deploy_buildbot_packages_factory.addStep(steps.MasterShellCommand( + name="Upload sha256 checksum", + command=[ + 'sh', '-C', '/var/lib/buildbot/bin/upload_file.sh', + util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s/blender-%(prop:blender_version_full)s.sha256'), + util.Interpolate('/data/www/vhosts/download.blender.org/ftp/jeroen/')])) + +factory = util.BuildFactory() +factory.addStep(steps.MasterShellCommand(name="Init release folder", command=["mkdir", "-p", util.Interpolate('/var/lib/buildbot/builds//blender-v%(prop:blender_version_full)s')])) +factory.addStep(steps.Trigger( + name='Deploy', + schedulerNames=[ + 'deploy-source-archive', + 'deploy-buildbot-packages', + ], + waitForFinish=True, + set_properties={ + 'blender_version_full': util.Property('blender_version_full'), + 'blender_version': util.Property('blender_version'), + } +)) + +# Download builds from builder.blender.org +c['builders'] = [ + util.BuilderConfig(name="release-blender-283", + workernames=["lts-worker"], + factory=factory), + util.BuilderConfig(name="deploy-source-archive", + workernames=["lts-worker"], + factory=deploy_source_archive_factory), + util.BuilderConfig(name="deploy-buildbot-packages", + workernames=["lts-worker"], + factory=deploy_buildbot_packages_factory), +] + +####### 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, +# like IRC bots. + +# c['status'] = [] + +####### PROJECT IDENTITY + +# the 'title' string will appear at the top of this buildbot installation's +# home pages (linked to the 'titleURL'). + +c['title'] = "Blender Release LTS" +c['titleURL'] = "https://www.blender.org/download/lts/" + +# the 'buildbotURL' string should point to the location where the buildbot's +# internal web server is visible. This typically uses the port number set in +# the 'www' entry below, but with an externally-visible host name which the +# buildbot cannot figure out without some help. + +c['buildbotURL'] = os.environ.get("BUILDBOT_WEB_URL", "http://localhost:8010/") + +# minimalistic config to activate new web UI +c['www'] = dict(port=os.environ.get("BUILDBOT_WEB_PORT", 8010), + plugins=dict(waterfall_view={}, console_view={})) + +####### DB URL + +c['db'] = { + # This specifies what database buildbot uses to store its state. You can leave + # this at its default for all but the largest installations. + 'db_url' : os.environ.get("BUILDBOT_DB_URL", "sqlite://").format(**os.environ), +}
\ No newline at end of file |