Commit graph

86 commits

Author SHA1 Message Date
f8f9703faa
fc-common: add build_metrics table and repository
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If6842311f49bfcba9e1b11fa8bc9748c6a6a6964
2026-02-14 18:08:16 +03:00
80fece6fa8
nix: make default formatter a multi-file wrapper
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2cec885c77bdb5cc5dc9ca8bc7a25e2a6a6a6964
2026-02-08 22:23:30 +03:00
0dc09dbd19
various: fix auto-fisable Clippy lints
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I79a708981b5aee43eadbd48d69fb78be6a6a6964
2026-02-08 22:23:29 +03:00
3a03cf7b3e
treewide: format with nightly rustfmt; auto-fix Clippy lints
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If4fd0511087dbaa65afc56a34d7c2f166a6a6964
2026-02-08 22:23:28 +03:00
fe45fff3f3
fc-server: mild improvements to admin page
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibae9d52b24164c7357aaf15437de0ead6a6a6964
2026-02-08 22:23:27 +03:00
4597869213
fc-server: add 'reproduce build' section to build template
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I2c9f6951e9b6014a32140216367693de6a6a6964
2026-02-08 22:23:26 +03:00
c6c64d568f
fc-common: add advanced search functionality with filters and sorting
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib48f9bd42eea289b9eb8b13e3bd60ed86a6a6964
2026-02-08 22:23:25 +03:00
d4d9297d96
fc-common: add declarative sync for remote builders and channels
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3dae89f04777f6d941824606aebe34446a6a6964
2026-02-08 22:23:24 +03:00
abd16319f2
fc-common: add sync_for_project for declarative members
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic283bf87771e82a27c4c579314a21c1d6a6a6964
2026-02-08 22:23:23 +03:00
7e6fc22ba2
fc-common: add declarative sync for webhooks and notifications
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0b7c46feba776837158507bfe883cbfa6a6a6964
2026-02-08 22:23:22 +03:00
dead111dfb
fc-common: add upsert and sync_for_jobset for declarative jobset inputs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I40f2724aeb9615e8c37a397187064fa66a6a6964
2026-02-08 22:23:21 +03:00
73919f2f9e
treewide: format with nightly rustfmt; auto-fix Clippy lints
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I15d9215ab506b37954468d99746098326a6a6964
2026-02-08 22:23:20 +03:00
10a118bd50
various: update tests for jobset state field changes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ifdd7f216fcc27fface0cb16d56c5e37b6a6a6964
2026-02-08 22:23:19 +03:00
865dd39a07
fc-server: polish user management; add starred jobs UI
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ie3034d4a66a55cb71c23ba25b40d678f6a6a6964
2026-02-08 22:23:18 +03:00
865b2f5f66
fc-common: better support declarative users with password file
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I1eac6decd68a4e59a52fecaecdd476b26a6a6964
2026-02-08 22:23:17 +03:00
b791ed75f3
fc-queue-runner: one-at-a-time jobset scheduling
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iebe127bfba39979649826dfd0d28f9db6a6a6964
2026-02-08 22:23:16 +03:00
8472e3f1d8
evaluator: per-jobset check intervals; fix one-shot handling
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ib36e82fad6f1c3b2ad87651d680fc1406a6a6964
2026-02-08 22:23:15 +03:00
1df28f6049
fc-common: add jobset state enum; add db migration"
I'm going to delete all migrations one of those days...

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8e2e32118c2d85438a8b343614038eda6a6a6964
2026-02-08 22:23:14 +03:00
811c2031de
chore: bump deps
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If78f5fb7597845018afec4be969b378b6a6a6964
2026-02-08 22:23:13 +03:00
b9780dea1c
chore: bump MSRV to 1.95 for nightly Rust
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3e30e54bbdf9f382c31b29bbcaeb44be6a6a6964
2026-02-08 22:23:12 +03:00
c310ca5635
nix: use rust-overlay for nightly Rust
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I74b2d21496261a3178ce043a5990583d6a6a6964
2026-02-08 22:23:11 +03:00
9f62b28c58
nix: pin Postgresql version in devshell
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I40ea680d27108a2f965719853c03fd956a6a6964
2026-02-08 22:23:06 +03:00
593203dcd0
docs: initial comparison document
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic50cc37d50c50ef279f65e87011d252f6a6a6964
2026-02-07 22:09:30 +03:00
62f8cdf4de
nix: cleanup
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia88656a1d6bb152398a5c4ce83d40a3e6a6a6964
2026-02-07 22:09:29 +03:00
794e4a8e61
common,evaluator: add PR fields to evaluation; add jobset ordering test
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I305c988aceb8c72c65b740cb323c0ef06a6a6964
2026-02-07 22:09:28 +03:00
0c11680a56
server: update integration tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3a8adec01604806e1dab5e3deea88c3e6a6a6964
2026-02-07 22:09:28 +03:00
e2abc331d1
server: update project routes and main
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If365e10bfab695d3ea2360e239aeab6b6a6a6964
2026-02-07 22:09:27 +03:00
5ee3154f8e
queue-runner: update tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If15433609cb601119e77c35ff73041196a6a6964
2026-02-07 22:09:26 +03:00
6aa3a7357f
common: improve search and repo tests
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic34fb20b5fc0e400f3ed2da441796f6b6a6a6964
2026-02-07 22:09:25 +03:00
b6012b932f
chore: update dependencies and configuration
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5bab99cb7e7bb2125e7410b54911021a6a6a6964
2026-02-07 22:09:24 +03:00
8c1968c863
common: improve notifications system
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I084bb95a4eb79d5a15f7c062c112124c6a6a6964
2026-02-07 22:09:23 +03:00
caadb52f64
common: enhance user repository with validation
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ic96bef36e3b4d1ea6b2db9752b26dd3a6a6a6964
2026-02-07 22:09:22 +03:00
a9e9599d5b
server: add OAuth2 authentication routes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Icacb5359f4d05d53d4c1b60cc2c0f4f66a6a6964
2026-02-07 22:09:21 +03:00
2eae49f313
fc: initial pull request evaluation support
The migration adds PR support, models expose PR fields, webhooks handle
PR events, and tests validate it. To be honest the migrations are a bit
redundant at the moment, but I'd like to handle my old deployments so
it's nice(r) to have them. I *am* testing those on baremetal.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I02fb4540b62d3e8159ac18b9fa63be916a6a6964
2026-02-07 22:09:20 +03:00
1c18306822
various: eliminate redundant disk check; improve error handling
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I1f37cc60380790bc1bf11f143194ad116a6a6964
2026-02-05 23:05:02 +03:00
d620ec5454
fc-server: fix clippy warnings about manual clamp patterns
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I5cc30a1f6f7444a7acd836430ad44a576a6a6964
2026-02-05 22:48:05 +03:00
6c322c061b
nix: enable strict deps for devshell; add cargo-nextest
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I253fbcf0e2f13e92ac9983256f1d57fa6a6a6964
2026-02-05 22:47:24 +03:00
4b375bc546
various: remove unused imports and parameters; fix clippy lints
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia7a4438e1aa73de2ea1bc6cdf26998f06a6a6964
2026-02-05 22:45:23 +03:00
dec4753567
fc-server: add (more) advanced search API
Basically, implements a multi-entity search functionality with filters
for projects, jobsets, evaluations and builds. Also fixes COUNT query to
apply same filters as main query, and fixes an offset mismatch in
response. Some integration tests have also been added, but chances are
we'll want to write VM tests for this.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Icdda77966a7218f54fd34b78bdc9b55c6a6a6964
2026-02-05 22:45:22 +03:00
b3125a89d8
fc-server: return INSUFFICIENT_STORAGE for disk space errors
Eugh. Need I explain this? We now return a HTTP 507 INSUFFICIENT_STORAGE
for disk space errors rather than letting it all go to shit. Some better
error handling for disk/IO errors. See previous commit also.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ieb6d6415ff8a7209590217933c6992796a6a6964
2026-02-05 22:45:21 +03:00
550603c4bb
fc-common: add disk space monitoring and error handling
Adds a `DiskSpace` error variant and an `is_disk_full()` helper
alongside a `check_disk_space()` util that uses libc's `statsfs` on
unix. FC now detects disk space errors and logs recovery instructions
if applicable.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia6d2c472219dc9d6eed6901dc733d7bb6a6a6964
2026-02-05 22:45:20 +03:00
e21ca49656
chore: bump dependencies; remove deprecated asakama_axum dep
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8d170814c450e293bff8a876cb2862bb6a6a6964
2026-02-05 22:45:19 +03:00
4d8564f56b
fc-server: restore dashboard routes; add extract_session middleware
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I91b71875b936ba2a1efbede1cb1ed4886a6a6964
2026-02-05 22:45:18 +03:00
ea94adb6d1
docs: update API routes; minor wording fixes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I8baf9c2c307b96a5668e19fb11d5e83b6a6a6964
2026-02-05 22:45:17 +03:00
d3908e3307
docs: move README to docs directory; minor cleanup
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I914d8ddaabc714f82c9c61dcf75de2a16a6a6964
2026-02-05 22:45:16 +03:00
f974e3dd16
fc-common: test user management fully
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Id144b7ba20283599437b0af86f8d716d6a6a6964
2026-02-05 22:45:15 +03:00
7a0645c123
fc-server: update login form to support username/password
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I42a7e0674a380896d12cf9ab82417d326a6a6964
2026-02-05 22:45:14 +03:00
b6287a2030
fc-server: add user management REST API endpoints
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I25545df3273967086f8473d3f92c30736a6a6964
2026-02-05 22:45:13 +03:00
37e4575ef7
fc-server: add dual authentication support; support user accs
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3603e4b3cc8b5999fe1edafe8a38efb26a6a6964
2026-02-05 22:45:12 +03:00
f5c54b1e05
fc-common: implement user management repository layer
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I020c2fd3b061b5a671fe75d50048519f6a6a6964
2026-02-05 22:45:11 +03:00