From a1f3679efdec437eaa92eb1e5ff1530ff3b3d4ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Antoine=20Beaupr=C3=A9?= <anarcat@debian.org>
Date: Thu, 11 Feb 2021 11:30:44 -0500
Subject: [PATCH] expand on job execution

---
 service/jenkins.md | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

diff --git a/service/jenkins.md b/service/jenkins.md
index f77ced07..dbcca15a 100644
--- a/service/jenkins.md
+++ b/service/jenkins.md
@@ -173,13 +173,33 @@ No Git consumers using SCM API plugin for: https://git.torproject.org/admin/tsa-
 
 Which comes straight out of the plain text output of the web hook.
 
+### Job execution
+
 The actual job configuration defines what happens next. But in
 general, the `jenkins/tools.git` repository has a lot of common code
 that gets ran in jobs. In practice, we generally copy-paste a bunch of
 stuff until things work.
 
-TODO: this is obviously incomplete, but it might not be worth walking
-through the entire `jenkins/tools.git` repository...
+NOTE: this is obviously incomplete, but it might not be worth walking
+through the entire `jenkins/tools.git` repository... A job generally
+will run a command line:
+
+    SUITE=buster ARCHITECTURE=amd64 /home/jenkins/jenkins-tools/slaves/linux/build-wrapper
+
+... which then runs inside a `buster_amd64.tar.gz` chroot on the
+builders. The `build-wrapper` takes care of unpacking the chroot and
+find the right job script to run.
+
+Scripts are generally the `build` command inside a directory, for
+example Hugo websites are built with
+[slaves/linux/hugo-website/build](https://gitweb.torproject.org/project/jenkins/tools.git/tree/slaves/linux/hugo-website/build), because the base name of the job
+template is `hugo-website`.. The build ends up in
+`RESULT/output.tar.gz`, which gets passed to the `install` job
+(e.g. `hugo-website-$site-install`). That job then ships the files off
+to the static source server for deployment.
+
+See [the static mirror jenkins docs](howto/static-component#jenkins-build-jobs) for more information on how
+static sites are built.
 
 ### Interfaces
 
-- 
GitLab