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