aboutsummaryrefslogtreecommitdiff
path: root/scripts/guix-build-coordinator.in
Commit message (Collapse)AuthorAge
...
* Implement deferring buildsChristopher Baines2020-12-27
| | | | | | | | | This isn't intended as some time based scheduling, but more as a way to slow down builds by deferring processing them until some point in the future. I'm intending to use this to test fixed output derivations. I can look up all the derivations I want to test, then defer the builds to run spread out across some period. This feature saves having to submit the builds gradually.
* Don't try to cancel processed buildsChristopher Baines2020-12-23
|
* Implement canceling builds in bulkChristopher Baines2020-12-22
| | | | Through the command line interface.
* Fix broken test in the basic allocatorChristopher Baines2020-12-22
| | | | processed, within this record is now a boolean.
* Make it possible to list builds via the command line interfaceChristopher Baines2020-12-21
|
* Guard against starting the coordinator for unknown commandsChristopher Baines2020-12-16
|
* Implement build cancelationChristopher Baines2020-12-16
|
* Fix a few places where the client-option-defaults were missingChristopher Baines2020-10-24
|
* Remove the other unnecessary underscoreChristopher Baines2020-10-23
|
* Fix filtering out unset hooksChristopher Baines2020-09-18
|
* Better describe the default hooksChristopher Baines2020-09-17
|
* Change the buffering configuration before importsChristopher Baines2020-09-16
| | | | Because some of the module inputs write output.
* Create a run-coordinator-service procedureChristopher Baines2020-09-16
| | | | | | This is moving in the direction of not having to use the script to start the service. I think for a Guix service definition, being able to specify some Guile code directly will be better.
* Move more coordinator service startup out of the scriptChristopher Baines2020-09-16
|
* Don't patch fibers, just use the different procedure directlyChristopher Baines2020-09-16
|
* Refactor the fibers server starting codeChristopher Baines2020-09-16
| | | | | More clearly split out the things that need to happen prior to run-fibers, and the things that can happen after.
* Handle string->uri conversion when parsing optionsChristopher Baines2020-09-16
|
* Extract call-with-sigint to the utils moduleChristopher Baines2020-09-16
|
* Explicitly use the current directory for the databaseChristopher Baines2020-09-16
| | | | By default. This avoids issues when sqitch is run with --chdir.
* Use the #:namespace argument for metric registriesChristopher Baines2020-08-31
|
* Use the guile-prometheus library for the metricsChristopher Baines2020-08-31
| | | | Which was extracted from the Guix Build Coordinator.
* Add a hook for when a build starts on an agentChristopher Baines2020-07-01
|
* Add a hook for when builds are submittedChristopher Baines2020-07-01
|
* Support adding tags to buildsChristopher Baines2020-05-31
|
* Use one thread for each type of hook eventChristopher Baines2020-05-25
| | | | | This will allow some parallel processing of hook events, at least those of different types.
* Support showing blocking buildsChristopher Baines2020-05-22
| | | | | This is useful to find builds that have failed, and in failing blocked other builds from being attempted.
* Fetch substitutes in a separate channelChristopher Baines2020-05-19
| | | | As I'm guessing this could block the thread for fibers.
* Fix the build show missing inputs functionalityChristopher Baines2020-05-19
|
* Make it possible to show builds for an outputChristopher Baines2020-05-19
|
* Convert the client actions to happen over HTTPChristopher Baines2020-05-17
| | | | | | | | | | | | There were a few issues with the previous approach, I was concerned about trying to write to the SQLite database from two processes, it's already segfaulting occasionally when accessing it from just one. Additionally, the client actions were already doing things that should happen in the coordinator process, like allocating builds. I'm trying to not turn this in to a web app, but not doing very well. Although having this information and these actions available over the network does make it possible to build a web app frontend, which I've had in mind.
* Use a variableChristopher Baines2020-05-17
|
* Change how triggering build allocations worksChristopher Baines2020-05-17
| | | | | Associate this with the coordinator, rather than having the logic in the agent communication code.
* Open up more fibers possibilities in the coordinatorChristopher Baines2020-05-17
| | | | | | | | | | | | | | | | | | | I'm looking to listen for client instructions ("build this", ...) maybe on a UNIX socket, which looks to be possible with fibers, but doing this at the same time as using a network socket for agent messaging requires more access than run-server from the fibers web server module currently allows. To get around this, patch the fibers web server run-server procedure to do less, and do that instead in the guix-build-coordinator. This is somewhat similar to what I think Cuirass does to allow it to do more with fibers. This required messing with the current-fiber parameter in a couple more places around threads, I'm not really sure why that problem has occurred now. This current-fiber parameter issue should be resolved in the next fibers release. One good thing with these changes is some behaviours not related to agent communication, like triggering build allocation on startup have been moved out of the agent communication code.
* Switch the command line options for the agent communication configChristopher Baines2020-05-16
| | | | | | | To make it clear this is what it's for. This makes it easier to allow other ways of communicating with agent processes in the future, as well as making it easier to set out how to also listen for client commands, which I'm thinking about now.
* Set a default allocation strategyChristopher Baines2020-05-10
|
* Support passing substitute-urls when submitting a buildChristopher Baines2020-05-09
|
* Rework the ensure-all-related-derivations-have-builds optionChristopher Baines2020-05-09
| | | | | | | This was resulting in duplicate builds for the same output, as that's not what it was guarding against, but I think that was my intention... Anyway this should actually only result in builds being created for outputs that are required.
* Fix submitting buildsChristopher Baines2020-05-09
| | | | This was broken with the API change to the coordinator.
* Make it possible to select the allocation strategyChristopher Baines2020-05-08
|
* Make a record type for the build coordinatorChristopher Baines2020-05-08
| | | | | This is already useful to pass around the datastore, hooks and metrics registry, and will become more useful to pass around the allocator to use.
* Fix the finished output for missing inputsChristopher Baines2020-05-01
|
* Extend guix-build-coordinator show build to work with outputsChristopher Baines2020-05-01
| | | | | It will show the builds for the output. This commit also adds more information in to the output.
* Add guix-build-coordinator build show ...Christopher Baines2020-05-01
| | | | A way of getting information out about a build.
* Add --ignore-if-build-for-outputs-existsChristopher Baines2020-04-30
|
* Start tracking the duration of a few datastore functionsChristopher Baines2020-04-28
|
* Add options suited for providing substitutesChristopher Baines2020-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 a hook to handle missing inputsChristopher Baines2020-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.
* Implement a couple of basic hooksChristopher Baines2020-04-16
| | | | This allows configurable code to be executed when builds succeed or fail.
* Print out the host and port when running a HTTP serverChristopher Baines2020-04-10
|
* Support creating passwords for agentsChristopher Baines2020-04-10
| | | | | This should support generating the passwords off the value stored in the database, and the secret key base value, but that can be implemented later.