hydra: bayfront: Add bffe service.

This replaces me running the bffe in a screen session.

The bffe looks after submitting master branch builds to the bordeaux
build coordinator, as well as exposing information about the build
farm.

* hydra/bayfront.scm (%guix-build-coordinator-configuration): New
variable.
<services>: Add bffe-service-type.
* hydra/nginx/html/bordeaux/home.html: New file.
* hydra/nginx/html/bordeaux/index.html: Remove.
This commit is contained in:
Christopher Baines 2023-09-15 15:34:15 +01:00
parent a4c5263457
commit f07f498a06
No known key found for this signature in database
GPG Key ID: 5E28A33B0B84F577
3 changed files with 116 additions and 158 deletions

View File

@ -972,6 +972,75 @@ proxy_set_header Via $via;"
(extra-environment-variables
'("GC_RETRY_SIGNALS=0")))))
(define %bffe-configuration
(bffe-configuration
(arguments
#~(let ((priority-for-derivation
(lambda (type system target)
(cond
((eq? type 'channel-instance)
(cond
((or (string=? system "x86_64-linux")
(string=? system "aarch64-linux"))
1000)
((or
;; i686-linux builds are getting stuck due to memory
;; issues, so use a lower priority
(string=? system "i686-linux")
;; prioritise package builds over channel instances for
;; riscv64-linux aaand powerpc64le-linux
(string=? system "riscv64-linux"))
0)
;; Prioritise packages for powerpc64le-linux
((string=? system "powerpc64le-linux") 700)
(else 900)))
((eq? type 'package)
(cond
((string=? target "none")
(if (or (string=? system "x86_64-linux")
(string=? system "aarch64-linux"))
800
700))
((string=? target "i586-pc-gnu") 650)
(else
;; Use a low priority for general cross builds
0)))
(else
0)))))
(list
#:build
(list
(build-from-guix-data-service
(data-service-url "https://data.guix.gnu.org")
(build-coordinator-url "http://127.0.0.1:8746")
(branches '("master"))
(systems '("x86_64-linux" "i686-linux"
"aarch64-linux"
"armhf-linux"
"powerpc64le-linux"
"riscv64-linux"
"i586-gnu"))
(systems-and-targets
(map (lambda (target)
(cons "x86_64-linux" target))
'("mips64el-linux-gnu"
"arm-linux-gnueabihf"
"aarch64-linux-gnu"
"powerpc-linux-gnu"
"powerpc64le-linux-gnu"
"riscv64-linux-gnu"
"i586-pc-gnu"
"i686-w64-mingw32"
"x86_64-w64-mingw32")))
(submit-builds-for-channel-instances? #t)
(build-priority priority-for-derivation)
(data-service-build-server-id 2)))
#:web-server-args
'(#:controller-args
(#:title "bordeaux.guix.gnu.org"
#:template-directory #$(local-file "nginx/html/bordeaux"
#:recursive? #t))))))))
;;;
;;; Operating system.
@ -1246,6 +1315,9 @@ proxy_set_header Via $via;"
(service guix-build-coordinator-service-type
%guix-build-coordinator-configuration)
(service bffe-service-type
%bffe-configuration)
(service guix-build-coordinator-agent-service-type
(guix-build-coordinator-agent-configuration
(coordinator "https://coordinator.bayfront.guix.gnu.org")

View File

@ -0,0 +1,44 @@
<p>
This is a
<a href="https://guix.gnu.org/manual/en/html_node/Substitutes.html" target="_blank">substitute server</a>
for <a href="https://guix.gnu.org/" target="_blank">Guix</a>.
</p>
<p>
Availability for <b>x86_64-linux</b>, <b>i686-linux</b>,
<b>aarch64-linux</b>, <b>armhf-linux</b> and
<b>powerpc64le-linux</b> should be good. <b>i586-gnu</b>
substitutes are a work in progress.
</p>
<p>
Cross built packages from x86_64-linux to <b>i586-pc-gnu</b>,
<b>aarch64-linux-gnu</b> and <b>arm-linux-gnueabihf</b> are
also available.
</p>
<h2>Using these substitutes</h2>
<p>
bordeaux.guix.gnu.org is a default substitute server in recent
versions of Guix, so no manual configuration should be
necessary.
</p>
<p>
The URL to use to fetch substitutes is <code>https://bordeaux.guix.gnu.org</code>,
and they're signed with the following key.
<pre>(public-key
(ecc
(curve Ed25519)
(q #7D602902D3A2DBB83F8A0FB98602A754C5493B0B778C8D1DD4E0F41DE14DE34F#)
)
)</pre>
</p>
<h3>On a Guix System</h3>
<p>
With recent versions of Guix, the
<code>%default-substitute-urls</code> and
<code>%default-authorized-guix-keys</code> should include
bordeaux.guix.gnu.org, so no extra configuration should be
necessary.
</p>

View File

@ -1,158 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>bordeaux.guix.gnu.org</title>
<style type="text/css">
body {
margin: 0;
padding: 0 0 3em 1em;
font-family: sans-serif;
}
.bod {
margin: auto;
max-width: 70rem;
padding: 0 1rem;
}
.asterisk {
font-style: italic;
font-size: small;
text-align: right;
}
.asterisk a {
text-decoration: none;
}
.asterisk a:hover {
text-decoration: underline;
}
a.totop {
float: right;
text-decoration: none !important;
color: transparent !important;
}
a.totop:hover {
color: #999 !important;
}
a.totop::after {
content: " ↑";
font-weight: bold;
color: #999 !important;
}
.feat { background-color: #222;
color: #fff;
margin-top: 5em;
padding: 1em 0 2.5em 0;
}
.feat a {
color: #fff;
}
.feat code {
background-color: #111;
}
h2 {
margin: 1em 0;
padding-top: 1em;
}
p, ol, ul, dl {
margin: 1.6em 0;
line-height: 1.8em;
}
a { color: #333; }
a:hover { text-decoration: underline; }
a:img { border: none; }
code {
padding: .8ex;
background-color: #333;
border-radius: .5ex;
font-size: 110%;
color: #fff; }
code a { color: #fff; }
dl { margin-left: 2em; }
dt { font-weight: bold; }
dd { margin: 1ex 0 2em 1em; }
li { margin-top: 1ex; }
a:hover .logo {
opacity: .8;
}
.alert {
position: fixed;
left: 0;
top: 0;
width: 100%;
margin: 0;
padding: .5ex;
color: #fff;
background: #c00;
font-size: large;
box-shadow: 0 .1em 1em rgba(0,0,0,1);
text-align: center;
z-index: 10;
}
.alert:before {
content: "\26A0 ";
font-size: large;
}
.alert.good {
color: #fff;
background: #0c0;
}
.alert.good:before {
content: none;
}
</style>
</head>
<body>
<img
src="https://guix.gnu.org/static/base/img/Guix.png"
style="display:block; margin: 0 auto 1em auto" />
<h1>bordeaux.guix.gnu.org</h1>
<p>
This is a
<a href="https://guix.gnu.org/manual/en/html_node/Substitutes.html"
target="_blank">substitute server</a>
for <a href="https://guix.gnu.org/"
target="_blank">Guix</a>.
</p>
<div style="font-size: x-large;">
<p>
Availability for <b>x86_64-linux</b>, <b>i686-linux</b>,
<b>aarch64-linux</b>, <b>armhf-linux</b> and
<b>powerpc64le-linux</b> should be good. <b>i586-gnu</b>
substitutes are a work in progress.
</p>
<p>
Cross built packages from x86_64-linux to <b>i586-pc-gnu</b>,
<b>aarch64-linux-gnu</b> and <b>arm-linux-gnueabihf</b> are
also available.
</p>
</div>
<h2>Using these substitutes</h2>
<p>
bordeaux.guix.gnu.org is a default substitute server in recent
versions of Guix, so no manual configuration should be
necessary.
</p>
<p>
The URL to use to fetch substitutes is <code>https://bordeaux.guix.gnu.org</code>,
and they're signed with the following key.
<pre>(public-key
(ecc
(curve Ed25519)
(q #7D602902D3A2DBB83F8A0FB98602A754C5493B0B778C8D1DD4E0F41DE14DE34F#)
)
)</pre>
</p>
<h3>On a Guix System</h3>
<p>
With recent versions of Guix, the
<code>%default-substitute-urls</code> and
<code>%default-authorized-guix-keys</code> should include
bordeaux.guix.gnu.org, so no extra configuration should be
necessary.
</p>
</body>
</html>