Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | Fix issues with fetching builds for agents | Christopher Baines | 2020-04-25 |
| | | | | | | | Because the allocation plan can be replaced with one that's already out of date, including allocating builds that have been completed, guard against this here. This is a comprimise to avoid having to block operations when planning allocating builds. | ||
* | Add helpful output to the agent process | Christopher Baines | 2020-04-25 |
| | |||
* | Don't output the build log on the agent process | Christopher Baines | 2020-04-25 |
| | | | | | This isn't particularly helpful, especially as the agent process now handles the log file. | ||
* | Support sending and storing log files for builds | Christopher Baines | 2020-04-25 |
| | |||
* | Extract out call-with-streaming-http-request | Christopher Baines | 2020-04-25 |
| | |||
* | Restructure the post build actions | Christopher Baines | 2020-04-25 |
| | |||
* | Add options suited for providing substitutes | Christopher Baines | 2020-04-25 |
| | | | | | | | | | | Allow specifying build priority, although the allocator currently doesn't use this. Add --defer-allocation to allow inserting lots of builds without spending time re-computing the allocation for each one. Add --ensure-all-related-derivations-have-builds to make it easy to have a derivation, and all related derivations built at least once. Add --ignore-if-build-for-derivation-exists to make it easy to avoid building derivations again if that isn't the intention. | ||
* | Add datastore-list-related-derivations-with-no-build | Christopher Baines | 2020-04-25 |
| | | | | | Useful for finding out what derivations need to be built to ensure all related derivations have been built by the build coordinator. | ||
* | Add datastore-list-builds-for-derivation | Christopher Baines | 2020-04-25 |
| | |||
* | Add a hook to generate the files needed to provide substitutes | Christopher Baines | 2020-04-23 |
| | |||
* | Add datastore-list-build-outputs | Christopher Baines | 2020-04-23 |
| | |||
* | Add datastore-find-derivation-system | Christopher Baines | 2020-04-23 |
| | |||
* | Add a function to generate the string for a narinfo file | Christopher Baines | 2020-04-23 |
| | |||
* | Send over some metadata from the agent for each output | Christopher Baines | 2020-04-23 |
| | | | | | | This will hopefully make it easier to create narinfo files for the outputs. I think all of this information can be derived from the nar, but I'm not sure how to do that, so maybe this can eventually be removed. | ||
* | Add a hook to handle missing inputs | Christopher Baines | 2020-04-17 |
| | | | | | | | That submits new build jobs to build these missing inputs if appropriate. This means that you can tell the coordinator to build something, and it will automatically attempt to build the dependencies if they're missing. | ||
* | Switch the build-allocator thread to not use a channel | Christopher Baines | 2020-04-17 |
| | | | | | The put-message operation blocks, which doesn't work for triggering the allocation process. | ||
* | Only sleep in the agent when there are no builds | Christopher Baines | 2020-04-17 |
| | | | | The last time the agent checked. | ||
* | Switch to the fibers backend for the webserver | Christopher Baines | 2020-04-17 |
| | | | | This might help with using fibers for other things. | ||
* | Re-work how the datastore module re-exports things | Christopher Baines | 2020-04-17 |
| | | | | | This seems to avoid all the warnings, and fix the broken merge-generics behaviour. | ||
* | Add some more sqlite datastore functions | Christopher Baines | 2020-04-17 |
| | |||
* | Wrap transactions with some error handling | Christopher Baines | 2020-04-17 |
| | | | | To rollback when they fail. | ||
* | Copy a few SQlite options from Cuirass | Christopher Baines | 2020-04-17 |
| | | | | They'll probably help. | ||
* | Implement a couple of basic hooks | Christopher Baines | 2020-04-16 |
| | | | | This allows configurable code to be executed when builds succeed or fail. | ||
* | Add better error handling in to the agent | Christopher Baines | 2020-04-16 |
| | | | | So that it reports issues to the coordinator, rather than just crashing. | ||
* | Include finished builds in the agent for build query | Christopher Baines | 2020-04-16 |
| | |||
* | Improve build allocation | Christopher Baines | 2020-04-13 |
| | | | | | | | | | Move some of the code around, and trigger allocating builds via a thread if an agent fails to setup for a build and when a build succeeds/fails. This is important, as some setup failures can be handled by the build allocator, for example a build finishing may unblock other builds waiting for outputs it generates. | ||
* | Support emptying the build plan | Christopher Baines | 2020-04-13 |
| | | | | Previously, it would error trying to insert 0 records. | ||
* | Add missing import | Christopher Baines | 2020-04-13 |
| | |||
* | Don't allocate builds to agents where the setup previously failed | Christopher Baines | 2020-04-13 |
| | |||
* | Add datastore-fetch-setup-failures | Christopher Baines | 2020-04-13 |
| | |||
* | Fix printing out requests to the coordinator | Christopher Baines | 2020-04-13 |
| | |||
* | Support reporting setup failures to the coordinator | Christopher Baines | 2020-04-13 |
| | |||
* | Add datastore methods for handling setup failures | Christopher Baines | 2020-04-13 |
| | |||
* | Have agents run in a loop | Christopher Baines | 2020-04-13 |
| | | | | Perform a build, then query for the next one. | ||
* | Only download missing inputs if all have substitutes | Christopher Baines | 2020-04-13 |
| | | | | | | | To avoid potentially wasting time. Instead, report the missing inputs to the coordinator as soon as possible. The build may be scheduled on a different agent, so it might not be necessary to download the inputs which do have substitutes available. | ||
* | Add support for sending/receiving build results | Christopher Baines | 2020-04-13 |
| | |||
* | Add datastore-store-build-result | Christopher Baines | 2020-04-13 |
| | |||
* | Re-work how agents handle missing inputs | Christopher Baines | 2020-04-13 |
| | | | | Don't start the build if there are missing inputs. | ||
* | Use substitute-derivation in the coordinator | Christopher Baines | 2020-04-13 |
| | | | | So that it can read the derivation, and store the details in the database. | ||
* | Extract out substitute-derivation to the utils module | Christopher Baines | 2020-04-13 |
| | | | | So it can be used by the coordinator as well. | ||
* | Start storing outputs in a proper directory | Christopher Baines | 2020-04-13 |
| | |||
* | Add a coordinator function to find where an output is stored | Christopher Baines | 2020-04-13 |
| | | | | Or should be stored. | ||
* | Add a configuration value for a directory to store build outputs | Christopher Baines | 2020-04-13 |
| | |||
* | Add datastore-find-build-output | Christopher Baines | 2020-04-13 |
| | |||
* | Add datastore functions to find builds and derivation outputs | Christopher Baines | 2020-04-13 |
| | |||
* | Add initial support for sending/storing build outputs | Christopher Baines | 2020-04-13 |
| | |||
* | Hack support for chuncked request bodies in to Guile | Christopher Baines | 2020-04-13 |
| | | | | | | | | There's some support for using the chunked transfer encoding, but only for response bodies. Rather than returning a bytevector, return a port so that the data can be sent to a file, rather than having to store it all in memory first. | ||
* | Switch to the non-fibers web server | Christopher Baines | 2020-04-13 |
| | | | | | I'm not sure how to get requests with chunked bodies working with the fibers server. | ||
* | Add a function to make a custom port to handle base64 output | Christopher Baines | 2020-04-13 |
| | | | | This is to be used to send lzip compressed nar files back to the coordinator. | ||
* | Add datastore-agent-for-build | Christopher Baines | 2020-04-13 |
| | | | | So that the coordinator can find out what agent is assigned a build. |