From: Thiago Jung Bauermann via Guix-patches via <guix-patches@gnu.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 50326@debbugs.gnu.org, Thiago Jung Bauermann <bauermann@kolabnow.com>
Subject: [bug#50326] [PATCH cuirass v2] Add systemd unit file for remote worker service.
Date: Wed, 15 Sep 2021 23:38:44 -0300 [thread overview]
Message-ID: <20210916023844.77190-1-bauermann@kolabnow.com> (raw)
In-Reply-To: <87czpj2ml9.fsf@gnu.org>
* etc/cuirass-remote-worker.service.in: New file.
* doc/cuirass.texi (Build modes): Mention it.
* .gitignore: Ignore it.
* Makefile.am (systemdservicedir): New variable.
(dist_systemdservice_DATA): Likewise.
(EXTRA_DIST): Add ‘etc/cuirass-remote-worker.service’.
(etc/cuirass-remote-worker.service): New target.
* configure.ac: Check for ‘(guix config)’ module.
Set and substitute ‘guix_localstatedir’ variable.
---
Hello Ludo,
I wanted to send the other patch with the new systemd files for ‘guix gc’ (issue
50610), so I took the opportunity to also work on this one.
Em quarta-feira, 8 de setembro de 2021, às 11:01:06 -03, Ludovic Courtès escreveu:
> I’d prefer installing it to $sysconfdir, similar to how we do it in
> Guix. That makes it easier for interested users to locate the right
> .service and to install it, right after they’ve done ‘guix install
> cuirass’.
Guix actually installs its systemd files in $libdir, so I did the same for
Cuirass. Feel free to change the patch to install to another place if you
prefer.
Thanks,
Thiago
.gitignore | 1 +
Makefile.am | 8 ++++++++
configure.ac | 4 ++++
doc/cuirass.texi | 13 +++++++++++++
etc/cuirass-remote-worker.service.in | 15 +++++++++++++++
5 files changed, 41 insertions(+)
create mode 100644 etc/cuirass-remote-worker.service.in
diff --git a/.gitignore b/.gitignore
index 95ed6cb3982c..0807874e9513 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,6 +24,7 @@
/config.cache
/configure
/doc/version.texi
+/etc/cuirass-remote-worker.service
/src/cuirass/config.scm
/tests/cache
Makefile
diff --git a/Makefile.am b/Makefile.am
index 1d754673f450..6cfa3d70e612 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -45,6 +45,7 @@ cssdir = $(staticdir)/css
fontsdir = $(staticdir)/fonts
imagesdir = $(staticdir)/images
jsdir = $(staticdir)/js
+systemdservicedir = $(libdir)/systemd/system
dist_pkgmodule_DATA = \
src/cuirass/base.scm \
@@ -129,6 +130,9 @@ dist_js_DATA = \
src/static/js/jquery-3.3.1.min.js \
src/static/js/popper.min.js
+dist_systemdservice_DATA = \
+ etc/cuirass-remote-worker.service
+
TEST_EXTENSIONS = .scm .sh
AM_TESTS_ENVIRONMENT = \
env GUILE_AUTO_COMPILE='0' \
@@ -188,6 +192,7 @@ EXTRA_DIST = \
bootstrap \
build-aux/guix.scm \
src/cuirass/config.scm.in \
+ etc/cuirass-remote-worker.service.in \
$(TESTS)
dist-hook: gen-ChangeLog
@@ -247,6 +252,9 @@ $(bin_SCRIPTS): Makefile
$(generate_file); chmod +x $@
src/cuirass/config.scm: $(srcdir)/src/cuirass/config.scm.in Makefile
$(generate_file)
+etc/cuirass-remote-worker.service: $(srcdir)/etc/cuirass-remote-worker.service.in \
+ Makefile
+ $(generate_file)
# Guile modules require 'src/cuirass/config.scm' to exist before their
# compilation.
diff --git a/configure.ac b/configure.ac
index 479e93a1cb8e..af294c16d025 100644
--- a/configure.ac
+++ b/configure.ac
@@ -47,6 +47,7 @@ GUILE_MODULE_REQUIRED([avahi])
GUILE_MODULE_REQUIRED([fibers])
GUILE_MODULE_REQUIRED([guix])
GUILE_MODULE_REQUIRED([guix git])
+GUILE_MODULE_REQUIRED([guix config])
GUILE_MODULE_REQUIRED([git])
GUILE_MODULE_REQUIRED([json])
GUILE_MODULE_REQUIRED([mailutils mailutils])
@@ -58,6 +59,9 @@ GUILE_MODULE_REQUIRED([zlib])
# We depend on new Guile-Git errors.
GUILE_MODULE_REQUIRED_EXPORT([(git)], git-error-message)
+guix_localstatedir="$($GUILE -c '(import (guix config)) (display %localstatedir)')"
+AC_SUBST(guix_localstatedir)
+
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env])
diff --git a/doc/cuirass.texi b/doc/cuirass.texi
index 72b0b5b0913a..21d25569339a 100644
--- a/doc/cuirass.texi
+++ b/doc/cuirass.texi
@@ -463,6 +463,19 @@ The easiest way to setup such an infrastructure is to rely on the GNU
Guix Cuirass services definitions (@pxref{Continuous Integration,
Continuous Integration,, guix, Guix}).
+Alternatively, there is a systemd service unit file installed at
+@code{$CUIRASS_PREFIX/lib/systemd/system/cuirass-remote-worker.service}
+to launch the @code{cuirass remote-worker} on systems which use
+systemd. It can be installed and enabled as follows:
+
+@example
+sudo install -o root -g root -m 644 \
+ $CUIRASS_PREFIX/lib/systemd/system/cuirass-remote-worker.service \
+ /etc/systemd/system
+sudo systemctl enable cuirass-remote-worker.service
+sudo systemctl start cuirass-remote-worker.service
+@end example
+
@c *********************************************************************
@node Invocation
@chapter Invocation
diff --git a/etc/cuirass-remote-worker.service.in b/etc/cuirass-remote-worker.service.in
new file mode 100644
index 000000000000..2c334d74804f
--- /dev/null
+++ b/etc/cuirass-remote-worker.service.in
@@ -0,0 +1,15 @@
+# This is a "service unit file" for the systemd init system to launch
+# 'cuirass remote-worker'. Drop it in /etc/systemd/system or similar
+# to have 'cuirass remote-worker' automatically started.
+
+[Unit]
+Description=Continuous integration remmote worker for GNU Guix
+
+[Service]
+ExecStart=@guix_localstatedir@/guix/profiles/per-user/root/guix-profile/bin/cuirass \
+ remote-worker --workers=2 --server=10.0.0.1:5555
+Environment= LC_ALL=en_US.UTF-8 \
+ 'GUIX_LOCPATH=@guix_localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale'
+
+[Install]
+WantedBy=multi-user.target
next prev parent reply other threads:[~2021-09-16 2:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-01 19:14 [bug#50326] [PATCH cuirass] Add systemd unit file for remote worker service Thiago Jung Bauermann via Guix-patches via
2021-09-08 14:01 ` Ludovic Courtès
2021-09-08 14:24 ` Thiago Jung Bauermann via Guix-patches via
2021-09-16 2:38 ` Thiago Jung Bauermann via Guix-patches via [this message]
2021-09-16 20:04 ` bug#50326: [PATCH cuirass v2] " Ludovic Courtès
2021-09-16 20:17 ` [bug#50326] " Thiago Jung Bauermann via Guix-patches via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210916023844.77190-1-bauermann@kolabnow.com \
--to=guix-patches@gnu.org \
--cc=50326@debbugs.gnu.org \
--cc=bauermann@kolabnow.com \
--cc=ludo@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).