aboutsummaryrefslogtreecommitdiffstats
path: root/builds.sr.ht/installation.md
diff options
context:
space:
mode:
authorJulian Samaroo <jpsamaroo@jpsamaroo.me>2019-01-27 07:55:30 -0600
committerDrew DeVault <sir@cmpwn.com>2019-01-27 13:33:35 -0500
commit58380ae926453463b44802d71754bf7288434c22 (patch)
tree9a14723c8bf16195f37fa304f1bcbce78c3a3b98 /builds.sr.ht/installation.md
parent04272f6c24939c157331aa26d26ed6979fcd37f5 (diff)
downloadsr.ht-docs-58380ae926453463b44802d71754bf7288434c22.tar.gz
Elaborate on genimg script and bootstrapping, note that worker needs to be compiled
Diffstat (limited to 'builds.sr.ht/installation.md')
-rw-r--r--builds.sr.ht/installation.md31
1 files changed, 24 insertions, 7 deletions
diff --git a/builds.sr.ht/installation.md b/builds.sr.ht/installation.md
index 9c3e30b..46f9146 100644
--- a/builds.sr.ht/installation.md
+++ b/builds.sr.ht/installation.md
@@ -76,10 +76,26 @@ build of qemu and nothing else.
A `genimg` script is provided for each image which can be run from a working
image of that guest to produce a new image. You need to manually prepare a
working guest of each image type (that is, to build the Arch Linux image you
-need a working Arch Linux installation to bootstrap from). Then you can run the
-provided `genimg` to produce the disk image. A `build.yml` file is also provided
-for each image to build itself on your build infrastructure once you have it set
-up. It's recommended that you set up cron jobs to build fresh images frequently.
+need a working Arch Linux installation to bootstrap from). Then you can run
+the provided `genimg` to produce the disk image. You should read the genimg
+script to determine what dependencies need to be installed before it can be
+run to completion.
+
+The directory structure for bootable images should have the format
+images/$distro/$release/$arch/ with the root.img.qcow2 file within the $arch
+directory.
+
+A `build.yml` file is also provided for each image to build itself on your
+build infrastructure once you have it set up, which you should customize as
+necessary. It's recommended that you set up cron jobs to build fresh images
+frequently - a script at `contrib/submit_image_build` is provided for this
+purpose.
+
+Note: You will need nested virtualization enabled in order to build images
+from within a pre-existing build image (i.e. via the `build.yml` file). If you
+run into issues with `modprobe kvm_intel` within the genimg script, you can
+fix this by removing the module and then re-inserting it with `insmod
+kvm_intel.ko nested=1` in the directory containing the kernel module.
### Image-specific notes
@@ -144,6 +160,7 @@ files and directories here). Set `runner` to the hostname of the build runner.
You will need to configure nginx to serve the build logs directory in order for
build logs to appear correctly on the website.
-Once all of this is done, start the `builds.sr.ht-worker` service and it's off
-to the races. Submit builds on the master server and they should run correctly
-at this point.
+Once all of this is done, make sure the worker is compiled (with go 1.11 or
+later) by running `go build` in the worker/ directory, start the
+`builds.sr.ht-worker` service and it's off to the races. Submit builds on the
+master server and they should run correctly at this point.