Commit graph

17 commits

Author SHA1 Message Date
959aba0933
fc-common: use btree index for build_outputs.path in db schema
Btree supports NULL values and provides better flexibility
than hash index for nullable columns.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ida28ef6f88683c360e6f405efca435af6a6a6964
2026-02-28 23:56:24 +03:00
b1a7233a05
fc-common: add build_outputs table to base schema
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I1a9c6cb82967fe73aa403e3656c7cab96a6a6964
2026-02-28 23:56:22 +03:00
21446c6dcb
fc-queue-runner: implement persistent notification retry queue with exponential backoff
Adds a `notification_tasks` table and a background worker to (hopefully
reliably) deliver webhooks, git status updates, and e-mail notifications
with automatic retry on transient failures.

This was one of the critical gaps, finally done.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I794967c66958658c4d8aed40793d67f96a6a6964
2026-02-28 12:18:18 +03:00
e7425e0abf
fc-common: consolidate database migrations; simplify
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ia808d76241cec6e8760d87443bb0dc976a6a6964
2026-02-28 12:18:13 +03:00
5b472a2f57
fc-common: add GC pinning and machine health infrastructure
Migration 017 adds `builds.keep`, `jobsets.keep_nr`, and health tracking
columns to `remote_builders`. Repo layer implements `set_keep`,
`list_pinned_ids`, `record_failure` with exponential backoff,
`record_success`, and `find_for_system` filtering of disabled builders.
GC root cleanup now skips pinned builds.

Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Ibba121de3dc42f71204e3a8f5776aa8b6a6a6964
2026-02-28 12:18:04 +03:00
65a6fd853d
fc-common: add failed paths cache infrastructure
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I35f9bfb044160151cf73c43ed9ada3476a6a6964
2026-02-16 23:42:41 +03:00
e274389d12
fc-common: add PostgreSQL LISTEN/NOTIFY infrastructure
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iffdb2fa758825e8c5d5791bf4fb15c8e6a6a6964
2026-02-16 23:42:36 +03:00
541cd7832f
treewide: replace BuildStatus::Completed with BuildStatus::Succeeded
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I965dfaca211f9fde527a84a54ae972576a6a6964
2026-02-16 23:42:21 +03:00
f4772036ce
fc-common: add database migration for extended build status codes
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0c13eda985d634e63189ba6907e488ae6a6a6964
2026-02-16 13:02:22 +03:00
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
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
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
8d07063d3f
db: add migration 008 for user management tables
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I99349ba4b389b525d66d0109a66243736a6a6964
2026-02-05 22:45:08 +03:00
9fd901bc7f
crates/common: add migration for multi-branch eval and scheduling shares
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I3f792d0e081da93adbcf60bff8570eed6a6a6964
2026-02-02 01:49:25 +03:00
1b12be3f8a
crates: production models and repo layer
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: Iceb76724c09eaca7ca5d823010db76776a6a6964
2026-02-02 01:15:05 +03:00
a4c3cd1517
meta: add database migrations; set up migration CLI
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I0cbc9798243134d36f788099ecc3ee5a6a6a6964
2026-02-02 01:15:00 +03:00