vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Keep a finished CI attempt and drain before shutting down
73755a56550dc6819b47469fbb08e85e7c7c5d04 · Keenan Nemetz · 9d ago · parent 1265ea55
Keep a finished CI attempt and drain before shutting down A job whose lease expired was requeued even when its last step had already succeeded. The queue cleared the owner and the runner refused to report, so the same work ran again as attempt 2 for no failing step. Keep the owner on a requeued row and accept a late record and log until another runner leases the job. The runner now sends a late record when the heartbeat says the lease is gone, and the server accepts it only for the attempt that is still current. A clean server stop also drained nothing: closing SSH killed the runner and threw the job away. Stop leasing new work on shutdown and wait up to a minute for the jobs already running to report.
docs/operations.md +9
| @@ -105,6 +105,15 @@ Back both directories up too if you need those files. `vole admin gc` treats fil | |||
| 105 | 105 | reachable from a repository or a published artifact as things to keep; logs are | |
| 106 | 106 | ordinary files and are not swept. | |
| 107 | 107 | ||
| 108 | ## Restart the server | ||
| 109 | |||
| 110 | A clean stop (`systemctl restart`, or Ctrl-C on a development instance) stops | ||
| 111 | handing out new CI jobs and waits up to a minute for the jobs already leased to | ||
| 112 | report their result. A job that finishes in that window is stored and is not run | ||
| 113 | again. A job still running when the window ends loses its runner connection and | ||
| 114 | is requeued as another attempt once its lease expires. The wait is best effort; | ||
| 115 | start long builds well before a planned restart. | ||
| 116 | |||
| 108 | 117 | ## Clean up stored files | |
| 109 | 118 | ||
| 110 | 119 | ```sh | |