diff --git a/buildbot/masters/datatracker/master.cfg b/buildbot/masters/datatracker/master.cfg index b1c6ca22c..46d515ba7 100644 --- a/buildbot/masters/datatracker/master.cfg +++ b/buildbot/masters/datatracker/master.cfg @@ -83,6 +83,7 @@ c['schedulers'] = [ change_filter=filter.ChangeFilter(branch_re='personal/.*')), # Periodic Schedulers Nightly(name="lin_test_libs", hour=16, minute=42, branch="trunk", builderNames=["Verify Latest Libs"],), + Nightly(name="lin_test_old_libs", hour=16, minute=42, branch="trunk", builderNames=["Verify Minimum Libs"],), # Force schedulers ForceScheduler(name="Force PyFlakes", builderNames=["Check PyFlakes"]), ForceScheduler(name="Force Test Suite", builderNames=["Test Suite"]), @@ -390,6 +391,64 @@ c['builders'].append(BuilderConfig(name="Test-Crawler", factory=factory, categor slavenames=["datatracker_lin_py27_1", ])) +# -*- section Builder_Verify_Old_Libs -*- + +# This build runs pip install --upgrade, to make sure that we install the earliest version of +# all dependencies, in order to get an indication if/when an incompatibility turns up with a new +# version of a dependency. The other test suite builders *don't* use --upgrade, in order to not +# change the external test conditions and produce spurious errors because of version changes in +# dependencies. + +factory = BuildFactory() +factory.addStep(SVN( + username='buildbot@tools.ietf.org', + descriptionDone="svn update", + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=True, + repourl=Interpolate('https://svn.tools.ietf.org/svn/tools/ietfdb/%(src::branch:~trunk)s'), + descriptionSuffix=[Interpolate('%(src::branch)s %(src::revision)s')], + )) +factory.addStep(RemovePYCs(workdir=Interpolate('build/%(src::branch)s'))) +factory.addStep(ShellCommand( + descriptionDone="install/upgrade requirements", + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=True, + command=["sed", "-i", "-e", "s/>=/==/", "requirements.txt"], + )) +factory.addStep(ShellCommand( + descriptionDone="install/upgrade requirements", + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=True, + command=["pip", "install", "--upgrade", "-r", "requirements.txt"], + )) +factory.addStep(ShellCommand( + descriptionDone="seting up settings_local.py", + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=True, + command=["cp", "/home/buildbot/settings_local.py", "./"], + )) +factory.addStep(ShellCommand( + descriptionDone="list installed pyton modules", + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=True, + command=["pip", "list"], + )) +factory.addStep(ShellCommand( + descriptionDone="collect static files", + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=False, + flunkOnFailure=False, + command=["ietf/manage.py", "collectstatic", "--noinput", ], + )) +factory.addStep(UnitTest( + workdir=Interpolate('build/%(src::branch)s'), + haltOnFailure=True, + command=["ietf/manage.py", "test", "--settings=settings_sqlitetest", "--verbosity=2", ], + )) +c['builders'].append(BuilderConfig(name="Verify Minimum Libs", factory=factory, category="1. trunk", + slavenames=["datatracker_lin_py27_5"])) + + # -*- section Builder_Dependencies -*- # This build runs pip install --upgrade, to make sure that we install the latest version of all