aboutsummaryrefslogtreecommitdiff
path: root/app/services/govuk_guix/build_mini_environment.rb
Commit message (Collapse)AuthorAge
* Add a new AWS backend using Amazon Machine ImagesChristopher Baines2019-05-30
| | | | | | | | | | | | | | | | | | | | | | | The existing AWS backend uses system containers backed on to the AWS hosted NFS service (EFS). This has some advantages, but also some disadvantages. Using the EFS service allows building a container on one instance, with the state being held on the EFS, and then launching a new instance to run the container. Using EFS also provides persistence, at least beyond individual EC2 instances. However, build performance when using EFS is poor compared with a local store without the overhead of the network latency. Additionally, the startup speed of the container running off EFS is slow compared to local storage. This backend doesn't use EFS, instead the Guix store sits on instance storage. Rather than using a system container for a Mini Environment, an Amazon Machine Image (AMI) is built instead. The fast local storage makes builds faster, and using EBS storage for the Mini Envirnoments as well as not having the overhead of starting Ubuntu, then starting the container also makes startup faster.
* Start tracking which store paths are in useChristopher Baines2019-01-01
| | | | | This will enable garbage collection of the Guix store, without removing things that are still in use.
* Actually include the data snapshot when buildingChristopher Baines2018-07-01
|
* Neaten up SSH handlingChristopher Baines2018-06-24
| | | | | Explicitly use the specified private key where possible. Also, use a struct for the user, address and private key.
* Guard against invalid build outputsChristopher Baines2018-06-24
| | | | Which seem to be a possibility if the job is forcefully stopped.
* Add a Guix moduleChristopher Baines2018-06-23
| | | | Which contains an available_locally? function.
* Only copy the guix revision to the remote host if possibleChristopher Baines2018-06-23
|
* Replace the GovukGuix::BuildJobChristopher Baines2018-06-22
With a service that performs the same function, and use the MiniEnvironmentJob instead.