diff --git a/service/jenkins.md b/service/jenkins.md index f77ced07cbcf677e83b631db63e7455c034871f1..dbcca15a8d7069af6fa6d9b0b66f547f65e1a1d5 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