diff options
author | Julian Samaroo <jpsamaroo@jpsamaroo.me> | 2019-01-27 07:55:30 -0600 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-01-27 13:33:35 -0500 |
commit | 58380ae926453463b44802d71754bf7288434c22 (patch) | |
tree | 9a14723c8bf16195f37fa304f1bcbce78c3a3b98 /builds.sr.ht/installation.md | |
parent | 04272f6c24939c157331aa26d26ed6979fcd37f5 (diff) | |
download | sr.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.md | 31 |
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. |