openwrt / buildbot

OpenWrt buildbot configuration
10 stars 13 forks source link

Fix master improve CI #23

Closed ynezz closed 9 months ago

ynezz commented 9 months ago

Currently master is unable to start due to some Twisted dependency hell. I've integrated a workaround which should be reverted once we bump to buildbot >= 3.10

To prevent such regressions again in future I've improved the CI testing with a simple, but extensible cram based test suite.

Example of the cram test output with current master failure:

tests/cram/master/01-logs.t: failed
--- tests/cram/master/01-logs.t
+++ tests/cram/master/01-logs.t.err
@@ -5,3 +5,35 @@
   creating /master/master.cfg.sample
   creating database (sqlite:///state.sqlite)
   buildmaster configured in /master
+  Unhandled error in Deferred:
+  
+  Traceback (most recent call last):
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/scripts/create_master.py", line 84, in createDB
+      master = BuildMaster(config['basedir'])
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/master.py", line 102, in __init__
+      self._services_d = self.create_child_services()
+    File "/usr/local/lib/python3.9/dist-packages/twisted/internet/defer.py", line 2256, in unwindGenerator
+      return _cancellableInlineCallbacks(gen)
+    File "/usr/local/lib/python3.9/dist-packages/twisted/internet/defer.py", line 2168, in _cancellableInlineCallbacks
+      _inlineCallbacks(None, gen, status, _copy_context())
+  --- <exception caught here> ---
+    File "/usr/local/lib/python3.9/dist-packages/twisted/internet/defer.py", line 2000, in _inlineCallbacks
+      result = context.run(gen.send, result)
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/master.py", line 188, in create_child_services
+      self.www = wwwservice.WWWService()
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/www/service.py", line 196, in __init__
+      self.apps = get_plugins('www', None, load_now=True)
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/plugins/db.py", line 356, in get_plugins
+      return _DB.add_namespace(namespace, interface, check_extras, load_now)
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/plugins/db.py", line 306, in add_namespace
+      tempo.load()
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/plugins/db.py", line 242, in load
+      self._tree.load()
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/plugins/db.py", line 112, in load
+      child.load()
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/plugins/db.py", line 45, in load
+      self._value = self._loader(self._entry)
+    File "/usr/local/lib/python3.9/dist-packages/buildbot/plugins/db.py", line 214, in _load_entry
+      raise PluginDBError('Requirements are not satisfied '
+  buildbot.errors.PluginDBError: Requirements are not satisfied for buildbot.www:base: The 'zope-interface>=5' distribution was not found and is required by Twisted
+  
# Ran 1 tests, 0 skipped, 1 failed.