aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/run_queue.c (unfollow)
Commit message (Collapse)Author
2023-07-04sanitize #include-sEgor Tensin
2023-07-04move custom message parsing to a separate moduleEgor Tensin
2023-07-04storage: mark completed runs as suchEgor Tensin
2023-07-04storage: requeue old runs from storage on startupEgor Tensin
2023-07-04sqlite: store new runs in SQLiteEgor Tensin
2023-06-09STAILQ -> SIMPLEQEgor Tensin
2023-05-15msg: strings, not wordsEgor Tensin
2023-05-15rework server-worker communicationEgor Tensin
OK, this is a major rework. * tcp_server: connection threads are not detached anymore, the caller has to clean them up. This was done so that the server can clean up the threads cleanly. * run_queue: simple refactoring, run_queue_entry is called just run now. * server: worker threads are now killed when a run is assigned to a worker. * worker: the connection to server is no longer persistent. A worker sends "new-worker", waits for a task, closes the connection, and when it's done, sends the "complete" message and waits for a new task. This is supposed to improve resilience, since the worker-server connections don't have to be maintained while the worker is doing a CI run.
2023-05-13ci_queue -> run_queueEgor Tensin
Also, some minor refactoring.
2023-05-13best practices & coding style fixesEgor Tensin
* I don't really need to declare all variables at the top of the function anymore. * Default-initialize variables more. * Don't set the output parameter until the object is completely constructed.
2023-05-13ci_queue: fix a broken getterEgor Tensin
Everything was broken starting from the "making struct ci_queue_entry opaque" commit. Damn, I really wish I'd have some kind of automated testing to catch errors like this...
2023-05-12ci_queue: rename a couple of functionsEgor Tensin
2023-04-29make struct ci_queue_entry opaqueEgor Tensin
2022-12-02add copyright noticesEgor Tensin
2022-09-08log: refactoringEgor Tensin
2022-08-26add some more codeEgor Tensin
This adds a basic "worker" program. You can now do something like ./server & ./worker & ./client ci_run URL REV and the server should pass a message to worker, after which it should clone the repository at URL, checkout REV, and try to run the CI script. It's extremely unfinished: I need to sort out the graceful shutdown, how the server manages workers, etc.