]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/buildbot/projects/test/__init__.py
First attempt at making declarative VMs
[perso/Immae/Config/Nix.git] / modules / private / buildbot / projects / test / __init__.py
index e6b8d51474ca40bd4b6d8cbdfd57a6fd43e4babe..e2f6f82e4e6ddcee48c7f1b705d0dbdd010efafa 100644 (file)
@@ -1,5 +1,6 @@
 from buildbot.plugins import *
 from buildbot_common.build_helpers import *
+import buildbot_common.libvirt as ilibvirt
 import os
 from buildbot.util import bytes2unicode
 import json
@@ -10,11 +11,13 @@ class E():
     PROJECT       = "test"
     BUILDBOT_URL  = "https://git.immae.eu/buildbot/{}/".format(PROJECT)
     SOCKET        = "unix:/run/buildbot/{}.sock".format(PROJECT)
-    PB_SOCKET     = "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT)
+    PB_SOCKET     = os.environ["BUILDBOT_WORKER_PORT"]
+    WORKER_HOST   = "{}:{}".format(os.environ["BUILDBOT_HOST"], PB_SOCKET)
     RELEASE_PATH  = "/var/lib/ftp/release.immae.eu/{}".format(PROJECT)
     RELEASE_URL   = "https://release.immae.eu/{}".format(PROJECT)
     GIT_URL       = "https://git.immae.eu/perso/Immae/TestProject.git"
     SSH_KEY_PATH  = "/var/lib/buildbot/buildbot_key"
+    LIBVIRT_URL   = os.environ["BUILDBOT_VIRT_URL"] + "?keyfile=" + SSH_KEY_PATH
     PUPPET_HOST   = "root@backup-1.v.immae.eu"
     LDAP_HOST     = "ldap.immae.eu"
     LDAP_DN       = "cn=buildbot,ou=services,dc=immae,dc=eu"
@@ -70,8 +73,14 @@ def configure(c):
     c["www"]["change_hook_dialects"]["base"] = {
             "custom_class": CustomBase
             }
-    c['workers'].append(worker.LocalWorker("generic-worker-test"))
-    c['workers'].append(worker.LocalWorker("deploy-worker-test"))
+    c['workers'].append(ilibvirt.LibVirtWorker("test-build",
+                                             open(E.SECRETS_FILE + "/worker_password", "r").read().rstrip(),
+                                             ilibvirt.Connection(E.LIBVIRT_URL),
+                                             E.WORKER_HOST))
+    c['workers'].append(ilibvirt.LibVirtWorker("test-deploy",
+                                             open(E.SECRETS_FILE + "/worker_password", "r").read().rstrip(),
+                                             ilibvirt.Connection(E.LIBVIRT_URL),
+                                             E.WORKER_HOST))
 
     c['schedulers'].append(hook_scheduler("TestProject", timer=1))
     c['schedulers'].append(force_scheduler("force_test", ["TestProject_build"]))
@@ -109,7 +118,7 @@ def factory():
         logEnviron=False, command=["echo", package]))
     factory.addSteps(package_and_upload(package, package_dest, package_url))
 
-    return util.BuilderConfig(name="TestProject_build", workernames=["generic-worker-test"], factory=factory)
+    return util.BuilderConfig(name="TestProject_build", workernames=["test-build"], factory=factory)
 
 
 def compute_build_infos():
@@ -143,7 +152,7 @@ def deploy_factory():
         ldap_password=util.Secret("ldap")))
     factory.addStep(steps.MasterShellCommand(command=[
         "ssh", "-o", "UserKnownHostsFile=/dev/null", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIP=no", "-i", E.SSH_KEY_PATH, puppet_host]))
-    return util.BuilderConfig(name="TestProject_deploy", workernames=["deploy-worker-test"], factory=factory)
+    return util.BuilderConfig(name="TestProject_deploy", workernames=["test-deploy"], factory=factory)
 
 from twisted.internet import defer
 from buildbot.process.buildstep import FAILURE