Commit graph

153 commits

Author SHA1 Message Date
eldritch horrors daa84f4169 never build on the coordinator
for such cases just add the coordinator as a remote builder.
2024-04-05 14:12:15 +02:00
eldritch horrors 3717bfab04 automatically cancel outdated builds 2024-03-28 03:52:13 +01:00
puck 2eaee8f62b Fix marking jobs as successful if they never finish evaluating. 2024-03-18 00:07:34 +00:00
eldritch horrors d394f35f55 use one scheduler and worker set per arch
and an additional set for generic tasks like error reporting. this
prevents hol blocking for underutilized arches when at least one arch is
blocking, as usually happens to us with aarch64-linux.
2024-03-15 14:47:49 +01:00
eldritch horrors 5e50a858d7 revert to stable web ui
the react-based ui is too slow for our needs, janky, the log viewer
doesn't work quite right (breaking after ~600 lines of logs viewed),
loses updates to sub-builds, and just blanks its entire screen when a
build finishes. the old ui doesn't do that.
2024-03-15 14:40:23 +01:00
raito 8d36ac1d90 feat: signing key
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-12 01:27:46 +01:00
raito 6118daa0a4 feat: binary cache
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-12 01:27:46 +01:00
puck e9b3b38bbf Skip scheduling cached builds; improve reporter message 2024-03-11 15:05:15 +00:00
eldritch horrors 5cdef7efb6 fix status reporting to gerrit
also adjust labels from split verified to single verified, split labels
were only useful during the pre-ci hours
2024-03-11 14:44:09 +01:00
eldritch horrors 51f7b52149 pre-filter drv_info into all_deps
otherwise failure reporting is *enormous* with the entirety of a full
derivation info dump in there
2024-03-11 13:07:35 +01:00
eldritch horrors 13a67b483a fix interrupt()
can't interrupt with things to interrupt. this is technically duplicated
information but keeping parts of the code close to Trigger seems useful.
2024-03-11 13:05:12 +01:00
eldritch horrors 9933971ab0 re-enable the gerrit status reporter 2024-03-11 09:06:29 +01:00
eldritch horrors 29a2ef63e2 show hydra job count in trigger step
previously we immediately triggered all jobs, now we no longer do.
showing the total count at least somewhere is nice to have a rough
indication of how much longer a build may still need to run.
2024-03-11 09:05:28 +01:00
puck 9a15348984 Fix up a few loose ends 2024-03-11 08:08:55 +01:00
puck 4d73275123 Add build result tracking, schedule newly available builds 2024-03-11 08:08:53 +01:00
puck 28ca39af25 WIP: Replace Trigger with custom logic 2024-03-11 08:06:37 +01:00
eldritch horrors e9874c3d98 wip: dependency-tracked build triggering 2024-03-11 07:53:56 +01:00
eldritch horrors f869b52a8d use build-local gc-root directory
without this two builds can interfere with each other if:

  - builds 1 and 2 start
  - build 1 is starved of workers
  - build 2 finishes, removes the shared gcroots directory
  - gc runs
  - build 1 schedules more builds whose .drvs have now been removed

using a dedicated directory for each build fixes this.

we now also need to set alwaysRun on the cleanup command or we risk
littering the system with stale gc roots when a build fails.
2024-03-11 06:48:41 +01:00
eldritch horrors 156e6e3dea remove skipped-builds builder
run all of them on the normal build worker. this significantly
simplifies the overall scheduler/builder config and removes a
triplication of possible builds paths.
2024-03-11 06:27:32 +01:00
eldritch horrors 753df8e340 remove cachix
we aren't using it and it's somewhat in the way of our efforts to
improve scheduling and stuff.
2024-03-11 06:26:39 +01:00
eldritch horrors 0b2545b036 remove unused GitWithRetry 2024-03-11 06:26:39 +01:00
eldritch horrors fdfeef8ad4 remove retry logic
retries don't help us very much, in fact they mostly hurt by repeating
builds that failed for non-transient reasons. retries could help with
workers dropping while running a build, but those rare cases are better
to restart manually than to pend at least twice the ci time for commits
that simply do not build cleanly.
2024-03-11 06:26:38 +01:00
puck ec2ef903ab use .#hydraJobs rather than .#checks 2024-03-08 23:28:49 +00:00
puck c487ada514 review callback: Set labels, render list of failed checks in reporter 2024-03-07 04:40:58 +00:00
raito 18d537e5d4 nix/coordinator(reporting): re-enable reviewCB, disable summaryCB, skip evaluations
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-04 20:50:12 +01:00
raito 322944f8d1 nix/coordinator(reporting): disable startCB and reviewCB
excessive noise.

Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-04 20:37:13 +01:00
raito 9a67a1f2cc nix/coordinator: enable reporting to Gerrit
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-03 02:58:25 +01:00
raito 2bcc0ee4e9 nix/coordinator: hardcode remaining github properties to lix
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 23:22:36 +01:00
raito 3895b90493 nix/coordinator: disable reporter
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 23:07:36 +01:00
raito 670a1d1281 nix/coordinator: fix repourl
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 23:07:36 +01:00
raito 94e3d7aeda nix/coordinator: support specific private SSH keys
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 23:07:33 +01:00
raito 5a8ab145e6 buildbot: add repourl
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 22:09:56 +01:00
raito 7ace78107c buildbot: further Gerritification
- `BuildTrigger` still depends on `github` properties.

Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 22:09:56 +01:00
raito 5f7b3e0cdb buildbot: instantiate fully LixSystemsOAuth2
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 22:09:56 +01:00
raito acfd225e6d buildbot/__init__.py: rework the file for gerrit usecase, our oauth2 instance
Signed-off-by: Raito Bezarius <raito@lix.systems>
2024-03-02 18:45:19 +01:00
Jörg Thalheim 3c1e2c0e76 cleanup drv gcroots after a build 2024-01-15 13:17:19 +00:00
Jörg Thalheim c9e850ff32 only refresh github projects in timer and sort them
This way errors are more visible to users on the first running.

Co-authored-by: zimbatm <zimbatm@zimbatm.com>
2024-01-08 11:45:01 +00:00
Jörg Thalheim f69a37a69e relax concurrent builds
So far we cannot have builds running concurrently, whereas we only would
need to be strict about nix evaluation to stay below memory limits.
2024-01-05 08:49:54 +01:00
Jörg Thalheim b2467c4ac5 typecheck twisted 2024-01-01 15:38:28 +00:00
Jörg Thalheim 6882c81e90 fixup logger warning call 2024-01-01 08:05:12 +01:00
Jörg Thalheim acdab58765 worker: fix basedir 2023-12-27 10:25:28 +00:00
Jörg Thalheim 645c7fd0cc fix workername formatting 2023-12-27 10:25:28 +00:00
Jörg Thalheim 8b9c060dbe fix new linting errors 2023-12-26 22:36:40 +01:00
Jörg Thalheim 35079f89e7 apply ruff 2023-12-26 19:50:34 +01:00
Jörg Thalheim f56e43267d expose cachix options explictly 2023-12-24 07:10:01 +00:00
Jörg Thalheim 232a617fe1 let nix handle the silent timeout of builds 2023-12-22 14:40:31 +01:00
Jörg Thalheim a13cd78a1c drop prometheus exporter again
User can add this themself
2023-12-08 11:11:48 +00:00
Jörg Thalheim 48ea2f7db4 GithubAuth: increase apiVersion to 4 2023-12-08 11:11:48 +00:00
Jörg Thalheim cbe4ce0571 move extraConfig into configurator
extraConfig can be only set once. By moving it to the configurator we allow users to set this option themself.
2023-12-08 11:11:48 +00:00
Jörg Thalheim dd6eacc4c4 allow all members in an org to restart/cancel/trigger builds 2023-12-08 11:11:48 +00:00
Jörg Thalheim ed8a6c0333 git: fix retry message 2023-12-04 10:20:27 +01:00
Jörg Thalheim 590f31eb6f retry git clonning errors 2023-12-03 15:10:16 +00:00
Jörg Thalheim b33d7e5a3e drop nix_update_flake_config pipeline
This is better offloaded to tools like dependabot/renovatebot.
I will probably work on integrate the latter one.
2023-12-03 15:10:16 +00:00
Jörg Thalheim 49f97876d5 fix status_name and virtual_builder_name 2023-11-20 09:07:45 +01:00
Jörg Thalheim 9d80f5f2c7 move skipped builds to local worker 2023-11-18 10:13:16 +01:00
Jörg Thalheim 392329ea71 fix conditionals when skipping cached builds 2023-11-18 07:02:34 +01:00
Jörg Thalheim 37372c90da skip cached builds 2023-11-17 18:04:27 +01:00
Jörg Thalheim 5b4ddd014c make evalWorkerCount configurable 2023-11-12 07:23:35 +01:00
Jörg Thalheim c477a14d1a fix github avatar authentication 2023-11-12 07:23:23 +01:00
zowoq 8dbd6a2101 prefix scheduler names with project.id 2023-11-11 15:10:13 +00:00
Jörg Thalheim 1719bf1810 make eval lock exclusive
looks like maxCount doesn't quite work
2023-11-11 15:10:13 +00:00
Jörg Thalheim 4d71870239
Merge pull request #27 from Mic92/fixes
Also pass GITHUB_TOKEN to AvatarGithub
2023-11-10 17:24:47 +01:00
Jörg Thalheim 524c8fd150 buildbot-nix: limit evaluation to one job per worker 2023-11-10 14:30:09 +01:00
zowoq 2a565a8d5a pad worker numbering 2023-11-10 13:49:24 +01:00
Jörg Thalheim abdff1d927 also pass GITHUB_TOKEN to AvatarGithub 2023-11-09 08:52:46 +01:00
Jörg Thalheim f7573d02bc make sure update-flake has a github project field set 2023-11-09 08:52:46 +01:00
Jörg Thalheim 30b8d7b090 Configurator: make sure all config values have defaults set before hand 2023-11-09 08:52:46 +01:00
Florian Klink 5b3f986a29 buildbot_nix: update comment
This doesn't invoke nix-instantiate anymore, but
`nix-eval-jobs --flake .#checks`.
2023-11-08 15:31:14 +02:00
Jörg Thalheim 0e52cdf81f buildbot: set treeStableTimer
Otherwise we build every commit
2023-11-04 12:14:53 +01:00
Jörg Thalheim ecaafe61b4 make nginx output paths optional 2023-11-04 11:21:36 +01:00
zowoq 3551cb6bef remove extra slash from webhook url 2023-11-04 13:47:55 +10:00
Jörg Thalheim 25fe8ed9ae fix jobs filter 2023-10-27 11:45:54 +02:00
Jörg Thalheim 9f2ec133e1 use rstrip to remove trailing newlines 2023-10-27 09:11:40 +00:00
Paul Haerle 9ad17c646b fmt 2023-10-27 09:11:40 +00:00
Paul Haerle c7b360eb16 pass project name for forced builds 2023-10-27 09:11:39 +00:00
Paul Haerle 2edf6860b0 allow github projects with "." in their name 2023-10-27 09:11:39 +00:00
Paul Haerle eac9acc041 only activate github auth if no other is active 2023-10-27 09:11:39 +00:00
Paul Haerle 44486f6633 skip github projects without sufficient perms 2023-10-27 09:11:39 +00:00
Paul Haerle a758cb41ca fix: also set repos if not cached 2023-10-27 09:11:38 +00:00
Paul Haerle f14619f0df strip read secrets 2023-10-27 09:11:38 +00:00
Paul Haerle 4ae3ef7ca7 make buildbot_nix a python module 2023-10-27 09:11:38 +00:00
Jörg Thalheim b042eb8011 apply nix fmt 2023-10-16 18:41:52 +01:00
Jörg Thalheim 14556fd91f disable periodic flake updates for now 2023-10-15 11:31:07 +02:00
Jörg Thalheim a553fdfa34 use nix-eval-jobs from nixpkgs 2023-10-15 11:31:07 +02:00
Jörg Thalheim 2409fc9c91 reload github projects every 12 hours 2023-10-15 11:15:54 +02:00
Jörg Thalheim 776a6ea499 update flakes with a random delay 2023-10-15 08:36:33 +02:00
Jörg Thalheim b5681b1ea0 remove incorrect skip if path exists
the path might exists also the build failed
2023-10-13 00:38:57 +02:00
Jörg Thalheim e82d3a3d91 add option to reload github projects
fix mypy
2023-10-12 23:58:59 +02:00
Jörg Thalheim 74fb30f6ff also install webhooks secrets 2023-10-12 21:05:37 +02:00
Jörg Thalheim 54bcb08fae also create webhooks automatically 2023-10-12 17:50:43 +02:00
Jörg Thalheim cb35c312c1 make topic filter configurable 2023-10-12 15:54:28 +02:00
Jörg Thalheim dd95055cb6 make per-project gcroots 2023-10-12 15:54:28 +02:00
Jörg Thalheim e90d7e151e fix doStepIf 2023-10-12 12:14:44 +02:00
Jörg Thalheim 08feafa5d4 drop automerge feature 2023-10-09 16:09:19 +02:00
Jörg Thalheim 94c75f9631 switch to using configurators option from nixpkgs fork again 2023-10-09 15:51:05 +02:00
Jörg Thalheim 2488ef4424 switch to configurators class 2023-09-18 17:01:07 +02:00
Jörg Thalheim 5915bf4ffa ruff: also lint upgrade rules 2023-09-18 15:43:51 +02:00
Jörg Thalheim cdde629ff3 drop irc notifications 2023-09-17 06:46:19 +02:00
Jörg Thalheim 2afa25ca27 master: move DB_URL to global variable 2023-09-15 09:10:35 +02:00
Jörg Thalheim aeffb167fe worker: move global variables to config class 2023-09-15 09:09:41 +02:00