]>
git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/buildbot/projects/denise/__init__.py
5bd4b1af0419b1d632d34d6c06b4c9545d3b698c
1 from buildbot
.plugins
import *
2 from buildbot_common
.build_helpers
import *
4 from buildbot
.util
import bytes2unicode
7 __all__
= [ "configure", "E" ]
11 BUILDBOT_URL
= "https://git.immae.eu/buildbot/{}/".format(PROJECT
)
12 SOCKET
= "unix:/run/buildbot/{}.sock".format(PROJECT
)
13 PB_SOCKET
= "unix:address=/run/buildbot/{}_pb.sock".format(PROJECT
)
14 SSH_KEY_PATH
= "/var/lib/buildbot/buildbot_key"
15 SSH_HOST_KEY
= "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIFbhFTl2A2RJn5L51yxJM4XfCS2ZaiSX/jo9jFSdghF"
17 OMS_RELEASE_PATH
= "/var/lib/buildbot/outputs/denise/oms"
18 OMS_GIT_URL
= "gitolite@git.immae.eu:perso/Denise/oms"
20 AVENTURIERS_RELEASE_PATH
= "/var/lib/buildbot/outputs/denise/aventuriers"
21 AVENTURIERS_GIT_URL
= "https://git.immae.eu/perso/Denise/aventuriers.git"
24 SECRETS_FILE
= os
.getcwd() + "/secrets"
25 LDAP_URL
= "ldaps://ldap.immae.eu:636"
26 LDAP_ADMIN_USER
= "cn=buildbot,ou=services,dc=immae,dc=eu"
27 LDAP_BASE
= "dc=immae,dc=eu"
28 LDAP_PATTERN
= "(uid=%(username)s)"
29 LDAP_GROUP_PATTERN
= "(&(memberOf=cn=groups,ou=denise,cn=buildbot,ou=services,dc=immae,dc=eu)(member=%(dn)s))"
30 TITLE_URL
= "https://oms.syanni.eu"
31 TITLE
= "Syanni website"
33 class CustomBase(webhooks
.base
):
34 def getChanges(self
, request
):
36 content
= request
.content
.read()
37 args
= json
.loads(bytes2unicode(content
))
38 except Exception as e
:
39 raise ValueError("Error loading JSON: " + str(e
))
41 args
.setdefault("comments", "")
42 args
.setdefault("repository", "")
43 args
.setdefault("author", args
.get("who", "unknown"))
48 c
["buildbotURL"] = E
.BUILDBOT_URL
49 c
["www"]["port"] = E
.SOCKET
51 c
["www"]["change_hook_dialects"]["base"] = {
52 "custom_class": CustomBase
54 c
['workers'].append(worker
.LocalWorker("generic-worker-denise"))
56 c
['schedulers'].append(hook_scheduler("DeniseOMS", timer
=1))
57 c
['schedulers'].append(hook_scheduler("DeniseAventuriers", timer
=1))
58 c
['schedulers'].append(force_scheduler("force_denise", [
59 "DeniseOMS_build", "DeniseAventuriers_build"
62 c
['builders'].append(denise_oms_factory())
63 c
['builders'].append(denise_aventuriers_factory())
65 def denise_oms_factory():
66 factory
= util
.BuildFactory()
67 factory
.addStep(steps
.Git(logEnviron
=False, repourl
=E
.OMS_GIT_URL
,
68 submodules
=True, sshPrivateKey
=open(E
.SSH_KEY_PATH
).read().rstrip(),
69 sshHostKey
=E
.SSH_HOST_KEY
, mode
="full", method
="copy"))
70 factory
.addStep(steps
.MasterShellCommand(command
="rm -rf {}".format(E
.OMS_RELEASE_PATH
)))
71 factory
.addStep(steps
.DirectoryUpload(workersrc
="../source",
72 masterdest
=E
.OMS_RELEASE_PATH
,
73 url
="https://oms.syanni.eu"))
74 factory
.addStep(steps
.MasterShellCommand(command
="chmod -R a+rX {}".format(E
.OMS_RELEASE_PATH
)))
75 factory
.addStep(steps
.MasterShellCommand(command
="kill $(cat /run/denise_oms/gunicorn.pid)"))
77 return util
.BuilderConfig(name
="DeniseOMS_build", workernames
=["generic-worker-denise"], factory
=factory
)
79 def denise_aventuriers_factory():
81 "PATH": os
.environ
["BUILDBOT_PATH_Aventuriers"] + ":${PATH}",
85 factory
= util
.BuildFactory()
86 factory
.addStep(steps
.Git(logEnviron
=False, repourl
=E
.AVENTURIERS_GIT_URL
,
87 submodules
=True, mode
="full", method
="fresh"))
88 factory
.addStep(steps
.ShellCommand(name
="build files",
89 logEnviron
=False, haltOnFailure
=True, workdir
="build",
90 env
=path_env
, command
=["make", "tout", "encyclo"]))
91 factory
.addStep(steps
.MasterShellCommand(command
="rm -rf {}".format(E
.AVENTURIERS_RELEASE_PATH
)))
92 factory
.addStep(steps
.DirectoryUpload(workersrc
="../build/html",
93 masterdest
=E
.AVENTURIERS_RELEASE_PATH
,
94 url
="https://aventuriers.syanni.eu"))
95 factory
.addStep(steps
.FileUpload(name
="upload epub file", workersrc
="aventuriers.epub",
96 workdir
="build", masterdest
=E
.AVENTURIERS_RELEASE_PATH
+ "/aventuriers.epub",
97 url
="https://aventuriers.syanni.eu/aventuriers.epub", mode
=0o644))
98 factory
.addStep(steps
.FileUpload(name
="upload mobi file", workersrc
="aventuriers.mobi",
99 workdir
="build", masterdest
=E
.AVENTURIERS_RELEASE_PATH
+ "/aventuriers.mobi",
100 url
="https://aventuriers.syanni.eu/aventuriers.mobi", mode
=0o644))
101 factory
.addStep(steps
.FileUpload(name
="upload pdf file", workersrc
="aventuriers.pdf",
102 workdir
="build", masterdest
=E
.AVENTURIERS_RELEASE_PATH
+ "/aventuriers.pdf",
103 url
="https://aventuriers.syanni.eu/aventuriers.pdf", mode
=0o644))
104 factory
.addStep(steps
.FileUpload(name
="upload encyclo pdf file", workersrc
="encyclo.pdf",
105 workdir
="build", masterdest
=E
.AVENTURIERS_RELEASE_PATH
+ "/encyclo.pdf",
106 url
="https://aventuriers.syanni.eu/encyclo.pdf", mode
=0o644))
107 factory
.addStep(steps
.MasterShellCommand(command
="chmod -R a+rX {}".format(E
.AVENTURIERS_RELEASE_PATH
)))
109 return util
.BuilderConfig(name
="DeniseAventuriers_build", workernames
=["generic-worker-denise"], factory
=factory
)