about summary refs log tree commit diff
path: root/nixos/modules/services/continuous-integration
diff options
context:
space:
mode:
authorstuebinm <stuebinm@disroot.org>2024-04-13 14:54:15 +0200
committerJonathan Ringer <jonringer@users.noreply.github.com>2024-04-13 10:07:35 -0700
commit6afb255d976f85f3359e4929abd6f5149c323a02 (patch)
treeced23a118ee0852174d31005acd16f04cad3a781 /nixos/modules/services/continuous-integration
parent1dd996e59a5e67694b7a252aacba71a88d51b41e (diff)
nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
Diffstat (limited to 'nixos/modules/services/continuous-integration')
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/master.nix50
-rw-r--r--nixos/modules/services/continuous-integration/buildbot/worker.nix28
-rw-r--r--nixos/modules/services/continuous-integration/buildkite-agents.nix28
-rw-r--r--nixos/modules/services/continuous-integration/gitea-actions-runner.nix18
-rw-r--r--nixos/modules/services/continuous-integration/github-runner/options.nix34
-rw-r--r--nixos/modules/services/continuous-integration/gitlab-runner.nix70
-rw-r--r--nixos/modules/services/continuous-integration/gocd-agent/default.nix26
-rw-r--r--nixos/modules/services/continuous-integration/gocd-server/default.nix28
-rw-r--r--nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix6
-rw-r--r--nixos/modules/services/continuous-integration/hercules-ci-agent/settings.nix18
-rw-r--r--nixos/modules/services/continuous-integration/hydra/default.nix40
-rw-r--r--nixos/modules/services/continuous-integration/jenkins/default.nix28
-rw-r--r--nixos/modules/services/continuous-integration/jenkins/job-builder.nix16
-rw-r--r--nixos/modules/services/continuous-integration/jenkins/slave.nix8
-rw-r--r--nixos/modules/services/continuous-integration/woodpecker/agents.nix12
-rw-r--r--nixos/modules/services/continuous-integration/woodpecker/server.nix6
16 files changed, 208 insertions, 208 deletions
diff --git a/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixos/modules/services/continuous-integration/buildbot/master.nix
index 9f702b17937cf..a4a9eee672cf4 100644
--- a/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -64,7 +64,7 @@ in {
 
       factorySteps = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "Factory Steps";
+        description = "Factory Steps";
         default = [];
         example = [
           "steps.Git(repourl='https://github.com/buildbot/pyflakes.git', mode='incremental')"
@@ -74,7 +74,7 @@ in {
 
       changeSource = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "List of Change Sources.";
+        description = "List of Change Sources.";
         default = [];
         example = [
           "changes.GitPoller('https://github.com/buildbot/pyflakes.git', workdir='gitpoller-workdir', branch='master', pollinterval=300)"
@@ -83,7 +83,7 @@ in {
 
       configurators = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "Configurator Steps, see https://docs.buildbot.net/latest/manual/configuration/configurators.html";
+        description = "Configurator Steps, see https://docs.buildbot.net/latest/manual/configuration/configurators.html";
         default = [];
         example = [
           "util.JanitorConfigurator(logHorizon=timedelta(weeks=4), hour=12, dayOfWeek=6)"
@@ -93,25 +93,25 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to enable the Buildbot continuous integration server.";
+        description = "Whether to enable the Buildbot continuous integration server.";
       };
 
       extraConfig = mkOption {
         type = types.str;
-        description = lib.mdDoc "Extra configuration to append to master.cfg";
+        description = "Extra configuration to append to master.cfg";
         default = "c['buildbotNetUsageData'] = None";
       };
 
       extraImports = mkOption {
         type = types.str;
-        description = lib.mdDoc "Extra python imports to prepend to master.cfg";
+        description = "Extra python imports to prepend to master.cfg";
         default = "";
         example = "from buildbot.process.project import Project";
       };
 
       masterCfg = mkOption {
         type = types.path;
-        description = lib.mdDoc "Optionally pass master.cfg path. Other options in this configuration will be ignored.";
+        description = "Optionally pass master.cfg path. Other options in this configuration will be ignored.";
         default = defaultMasterCfg;
         defaultText = literalMD ''generated configuration file'';
         example = "/etc/nixos/buildbot/master.cfg";
@@ -119,7 +119,7 @@ in {
 
       schedulers = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "List of Schedulers.";
+        description = "List of Schedulers.";
         default = [
           "schedulers.SingleBranchScheduler(name='all', change_filter=util.ChangeFilter(branch='master'), treeStableTimer=None, builderNames=['runtests'])"
           "schedulers.ForceScheduler(name='force',builderNames=['runtests'])"
@@ -128,7 +128,7 @@ in {
 
       builders = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "List of Builders.";
+        description = "List of Builders.";
         default = [
           "util.BuilderConfig(name='runtests',workernames=['example-worker'],factory=factory)"
         ];
@@ -136,52 +136,52 @@ in {
 
       workers = mkOption {
         type = types.listOf types.str;
-        description = lib.mdDoc "List of Workers.";
+        description = "List of Workers.";
         default = [ "worker.Worker('example-worker', 'pass')" ];
       };
 
       reporters = mkOption {
         default = [];
         type = types.listOf types.str;
-        description = lib.mdDoc "List of reporter objects used to present build status to various users.";
+        description = "List of reporter objects used to present build status to various users.";
       };
 
       user = mkOption {
         default = "buildbot";
         type = types.str;
-        description = lib.mdDoc "User the buildbot server should execute under.";
+        description = "User the buildbot server should execute under.";
       };
 
       group = mkOption {
         default = "buildbot";
         type = types.str;
-        description = lib.mdDoc "Primary group of buildbot user.";
+        description = "Primary group of buildbot user.";
       };
 
       extraGroups = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc "List of extra groups that the buildbot user should be a part of.";
+        description = "List of extra groups that the buildbot user should be a part of.";
       };
 
       home = mkOption {
         default = "/home/buildbot";
         type = types.path;
-        description = lib.mdDoc "Buildbot home directory.";
+        description = "Buildbot home directory.";
       };
 
       buildbotDir = mkOption {
         default = "${cfg.home}/master";
         defaultText = literalExpression ''"''${config.${opt.home}}/master"'';
         type = types.path;
-        description = lib.mdDoc "Specifies the Buildbot directory.";
+        description = "Specifies the Buildbot directory.";
       };
 
       pbPort = mkOption {
         default = 9989;
         type = types.either types.str types.int;
         example = "'tcp:9990:interface=127.0.0.1'";
-        description = lib.mdDoc ''
+        description = ''
           The buildmaster will listen on a TCP port of your choosing
           for connections from workers.
           It can also use this port for connections from remote Change Sources,
@@ -196,37 +196,37 @@ in {
       listenAddress = mkOption {
         default = "0.0.0.0";
         type = types.str;
-        description = lib.mdDoc "Specifies the bind address on which the buildbot HTTP interface listens.";
+        description = "Specifies the bind address on which the buildbot HTTP interface listens.";
       };
 
       buildbotUrl = mkOption {
         default = "http://localhost:8010/";
         type = types.str;
-        description = lib.mdDoc "Specifies the Buildbot URL.";
+        description = "Specifies the Buildbot URL.";
       };
 
       title = mkOption {
         default = "Buildbot";
         type = types.str;
-        description = lib.mdDoc "Specifies the Buildbot Title.";
+        description = "Specifies the Buildbot Title.";
       };
 
       titleUrl = mkOption {
         default = "Buildbot";
         type = types.str;
-        description = lib.mdDoc "Specifies the Buildbot TitleURL.";
+        description = "Specifies the Buildbot TitleURL.";
       };
 
       dbUrl = mkOption {
         default = "sqlite:///state.sqlite";
         type = types.str;
-        description = lib.mdDoc "Specifies the database connection string.";
+        description = "Specifies the database connection string.";
       };
 
       port = mkOption {
         default = 8010;
         type = types.port;
-        description = lib.mdDoc "Specifies port number on which the buildbot HTTP interface listens.";
+        description = "Specifies port number on which the buildbot HTTP interface listens.";
       };
 
       package = mkPackageOption pkgs "buildbot-full" {
@@ -237,14 +237,14 @@ in {
         default = [ pkgs.git ];
         defaultText = literalExpression "[ pkgs.git ]";
         type = types.listOf types.package;
-        description = lib.mdDoc "Packages to add to PATH for the buildbot process.";
+        description = "Packages to add to PATH for the buildbot process.";
       };
 
       pythonPackages = mkOption {
         type = types.functionTo (types.listOf types.package);
         default = pythonPackages: with pythonPackages; [ ];
         defaultText = literalExpression "pythonPackages: with pythonPackages; [ ]";
-        description = lib.mdDoc "Packages to add the to the PYTHONPATH of the buildbot process.";
+        description = "Packages to add the to the PYTHONPATH of the buildbot process.";
         example = literalExpression "pythonPackages: with pythonPackages; [ requests ]";
       };
     };
diff --git a/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 9c7b2bdd06e02..1534ca6f57855 100644
--- a/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -50,79 +50,79 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to enable the Buildbot Worker.";
+        description = "Whether to enable the Buildbot Worker.";
       };
 
       user = mkOption {
         default = "bbworker";
         type = types.str;
-        description = lib.mdDoc "User the buildbot Worker should execute under.";
+        description = "User the buildbot Worker should execute under.";
       };
 
       group = mkOption {
         default = "bbworker";
         type = types.str;
-        description = lib.mdDoc "Primary group of buildbot Worker user.";
+        description = "Primary group of buildbot Worker user.";
       };
 
       extraGroups = mkOption {
         type = types.listOf types.str;
         default = [];
-        description = lib.mdDoc "List of extra groups that the Buildbot Worker user should be a part of.";
+        description = "List of extra groups that the Buildbot Worker user should be a part of.";
       };
 
       home = mkOption {
         default = "/home/bbworker";
         type = types.path;
-        description = lib.mdDoc "Buildbot home directory.";
+        description = "Buildbot home directory.";
       };
 
       buildbotDir = mkOption {
         default = "${cfg.home}/worker";
         defaultText = literalExpression ''"''${config.${opt.home}}/worker"'';
         type = types.path;
-        description = lib.mdDoc "Specifies the Buildbot directory.";
+        description = "Specifies the Buildbot directory.";
       };
 
       workerUser = mkOption {
         default = "example-worker";
         type = types.str;
-        description = lib.mdDoc "Specifies the Buildbot Worker user.";
+        description = "Specifies the Buildbot Worker user.";
       };
 
       workerPass = mkOption {
         default = "pass";
         type = types.str;
-        description = lib.mdDoc "Specifies the Buildbot Worker password.";
+        description = "Specifies the Buildbot Worker password.";
       };
 
       workerPassFile = mkOption {
         type = types.path;
-        description = lib.mdDoc "File used to store the Buildbot Worker password";
+        description = "File used to store the Buildbot Worker password";
       };
 
       hostMessage = mkOption {
         default = null;
         type = types.nullOr types.str;
-        description = lib.mdDoc "Description of this worker";
+        description = "Description of this worker";
       };
 
       adminMessage = mkOption {
         default = null;
         type = types.nullOr types.str;
-        description = lib.mdDoc "Name of the administrator of this worker";
+        description = "Name of the administrator of this worker";
       };
 
       masterUrl = mkOption {
         default = "localhost:9989";
         type = types.str;
-        description = lib.mdDoc "Specifies the Buildbot Worker connection string.";
+        description = "Specifies the Buildbot Worker connection string.";
       };
 
       keepalive = mkOption {
         default = 600;
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           This is a number that indicates how frequently keepalive messages should be sent
           from the worker to the buildmaster, expressed in seconds.
         '';
@@ -134,7 +134,7 @@ in {
         default = with pkgs; [ git ];
         defaultText = literalExpression "[ pkgs.git ]";
         type = types.listOf types.package;
-        description = lib.mdDoc "Packages to add to PATH for the buildbot process.";
+        description = "Packages to add to PATH for the buildbot process.";
       };
     };
   };
diff --git a/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixos/modules/services/continuous-integration/buildkite-agents.nix
index 2e488f83d4c3b..fc30172c64999 100644
--- a/nixos/modules/services/continuous-integration/buildkite-agents.nix
+++ b/nixos/modules/services/continuous-integration/buildkite-agents.nix
@@ -19,38 +19,38 @@ let
       enable = lib.mkOption {
         default = true;
         type = lib.types.bool;
-        description = lib.mdDoc "Whether to enable this buildkite agent";
+        description = "Whether to enable this buildkite agent";
       };
 
       package = lib.mkOption {
         default = pkgs.buildkite-agent;
         defaultText = lib.literalExpression "pkgs.buildkite-agent";
-        description = lib.mdDoc "Which buildkite-agent derivation to use";
+        description = "Which buildkite-agent derivation to use";
         type = lib.types.package;
       };
 
       dataDir = lib.mkOption {
         default = "/var/lib/buildkite-agent-${name}";
-        description = lib.mdDoc "The workdir for the agent";
+        description = "The workdir for the agent";
         type = lib.types.str;
       };
 
       extraGroups = lib.mkOption {
         default = [ "keys" ];
-        description = lib.mdDoc "Groups the user for this buildkite agent should belong to";
+        description = "Groups the user for this buildkite agent should belong to";
         type = lib.types.listOf lib.types.str;
       };
 
       runtimePackages = lib.mkOption {
         default = [ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ];
         defaultText = lib.literalExpression "[ pkgs.bash pkgs.gnutar pkgs.gzip pkgs.git pkgs.nix ]";
-        description = lib.mdDoc "Add programs to the buildkite-agent environment";
+        description = "Add programs to the buildkite-agent environment";
         type = lib.types.listOf lib.types.package;
       };
 
       tokenPath = lib.mkOption {
         type = lib.types.path;
-        description = lib.mdDoc ''
+        description = ''
           The token from your Buildkite "Agents" page.
 
           A run-time path to the token file, which is supposed to be provisioned
@@ -61,7 +61,7 @@ let
       name = lib.mkOption {
         type = lib.types.str;
         default = "%hostname-${name}-%n";
-        description = lib.mdDoc ''
+        description = ''
           The name of the agent as seen in the buildkite dashboard.
         '';
       };
@@ -70,7 +70,7 @@ let
         type = lib.types.attrsOf (lib.types.either lib.types.str (lib.types.listOf lib.types.str));
         default = { };
         example = { queue = "default"; docker = "true"; ruby2 = "true"; };
-        description = lib.mdDoc ''
+        description = ''
           Tags for the agent.
         '';
       };
@@ -79,7 +79,7 @@ let
         type = lib.types.lines;
         default = "";
         example = "debug=true";
-        description = lib.mdDoc ''
+        description = ''
           Extra lines to be added verbatim to the configuration file.
         '';
       };
@@ -91,7 +91,7 @@ let
         ## don't end up in the Nix store.
         apply = final: if final == null then null else toString final;
 
-        description = lib.mdDoc ''
+        description = ''
           OpenSSH private key
 
           A run-time path to the key file, which is supposed to be provisioned
@@ -108,7 +108,7 @@ let
               export SECRET_VAR=`head -1 /run/keys/secret`
             ''';
           }'';
-        description = lib.mdDoc ''
+        description = ''
           "Agent" hooks to install.
           See <https://buildkite.com/docs/agent/v3/hooks> for possible options.
         '';
@@ -118,7 +118,7 @@ let
         type = lib.types.path;
         default = hooksDir config.hooks;
         defaultText = lib.literalMD "generated from {option}`services.buildkite-agents.<name>.hooks`";
-        description = lib.mdDoc ''
+        description = ''
           Path to the directory storing the hooks.
           Consider using {option}`services.buildkite-agents.<name>.hooks.<name>`
           instead.
@@ -129,7 +129,7 @@ let
         type = lib.types.str;
         default = "${pkgs.bash}/bin/bash -e -c";
         defaultText = lib.literalExpression ''"''${pkgs.bash}/bin/bash -e -c"'';
-        description = lib.mdDoc ''
+        description = ''
           Command that buildkite-agent 3 will execute when it spawns a shell.
         '';
       };
@@ -142,7 +142,7 @@ in
   options.services.buildkite-agents = lib.mkOption {
     type = lib.types.attrsOf (lib.types.submodule buildkiteOptions);
     default = { };
-    description = lib.mdDoc ''
+    description = ''
       Attribute set of buildkite agents.
       The attribute key is combined with the hostname and a unique integer to
       create the final agent name. This can be overridden by setting the `name`
diff --git a/nixos/modules/services/continuous-integration/gitea-actions-runner.nix b/nixos/modules/services/continuous-integration/gitea-actions-runner.nix
index fa26ab3ecd22c..c3edba52433f6 100644
--- a/nixos/modules/services/continuous-integration/gitea-actions-runner.nix
+++ b/nixos/modules/services/continuous-integration/gitea-actions-runner.nix
@@ -60,17 +60,17 @@ in
 
     instances = mkOption {
       default = {};
-      description = lib.mdDoc ''
+      description = ''
         Gitea Actions Runner instances.
       '';
       type = attrsOf (submodule {
         options = {
-          enable = mkEnableOption (lib.mdDoc "Gitea Actions Runner instance");
+          enable = mkEnableOption "Gitea Actions Runner instance";
 
           name = mkOption {
             type = str;
             example = literalExpression "config.networking.hostName";
-            description = lib.mdDoc ''
+            description = ''
               The name identifying the runner instance towards the Gitea/Forgejo instance.
             '';
           };
@@ -78,7 +78,7 @@ in
           url = mkOption {
             type = str;
             example = "https://forge.example.com";
-            description = lib.mdDoc ''
+            description = ''
               Base URL of your Gitea/Forgejo instance.
             '';
           };
@@ -86,7 +86,7 @@ in
           token = mkOption {
             type = nullOr str;
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Plain token to register at the configured Gitea/Forgejo instance.
             '';
           };
@@ -94,7 +94,7 @@ in
           tokenFile = mkOption {
             type = nullOr (either str path);
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Path to an environment file, containing the `TOKEN` environment
               variable, that holds a token to register at the configured
               Gitea/Forgejo instance.
@@ -113,7 +113,7 @@ in
                 #"native:host"
               ]
             '';
-            description = lib.mdDoc ''
+            description = ''
               Labels used to map jobs to their runtime environment. Changing these
               labels currently requires a new registration token.
 
@@ -122,7 +122,7 @@ in
             '';
           };
           settings = mkOption {
-            description = lib.mdDoc ''
+            description = ''
               Configuration for `act_runner daemon`.
               See https://gitea.com/gitea/act_runner/src/branch/main/internal/pkg/config/config.example.yaml for an example configuration
             '';
@@ -158,7 +158,7 @@ in
                 wget
               ]
             '';
-            description = lib.mdDoc ''
+            description = ''
               List of packages, that are available to actions, when the runner is configured
               with a host execution label.
             '';
diff --git a/nixos/modules/services/continuous-integration/github-runner/options.nix b/nixos/modules/services/continuous-integration/github-runner/options.nix
index 193261fc2a9f8..6ace6a1b187fc 100644
--- a/nixos/modules/services/continuous-integration/github-runner/options.nix
+++ b/nixos/modules/services/continuous-integration/github-runner/options.nix
@@ -6,7 +6,7 @@
 with lib;
 {
   options.services.github-runners = mkOption {
-    description = mdDoc ''
+    description = ''
       Multiple GitHub Runners.
     '';
     example = {
@@ -30,7 +30,7 @@ with lib;
         enable = mkOption {
           default = false;
           example = true;
-          description = mdDoc ''
+          description = ''
             Whether to enable GitHub Actions runner.
 
             Note: GitHub recommends using self-hosted runners with private repositories only. Learn more here:
@@ -41,7 +41,7 @@ with lib;
 
         url = mkOption {
           type = types.str;
-          description = mdDoc ''
+          description = ''
             Repository to add the runner to.
 
             Changing this option triggers a new runner registration.
@@ -59,7 +59,7 @@ with lib;
 
         tokenFile = mkOption {
           type = types.path;
-          description = mdDoc ''
+          description = ''
             The full path to a file which contains either
 
             * a fine-grained personal access token (PAT),
@@ -102,7 +102,7 @@ with lib;
 
         name = mkOption {
           type = types.nullOr types.str;
-          description = mdDoc ''
+          description = ''
             Name of the runner to configure. If null, defaults to the hostname.
 
             Changing this option triggers a new runner registration.
@@ -113,7 +113,7 @@ with lib;
 
         runnerGroup = mkOption {
           type = types.nullOr types.str;
-          description = mdDoc ''
+          description = ''
             Name of the runner group to add this runner to (defaults to the default runner group).
 
             Changing this option triggers a new runner registration.
@@ -123,7 +123,7 @@ with lib;
 
         extraLabels = mkOption {
           type = types.listOf types.str;
-          description = mdDoc ''
+          description = ''
             Extra labels in addition to the default (unless disabled through the `noDefaultLabels` option).
 
             Changing this option triggers a new runner registration.
@@ -134,7 +134,7 @@ with lib;
 
         noDefaultLabels = mkOption {
           type = types.bool;
-          description = mdDoc ''
+          description = ''
             Disables adding the default labels. Also see the `extraLabels` option.
 
             Changing this option triggers a new runner registration.
@@ -144,7 +144,7 @@ with lib;
 
         replace = mkOption {
           type = types.bool;
-          description = mdDoc ''
+          description = ''
             Replace any existing runner with the same name.
 
             Without this flag, registering a new runner with the same name fails.
@@ -154,7 +154,7 @@ with lib;
 
         extraPackages = mkOption {
           type = types.listOf types.package;
-          description = mdDoc ''
+          description = ''
             Extra packages to add to `PATH` of the service to make them available to workflows.
           '';
           default = [ ];
@@ -162,7 +162,7 @@ with lib;
 
         extraEnvironment = mkOption {
           type = types.attrs;
-          description = mdDoc ''
+          description = ''
             Extra environment variables to set for the runner, as an attrset.
           '';
           example = {
@@ -173,7 +173,7 @@ with lib;
 
         serviceOverrides = mkOption {
           type = types.attrs;
-          description = mdDoc ''
+          description = ''
             Modify the systemd service. Can be used to, e.g., adjust the sandboxing options.
             See {manpage}`systemd.exec(5)` for more options.
           '';
@@ -188,7 +188,7 @@ with lib;
 
         ephemeral = mkOption {
           type = types.bool;
-          description = mdDoc ''
+          description = ''
             If enabled, causes the following behavior:
 
             - Passes the `--ephemeral` flag to the runner configuration script
@@ -208,7 +208,7 @@ with lib;
 
         user = mkOption {
           type = types.nullOr types.str;
-          description = mdDoc ''
+          description = ''
             User under which to run the service.
 
             If this option and the `group` option is set to `null`,
@@ -222,7 +222,7 @@ with lib;
 
         group = mkOption {
           type = types.nullOr types.str;
-          description = mdDoc ''
+          description = ''
             Group under which to run the service.
 
             The effect of this option depends on the value of the `user` option:
@@ -241,7 +241,7 @@ with lib;
 
         workDir = mkOption {
           type = with types; nullOr str;
-          description = mdDoc ''
+          description = ''
             Working directory, available as `$GITHUB_WORKSPACE` during workflow runs
             and used as a default for [repository checkouts](https://github.com/actions/checkout).
             The service cleans this directory on every service start.
@@ -256,7 +256,7 @@ with lib;
         nodeRuntimes = mkOption {
           type = with types; nonEmptyListOf (enum [ "node20" ]);
           default = [ "node20" ];
-          description = mdDoc ''
+          description = ''
             List of Node.js runtimes the runner should support.
           '';
         };
diff --git a/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixos/modules/services/continuous-integration/gitlab-runner.nix
index 05b2449936bcd..62c62c5d2360e 100644
--- a/nixos/modules/services/continuous-integration/gitlab-runner.nix
+++ b/nixos/modules/services/continuous-integration/gitlab-runner.nix
@@ -151,11 +151,11 @@ let
   '';
 in {
   options.services.gitlab-runner = {
-    enable = mkEnableOption (lib.mdDoc "Gitlab Runner");
+    enable = mkEnableOption "Gitlab Runner";
     configFile = mkOption {
       type = types.nullOr types.path;
       default = null;
-      description = lib.mdDoc ''
+      description = ''
         Configuration file for gitlab-runner.
 
         {option}`configFile` takes precedence over {option}`services`.
@@ -172,7 +172,7 @@ in {
         freeformType = (pkgs.formats.json { }).type;
       };
       default = { };
-      description = lib.mdDoc ''
+      description = ''
         Global gitlab-runner configuration. See
         <https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-global-section>
         for supported values.
@@ -181,7 +181,7 @@ in {
     gracefulTermination = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Finish all remaining jobs before stopping.
         If not set gitlab-runner will stop immediately without waiting
         for jobs to finish, which will lead to failed builds.
@@ -191,7 +191,7 @@ in {
       type = types.str;
       default = "infinity";
       example = "5min 20s";
-      description = lib.mdDoc ''
+      description = ''
         Time to wait until a graceful shutdown is turned into a forceful one.
       '';
     };
@@ -201,12 +201,12 @@ in {
     extraPackages = mkOption {
       type = types.listOf types.package;
       default = [ ];
-      description = lib.mdDoc ''
+      description = ''
         Extra packages to add to PATH for the gitlab-runner process.
       '';
     };
     services = mkOption {
-      description = lib.mdDoc "GitLab Runner services.";
+      description = "GitLab Runner services.";
       default = { };
       example = literalExpression ''
         {
@@ -288,7 +288,7 @@ in {
         options = {
           registrationConfigFile = mkOption {
             type = types.path;
-            description = lib.mdDoc ''
+            description = ''
               Absolute path to a file with environment variables
               used for gitlab-runner registration.
               A list of all supported environment variables can be found in
@@ -308,7 +308,7 @@ in {
             type = types.listOf types.str;
             default = [ ];
             example = [ "--docker-helper-image my/gitlab-runner-helper" ];
-            description = lib.mdDoc ''
+            description = ''
               Extra command-line flags passed to
               `gitlab-runner register`.
               Execute `gitlab-runner register --help`
@@ -319,7 +319,7 @@ in {
             type = types.attrsOf types.str;
             default = { };
             example = { NAME = "value"; };
-            description = lib.mdDoc ''
+            description = ''
               Custom environment variables injected to build environment.
               For secrets you can use {option}`registrationConfigFile`
               with `RUNNER_ENV` variable set.
@@ -328,14 +328,14 @@ in {
           description = mkOption {
             type = types.nullOr types.str;
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Name/description of the runner.
             '';
           };
           executor = mkOption {
             type = types.str;
             default = "docker";
-            description = lib.mdDoc ''
+            description = ''
               Select executor, eg. shell, docker, etc.
               See [runner documentation](https://docs.gitlab.com/runner/executors/README.html) for more information.
             '';
@@ -344,7 +344,7 @@ in {
             type = types.nullOr types.path;
             default = null;
             example = "/var/lib/gitlab-runner/builds";
-            description = lib.mdDoc ''
+            description = ''
               Absolute path to a directory where builds will be stored
               in context of selected executor (Locally, Docker, SSH).
             '';
@@ -353,14 +353,14 @@ in {
             type = types.nullOr types.str;
             default = null;
             example = "http://gitlab.example.local";
-            description = lib.mdDoc ''
+            description = ''
               Overwrite the URL for the GitLab instance. Used if the Runner can’t connect to GitLab on the URL GitLab exposes itself.
             '';
           };
           dockerImage = mkOption {
             type = types.nullOr types.str;
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Docker image to be used.
             '';
           };
@@ -368,7 +368,7 @@ in {
             type = types.listOf types.str;
             default = [ ];
             example = [ "/var/run/docker.sock:/var/run/docker.sock" ];
-            description = lib.mdDoc ''
+            description = ''
               Bind-mount a volume and create it
               if it doesn't exist prior to mounting.
             '';
@@ -376,14 +376,14 @@ in {
           dockerDisableCache = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Disable all container caching.
             '';
           };
           dockerPrivileged = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Give extended privileges to container.
             '';
           };
@@ -391,7 +391,7 @@ in {
             type = types.listOf types.str;
             default = [ ];
             example = [ "other-host:127.0.0.1" ];
-            description = lib.mdDoc ''
+            description = ''
               Add a custom host-to-IP mapping.
             '';
           };
@@ -399,7 +399,7 @@ in {
             type = types.listOf types.str;
             default = [ ];
             example = [ "ruby:*" "python:*" "php:*" "my.registry.tld:5000/*:*" ];
-            description = lib.mdDoc ''
+            description = ''
               Whitelist allowed images.
             '';
           };
@@ -407,21 +407,21 @@ in {
             type = types.listOf types.str;
             default = [ ];
             example = [ "postgres:9" "redis:*" "mysql:*" ];
-            description = lib.mdDoc ''
+            description = ''
               Whitelist allowed services.
             '';
           };
           preCloneScript = mkOption {
             type = types.nullOr types.path;
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Runner-specific command script executed before code is pulled.
             '';
           };
           preBuildScript = mkOption {
             type = types.nullOr types.path;
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Runner-specific command script executed after code is pulled,
               just before build executes.
             '';
@@ -429,7 +429,7 @@ in {
           postBuildScript = mkOption {
             type = types.nullOr types.path;
             default = null;
-            description = lib.mdDoc ''
+            description = ''
               Runner-specific command script executed after code is pulled
               and just after build executes.
             '';
@@ -437,14 +437,14 @@ in {
           tagList = mkOption {
             type = types.listOf types.str;
             default = [ ];
-            description = lib.mdDoc ''
+            description = ''
               Tag list.
             '';
           };
           runUntagged = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               Register to run untagged builds; defaults to
               `true` when {option}`tagList` is empty.
             '';
@@ -452,7 +452,7 @@ in {
           limit = mkOption {
             type = types.int;
             default = 0;
-            description = lib.mdDoc ''
+            description = ''
               Limit how many jobs can be handled concurrently by this service.
               0 (default) simply means don't limit.
             '';
@@ -460,14 +460,14 @@ in {
           requestConcurrency = mkOption {
             type = types.int;
             default = 0;
-            description = lib.mdDoc ''
+            description = ''
               Limit number of concurrent requests for new jobs from GitLab.
             '';
           };
           maximumTimeout = mkOption {
             type = types.int;
             default = 0;
-            description = lib.mdDoc ''
+            description = ''
               What is the maximum timeout (in seconds) that will be set for
               job when using this Runner. 0 (default) simply means don't limit.
             '';
@@ -475,7 +475,7 @@ in {
           protected = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               When set to true Runner will only run on pipelines
               triggered on protected branches.
             '';
@@ -483,7 +483,7 @@ in {
           debugTraceDisabled = mkOption {
             type = types.bool;
             default = false;
-            description = lib.mdDoc ''
+            description = ''
               When set to true Runner will disable the possibility of
               using the `CI_DEBUG_TRACE` feature.
             '';
@@ -495,7 +495,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to periodically prune gitlab runner's Docker resources. If
           enabled, a systemd timer will run {command}`clear-docker-cache` as
           specified by the `dates` option.
@@ -506,7 +506,7 @@ in {
         type = types.listOf types.str;
         default = [ ];
         example = [ "prune" ];
-        description = lib.mdDoc ''
+        description = ''
           Any additional flags passed to {command}`clear-docker-cache`.
         '';
       };
@@ -514,7 +514,7 @@ in {
       dates = mkOption {
         default = "weekly";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specification (in the format described by
           {manpage}`systemd.time(7)`) of the time at
           which the prune will occur.
@@ -525,7 +525,7 @@ in {
         default = config.virtualisation.docker.package;
         defaultText = literalExpression "config.virtualisation.docker.package";
         example = literalExpression "pkgs.docker";
-        description = lib.mdDoc "Docker package to use for clearing up docker cache.";
+        description = "Docker package to use for clearing up docker cache.";
       };
     };
   };
diff --git a/nixos/modules/services/continuous-integration/gocd-agent/default.nix b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
index c0d752443a160..0e61b253f17ee 100644
--- a/nixos/modules/services/continuous-integration/gocd-agent/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-agent/default.nix
@@ -8,12 +8,12 @@ let
 in {
   options = {
     services.gocd-agent = {
-      enable = mkEnableOption (lib.mdDoc "gocd-agent");
+      enable = mkEnableOption "gocd-agent";
 
       user = mkOption {
         default = "gocd-agent";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User the Go.CD agent should execute under.
         '';
       };
@@ -21,7 +21,7 @@ in {
       group = mkOption {
         default = "gocd-agent";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           If the default user "gocd-agent" is configured then this is the primary
           group of that user.
         '';
@@ -31,7 +31,7 @@ in {
         type = types.listOf types.str;
         default = [ ];
         example = [ "wheel" "docker" ];
-        description = lib.mdDoc ''
+        description = ''
           List of extra groups that the "gocd-agent" user should be a part of.
         '';
       };
@@ -40,7 +40,7 @@ in {
         default = [ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ];
         defaultText = literalExpression "[ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ]";
         type = types.listOf types.package;
-        description = lib.mdDoc ''
+        description = ''
           Packages to add to PATH for the Go.CD agent process.
         '';
       };
@@ -53,7 +53,7 @@ in {
           agent.auto.register.environments=QA,Performance
           agent.auto.register.hostname=Agent01
         '';
-        description = lib.mdDoc ''
+        description = ''
           Agent registration configuration.
         '';
       };
@@ -61,7 +61,7 @@ in {
       goServer = mkOption {
         default = "https://127.0.0.1:8154/go";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           URL of the GoCD Server to attach the Go.CD Agent to.
         '';
       };
@@ -69,7 +69,7 @@ in {
       workDir = mkOption {
         default = "/var/lib/go-agent";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the working directory in which the Go.CD agent java archive resides.
         '';
       };
@@ -77,7 +77,7 @@ in {
       initialJavaHeapSize = mkOption {
         default = "128m";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the initial java heap memory size for the Go.CD agent java process.
         '';
       };
@@ -85,7 +85,7 @@ in {
       maxJavaHeapMemory = mkOption {
         default = "256m";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the java maximum heap memory size for the Go.CD agent java process.
         '';
       };
@@ -108,7 +108,7 @@ in {
             "-Djava.security.egd=file:/dev/./urandom"
           ]
         '';
-        description = lib.mdDoc ''
+        description = ''
           Specifies startup command line arguments to pass to Go.CD agent
           java process.
         '';
@@ -127,7 +127,7 @@ in {
           "-XX:+PrintGCDetails"
           "-XX:+PrintGC"
         ];
-        description = lib.mdDoc ''
+        description = ''
           Specifies additional command line arguments to pass to Go.CD agent
           java process.  Example contains debug and gcLog arguments.
         '';
@@ -136,7 +136,7 @@ in {
       environment = mkOption {
         default = { };
         type = with types; attrsOf str;
-        description = lib.mdDoc ''
+        description = ''
           Additional environment variables to be passed to the Go.CD agent process.
           As a base environment, Go.CD agent receives NIX_PATH from
           {option}`environment.sessionVariables`, NIX_REMOTE is set to
diff --git a/nixos/modules/services/continuous-integration/gocd-server/default.nix b/nixos/modules/services/continuous-integration/gocd-server/default.nix
index bf7fd529bfca3..a1fb740c269d5 100644
--- a/nixos/modules/services/continuous-integration/gocd-server/default.nix
+++ b/nixos/modules/services/continuous-integration/gocd-server/default.nix
@@ -8,12 +8,12 @@ let
 in {
   options = {
     services.gocd-server = {
-      enable = mkEnableOption (lib.mdDoc "gocd-server");
+      enable = mkEnableOption "gocd-server";
 
       user = mkOption {
         default = "gocd-server";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User the Go.CD server should execute under.
         '';
       };
@@ -21,7 +21,7 @@ in {
       group = mkOption {
         default = "gocd-server";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           If the default user "gocd-server" is configured then this is the primary group of that user.
         '';
       };
@@ -30,7 +30,7 @@ in {
         default = [ ];
         type = types.listOf types.str;
         example = [ "wheel" "docker" ];
-        description = lib.mdDoc ''
+        description = ''
           List of extra groups that the "gocd-server" user should be a part of.
         '';
       };
@@ -39,7 +39,7 @@ in {
         default = "0.0.0.0";
         example = "localhost";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the bind address on which the Go.CD server HTTP interface listens.
         '';
       };
@@ -47,7 +47,7 @@ in {
       port = mkOption {
         default = 8153;
         type = types.port;
-        description = lib.mdDoc ''
+        description = ''
           Specifies port number on which the Go.CD server HTTP interface listens.
         '';
       };
@@ -55,7 +55,7 @@ in {
       sslPort = mkOption {
         default = 8154;
         type = types.int;
-        description = lib.mdDoc ''
+        description = ''
           Specifies port number on which the Go.CD server HTTPS interface listens.
         '';
       };
@@ -63,7 +63,7 @@ in {
       workDir = mkOption {
         default = "/var/lib/go-server";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the working directory in which the Go.CD server java archive resides.
         '';
       };
@@ -72,7 +72,7 @@ in {
         default = [ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ];
         defaultText = literalExpression "[ pkgs.stdenv pkgs.jre pkgs.git config.programs.ssh.package pkgs.nix ]";
         type = types.listOf types.package;
-        description = lib.mdDoc ''
+        description = ''
           Packages to add to PATH for the Go.CD server's process.
         '';
       };
@@ -80,7 +80,7 @@ in {
       initialJavaHeapSize = mkOption {
         default = "512m";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the initial java heap memory size for the Go.CD server's java process.
         '';
       };
@@ -88,7 +88,7 @@ in {
       maxJavaHeapMemory = mkOption {
         default = "1024m";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the java maximum heap memory size for the Go.CD server's java process.
         '';
       };
@@ -126,7 +126,7 @@ in {
           ]
         '';
 
-        description = lib.mdDoc ''
+        description = ''
           Specifies startup command line arguments to pass to Go.CD server
           java process.
         '';
@@ -145,7 +145,7 @@ in {
           "-XX:+PrintGCDetails"
           "-XX:+PrintGC"
         ];
-        description = lib.mdDoc ''
+        description = ''
           Specifies additional command line arguments to pass to Go.CD server's
           java process.  Example contains debug and gcLog arguments.
         '';
@@ -154,7 +154,7 @@ in {
       environment = mkOption {
         default = { };
         type = with types; attrsOf str;
-        description = lib.mdDoc ''
+        description = ''
           Additional environment variables to be passed to the gocd-server process.
           As a base environment, gocd-server receives NIX_PATH from
           {option}`environment.sessionVariables`, NIX_REMOTE is set to
diff --git a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
index 7d33989044deb..a0d4a78a5f345 100644
--- a/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
+++ b/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -36,7 +36,7 @@ in
     enable = mkOption {
       type = types.bool;
       default = false;
-      description = lib.mdDoc ''
+      description = ''
         Enable to run Hercules CI Agent as a system service.
 
         [Hercules CI](https://hercules-ci.com) is a
@@ -47,7 +47,7 @@ in
     };
     package = mkPackageOption pkgs "hercules-ci-agent" { };
     settings = mkOption {
-      description = lib.mdDoc ''
+      description = ''
         These settings are written to the `agent.toml` file.
 
         Not all settings are listed as options, can be set nonetheless.
@@ -67,7 +67,7 @@ in
       type = types.path;
       internal = true;
       defaultText = lib.literalMD "generated `hercules-ci-agent.toml`";
-      description = lib.mdDoc ''
+      description = ''
         The fully assembled config file.
       '';
     };
diff --git a/nixos/modules/services/continuous-integration/hercules-ci-agent/settings.nix b/nixos/modules/services/continuous-integration/hercules-ci-agent/settings.nix
index 8eb902313ee8f..e6e73090d4be6 100644
--- a/nixos/modules/services/continuous-integration/hercules-ci-agent/settings.nix
+++ b/nixos/modules/services/continuous-integration/hercules-ci-agent/settings.nix
@@ -13,7 +13,7 @@ let
     freeformType = format.type;
     options = {
       apiBaseUrl = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           API base URL that the agent will connect to.
 
           When using Hercules CI Enterprise, set this to the URL where your
@@ -25,12 +25,12 @@ let
       baseDirectory = mkOption {
         type = types.path;
         default = "/var/lib/hercules-ci-agent";
-        description = lib.mdDoc ''
+        description = ''
           State directory (secrets, work directory, etc) for agent
         '';
       };
       concurrentTasks = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Number of tasks to perform simultaneously.
 
           A task is a single derivation build, an evaluation or an effect run.
@@ -54,7 +54,7 @@ let
         '';
       };
       labels = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           A key-value map of user data.
 
           This data will be available to organization members in the dashboard and API.
@@ -73,7 +73,7 @@ let
         '';
       };
       workDirectory = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
         '';
         type = types.path;
@@ -81,7 +81,7 @@ let
         defaultText = literalExpression ''baseDirectory + "/work"'';
       };
       staticSecretsDirectory = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           This is the default directory to look for statically configured secrets like `cluster-join-token.key`.
 
           See also `clusterJoinTokenPath` and `binaryCachesPath` for fine-grained configuration.
@@ -91,7 +91,7 @@ let
         defaultText = literalExpression ''baseDirectory + "/secrets"'';
       };
       clusterJoinTokenPath = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Location of the cluster-join-token.key file.
 
           You can retrieve the contents of the file when creating a new agent via
@@ -108,7 +108,7 @@ let
         defaultText = literalExpression ''staticSecretsDirectory + "/cluster-join-token.key"'';
       };
       binaryCachesPath = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Path to a JSON file containing binary cache secret keys.
 
           As these values are confidential, they should not be in the store, but
@@ -122,7 +122,7 @@ let
         defaultText = literalExpression ''staticSecretsDirectory + "/binary-caches.json"'';
       };
       secretsJsonPath = mkOption {
-        description = lib.mdDoc ''
+        description = ''
           Path to a JSON file containing secrets for effects.
 
           As these values are confidential, they should not be in the store, but
diff --git a/nixos/modules/services/continuous-integration/hydra/default.nix b/nixos/modules/services/continuous-integration/hydra/default.nix
index 10e1f0532c849..23f07eb64b92d 100644
--- a/nixos/modules/services/continuous-integration/hydra/default.nix
+++ b/nixos/modules/services/continuous-integration/hydra/default.nix
@@ -78,7 +78,7 @@ in
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to run Hydra services.
         '';
       };
@@ -87,7 +87,7 @@ in
         type = types.str;
         default = localDB;
         example = "dbi:Pg:dbname=hydra;host=postgres.example.org;user=foo;";
-        description = lib.mdDoc ''
+        description = ''
           The DBI string for Hydra database connection.
 
           NOTE: Attempts to set `application_name` will be overridden by
@@ -101,7 +101,7 @@ in
 
       hydraURL = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           The base URL for the Hydra webserver instance. Used for links in emails.
         '';
       };
@@ -110,7 +110,7 @@ in
         type = types.str;
         default = "*";
         example = "localhost";
-        description = lib.mdDoc ''
+        description = ''
           The hostname or address to listen on or `*` to listen
           on all interfaces.
         '';
@@ -119,7 +119,7 @@ in
       port = mkOption {
         type = types.port;
         default = 3000;
-        description = lib.mdDoc ''
+        description = ''
           TCP port the web server should listen to.
         '';
       };
@@ -127,7 +127,7 @@ in
       minimumDiskFree = mkOption {
         type = types.int;
         default = 0;
-        description = lib.mdDoc ''
+        description = ''
           Threshold of minimum disk space (GiB) to determine if the queue runner should run or not.
         '';
       };
@@ -135,14 +135,14 @@ in
       minimumDiskFreeEvaluator = mkOption {
         type = types.int;
         default = 0;
-        description = lib.mdDoc ''
+        description = ''
           Threshold of minimum disk space (GiB) to determine if the evaluator should run or not.
         '';
       };
 
       notificationSender = mkOption {
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Sender email address used for email notifications.
         '';
       };
@@ -151,7 +151,7 @@ in
         type = types.nullOr types.str;
         default = null;
         example = "localhost";
-        description = lib.mdDoc ''
+        description = ''
           Hostname of the SMTP server to use to send email.
         '';
       };
@@ -159,7 +159,7 @@ in
       tracker = mkOption {
         type = types.str;
         default = "";
-        description = lib.mdDoc ''
+        description = ''
           Piece of HTML that is included on all pages.
         '';
       };
@@ -167,7 +167,7 @@ in
       logo = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = lib.mdDoc ''
+        description = ''
           Path to a file containing the logo of your Hydra instance.
         '';
       };
@@ -175,42 +175,42 @@ in
       debugServer = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc "Whether to run the server in debug mode.";
+        description = "Whether to run the server in debug mode.";
       };
 
       maxServers = mkOption {
         type = types.int;
         default = 25;
-        description = lib.mdDoc "Maximum number of starman workers to spawn.";
+        description = "Maximum number of starman workers to spawn.";
       };
 
       minSpareServers = mkOption {
         type = types.int;
         default = 4;
-        description = lib.mdDoc "Minimum number of spare starman workers to keep.";
+        description = "Minimum number of spare starman workers to keep.";
       };
 
       maxSpareServers = mkOption {
         type = types.int;
         default = 5;
-        description = lib.mdDoc "Maximum number of spare starman workers to keep.";
+        description = "Maximum number of spare starman workers to keep.";
       };
 
       extraConfig = mkOption {
         type = types.lines;
-        description = lib.mdDoc "Extra lines for the Hydra configuration.";
+        description = "Extra lines for the Hydra configuration.";
       };
 
       extraEnv = mkOption {
         type = types.attrsOf types.str;
         default = {};
-        description = lib.mdDoc "Extra environment variables for Hydra.";
+        description = "Extra environment variables for Hydra.";
       };
 
       gcRootsDir = mkOption {
         type = types.path;
         default = "/nix/var/nix/gcroots/hydra";
-        description = lib.mdDoc "Directory that holds Hydra garbage collector roots.";
+        description = "Directory that holds Hydra garbage collector roots.";
       };
 
       buildMachinesFiles = mkOption {
@@ -218,13 +218,13 @@ in
         default = optional (config.nix.buildMachines != []) "/etc/nix/machines";
         defaultText = literalExpression ''optional (config.nix.buildMachines != []) "/etc/nix/machines"'';
         example = [ "/etc/nix/machines" "/var/lib/hydra/provisioner/machines" ];
-        description = lib.mdDoc "List of files containing build machines.";
+        description = "List of files containing build machines.";
       };
 
       useSubstitutes = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to use binary caches for downloading store paths. Note that
           binary substitutions trigger (a potentially large number of) additional
           HTTP requests that slow down the queue monitor thread significantly.
diff --git a/nixos/modules/services/continuous-integration/jenkins/default.nix b/nixos/modules/services/continuous-integration/jenkins/default.nix
index d69cf4587aaba..7b671ba9ed9de 100644
--- a/nixos/modules/services/continuous-integration/jenkins/default.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/default.nix
@@ -9,7 +9,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to enable the jenkins continuous integration server.
         '';
       };
@@ -17,7 +17,7 @@ in {
       user = mkOption {
         default = "jenkins";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User the jenkins server should execute under.
         '';
       };
@@ -25,7 +25,7 @@ in {
       group = mkOption {
         default = "jenkins";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           If the default user "jenkins" is configured then this is the primary
           group of that user.
         '';
@@ -35,7 +35,7 @@ in {
         type = types.listOf types.str;
         default = [ ];
         example = [ "wheel" "dialout" ];
-        description = lib.mdDoc ''
+        description = ''
           List of extra groups that the "jenkins" user should be a part of.
         '';
       };
@@ -43,7 +43,7 @@ in {
       home = mkOption {
         default = "/var/lib/jenkins";
         type = types.path;
-        description = lib.mdDoc ''
+        description = ''
           The path to use as JENKINS_HOME. If the default user "jenkins" is configured then
           this is the home of the "jenkins" user.
         '';
@@ -53,7 +53,7 @@ in {
         default = "0.0.0.0";
         example = "localhost";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies the bind address on which the jenkins HTTP interface listens.
           The default is the wildcard address.
         '';
@@ -62,7 +62,7 @@ in {
       port = mkOption {
         default = 8080;
         type = types.port;
-        description = lib.mdDoc ''
+        description = ''
           Specifies port number on which the jenkins HTTP interface listens.
           The default is 8080.
         '';
@@ -72,7 +72,7 @@ in {
         default = "";
         example = "/jenkins";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           Specifies a urlPrefix to use with jenkins.
           If the example /jenkins is given, the jenkins server will be
           accessible using localhost:8080/jenkins.
@@ -85,7 +85,7 @@ in {
         default = [ pkgs.stdenv pkgs.git pkgs.jdk17 config.programs.ssh.package pkgs.nix ];
         defaultText = literalExpression "[ pkgs.stdenv pkgs.git pkgs.jdk17 config.programs.ssh.package pkgs.nix ]";
         type = types.listOf types.package;
-        description = lib.mdDoc ''
+        description = ''
           Packages to add to PATH for the jenkins process.
         '';
       };
@@ -93,7 +93,7 @@ in {
       environment = mkOption {
         default = { };
         type = with types; attrsOf str;
-        description = lib.mdDoc ''
+        description = ''
           Additional environment variables to be passed to the jenkins process.
           As a base environment, jenkins receives NIX_PATH from
           {option}`environment.sessionVariables`, NIX_REMOTE is set to
@@ -107,7 +107,7 @@ in {
       plugins = mkOption {
         default = null;
         type = types.nullOr (types.attrsOf types.package);
-        description = lib.mdDoc ''
+        description = ''
           A set of plugins to activate. Note that this will completely
           remove and replace any previously installed plugins. If you
           have manually-installed plugins that you want to keep while
@@ -124,7 +124,7 @@ in {
         type = types.listOf types.str;
         default = [ ];
         example = [ "--debug=9" ];
-        description = lib.mdDoc ''
+        description = ''
           Additional command line arguments to pass to Jenkins.
         '';
       };
@@ -133,7 +133,7 @@ in {
         type = types.listOf types.str;
         default = [ ];
         example = [ "-Xmx80m" ];
-        description = lib.mdDoc ''
+        description = ''
           Additional command line arguments to pass to the Java run time (as opposed to Jenkins).
         '';
       };
@@ -141,7 +141,7 @@ in {
       withCLI = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           Whether to make the CLI available.
 
           More info about the CLI available at
diff --git a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
index a8e3effd1f723..6400da13d3a84 100644
--- a/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/job-builder.nix
@@ -9,7 +9,7 @@ let
 in {
   options = {
     services.jenkins.jobBuilder = {
-      enable = mkEnableOption (mdDoc ''
+      enable = mkEnableOption ''
         the Jenkins Job Builder (JJB) service. It
         allows defining jobs for Jenkins in a declarative manner.
 
@@ -22,12 +22,12 @@ in {
 
         Please see the Jenkins Job Builder documentation for more info:
         <https://jenkins-job-builder.readthedocs.io/>
-      '');
+      '';
 
       accessUser = mkOption {
         default = "admin";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User id in Jenkins used to reload config.
         '';
       };
@@ -35,7 +35,7 @@ in {
       accessToken = mkOption {
         default = "";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User token in Jenkins used to reload config.
           WARNING: This token will be world readable in the Nix store. To keep
           it secret, use the {option}`accessTokenFile` option instead.
@@ -47,7 +47,7 @@ in {
         defaultText = literalExpression ''"''${config.services.jenkins.home}/secrets/initialAdminPassword"'';
         type = types.str;
         example = "/run/keys/jenkins-job-builder-access-token";
-        description = lib.mdDoc ''
+        description = ''
           File containing the API token for the {option}`accessUser`
           user.
         '';
@@ -62,7 +62,7 @@ in {
               builders:
                 - shell: echo 'Hello world!'
         '';
-        description = lib.mdDoc ''
+        description = ''
           Job descriptions for Jenkins Job Builder in YAML format.
         '';
       };
@@ -82,7 +82,7 @@ in {
             '''
           ]
         '';
-        description = lib.mdDoc ''
+        description = ''
           Job descriptions for Jenkins Job Builder in JSON format.
         '';
       };
@@ -100,7 +100,7 @@ in {
             }
           ]
         '';
-        description = lib.mdDoc ''
+        description = ''
           Job descriptions for Jenkins Job Builder in Nix format.
 
           This is a trivial wrapper around jsonJobs, using builtins.toJSON
diff --git a/nixos/modules/services/continuous-integration/jenkins/slave.nix b/nixos/modules/services/continuous-integration/jenkins/slave.nix
index 82d34a058c575..c0599a65b480a 100644
--- a/nixos/modules/services/continuous-integration/jenkins/slave.nix
+++ b/nixos/modules/services/continuous-integration/jenkins/slave.nix
@@ -14,7 +14,7 @@ in {
       enable = mkOption {
         type = types.bool;
         default = false;
-        description = lib.mdDoc ''
+        description = ''
           If true the system will be configured to work as a jenkins slave.
           If the system is also configured to work as a jenkins master then this has no effect.
           In progress: Currently only assures the jenkins user is configured.
@@ -24,7 +24,7 @@ in {
       user = mkOption {
         default = "jenkins";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           User the jenkins slave agent should execute under.
         '';
       };
@@ -32,7 +32,7 @@ in {
       group = mkOption {
         default = "jenkins";
         type = types.str;
-        description = lib.mdDoc ''
+        description = ''
           If the default slave agent user "jenkins" is configured then this is
           the primary group of that user.
         '';
@@ -41,7 +41,7 @@ in {
       home = mkOption {
         default = "/var/lib/jenkins";
         type = types.path;
-        description = lib.mdDoc ''
+        description = ''
           The path to use as JENKINS_HOME. If the default user "jenkins" is configured then
           this is the home of the "jenkins" user.
         '';
diff --git a/nixos/modules/services/continuous-integration/woodpecker/agents.nix b/nixos/modules/services/continuous-integration/woodpecker/agents.nix
index ef7bf3fd2a6e1..ce5926a246bbe 100644
--- a/nixos/modules/services/continuous-integration/woodpecker/agents.nix
+++ b/nixos/modules/services/continuous-integration/woodpecker/agents.nix
@@ -9,7 +9,7 @@ let
 
   agentModule = lib.types.submodule {
     options = {
-      enable = lib.mkEnableOption (lib.mdDoc "this Woodpecker-Agent. Agents execute tasks generated by a Server, every install will need one server and at least one agent");
+      enable = lib.mkEnableOption "this Woodpecker-Agent. Agents execute tasks generated by a Server, every install will need one server and at least one agent";
 
       package = lib.mkPackageOption pkgs "woodpecker-agent" { };
 
@@ -23,14 +23,14 @@ let
             DOCKER_HOST = "unix:///run/podman/podman.sock";
           }
         '';
-        description = lib.mdDoc "woodpecker-agent config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/agent-config)";
+        description = "woodpecker-agent config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/agent-config)";
       };
 
       extraGroups = lib.mkOption {
         type = lib.types.listOf lib.types.str;
         default = [ ];
         example = [ "podman" ];
-        description = lib.mdDoc ''
+        description = ''
           Additional groups for the systemd service.
         '';
       };
@@ -39,7 +39,7 @@ let
         type = lib.types.listOf lib.types.package;
         default = [ ];
         example = [ "" ];
-        description = lib.mdDoc ''
+        description = ''
           Additional packages that should be added to the agent's `PATH`.
           Mostly useful for the `local` backend.
         '';
@@ -49,7 +49,7 @@ let
         type = lib.types.listOf lib.types.path;
         default = [ ];
         example = [ "/var/secrets/woodpecker-agent.env" ];
-        description = lib.mdDoc ''
+        description = ''
           File to load environment variables
           from. This is helpful for specifying secrets.
           Example content of environmentFile:
@@ -151,7 +151,7 @@ in
             };
           }
         '';
-        description = lib.mdDoc "woodpecker-agents configurations";
+        description = "woodpecker-agents configurations";
       };
     };
   };
diff --git a/nixos/modules/services/continuous-integration/woodpecker/server.nix b/nixos/modules/services/continuous-integration/woodpecker/server.nix
index 4a0f15756c307..54d8da8a59e5e 100644
--- a/nixos/modules/services/continuous-integration/woodpecker/server.nix
+++ b/nixos/modules/services/continuous-integration/woodpecker/server.nix
@@ -13,7 +13,7 @@ in
 
   options = {
     services.woodpecker-server = {
-      enable = lib.mkEnableOption (lib.mdDoc "the Woodpecker-Server, a CI/CD application for automatic builds, deployments and tests");
+      enable = lib.mkEnableOption "the Woodpecker-Server, a CI/CD application for automatic builds, deployments and tests";
       package = lib.mkPackageOption pkgs "woodpecker-server" { };
       environment = lib.mkOption {
         default = { };
@@ -28,13 +28,13 @@ in
               WOODPECKER_GITEA_URL = "https://git.example.com";
             }
           '';
-        description = lib.mdDoc "woodpecker-server config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/server-config)";
+        description = "woodpecker-server config environment variables, for other options read the [documentation](https://woodpecker-ci.org/docs/administration/server-config)";
       };
       environmentFile = lib.mkOption {
         type = with lib.types; coercedTo path (f: [ f ]) (listOf path);
         default = [ ];
         example = [ "/root/woodpecker-server.env" ];
-        description = lib.mdDoc ''
+        description = ''
           File to load environment variables
           from. This is helpful for specifying secrets.
           Example content of environmentFile: