Commit graph

68 commits

Author SHA1 Message Date
Skyler Grey a0784bf027 fix: Correct output path with failed builds
Some checks failed
buildbot/nix-eval Build done.
Previously, if a build failed to produce any output we would try to
write "None" to the output file. This doesn't work, causing the job to
error. Instead, we should skip writing the output and preserve the
original "failed" status.
2024-09-11 20:10:30 +00:00
Skyler Grey 46800094bb feat!: Update output path writing
- Allow pull requests to create output paths

Previously, it was not possible to get unmerged pull request outputs. I
would like to access these (e.g. for hosting a preview version of a
website in a similar way to https://docs.netlify.com/site-deploys/deploy-previews/
or https://vercel.com/docs/deployments/preview-deployments)

These are now surfaced under `{owner}/{repo}/pulls/{pr number}`

- Fix repository attribute name conflicts

Previously there was no difference between samely-named attributes in
different repositories.

This has been changed so outputs are under `{owner}/{repo}/{branch}`

- Allow full attribute names, still stripping path traversal

Previously, presumably to prevent path traversal, if your attribute name
contained slashes buildbot-nix would only take the last segment as an
output.

This has been replaced by interpreting slashes as subdirectories and
refusing any segments which don't descend into a subdirectory (i.e. are
attempting path traversal)

- Still create outputs on skipped builds

Previously when something was skipped, for example a build that was
completed in a pull request, the output wouldn't be updated. This made
the outputs directory quite unreliable.

Outputs will now always be updated, no matter whether a build was
actually executed.

BREAKING-CHANGE: This stops old output locations being outputted. If you rely on these locations, you will need to update whatever relies on them.
2024-07-28 09:06:51 +00:00
magic_rb 0ecf33f8d4
Reformat gitea_projects.py, __init__.py, and github_projects.py
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-26 11:53:06 +02:00
magic_rb 19d5cdd29a Hide gcroot registration steps from the reporters
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-26 11:37:23 +02:00
magic_rb d44dc3da09
Fix Gitea backend using the Gitea url as a webhook url
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-26 11:37:10 +02:00
magic_rb 28b6da6e73
Make the cut off point for combining build reports customizable.
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-26 11:23:38 +02:00
magic_rb dd2df67009 Combine build reports for GitHub if there are too many
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-26 11:09:12 +02:00
magic_rb 6e8e735628 Utilize pydantic for serialization and deserialization
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-26 06:13:34 +00:00
Jörg Thalheim 5bdbb76096
Merge pull request #229 from MagicRB/support-other-caches
Generalize Cachix support to `post_build_steps`
2024-07-19 17:27:23 +02:00
magic_rb 8a6d34b83c Create gcroots on skipped builds too
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-19 15:09:38 +00:00
magic_rb e99623b2f6
Generalize Cachix support to post_build_steps
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-18 17:39:36 +02:00
Jörg Thalheim 0b301f0782 switch to www package back 2024-07-14 04:50:23 +02:00
Jörg Thalheim 6c7b3b1a1c fix max-silent-time 2024-07-13 00:06:04 +00:00
Jörg Thalheim 3389164c13 fix retries beeing zero 2024-07-12 07:28:28 +02:00
Jörg Thalheim 701a5ac400 add build retries nixos option 2024-07-09 09:29:57 +00:00
magic_rb 372d7dc70b Defer hook creation to project reload, both GitHub and Gitea
Signed-off-by: magic_rb <richard@brezak.sk>
2024-07-05 12:13:55 +00:00
Jörg Thalheim 837df7f642 fix normalizing builder names 2024-07-05 11:47:21 +00:00
Jörg Thalheim c94738d1a1 buildbot_nix: allows to restart a build 2024-07-05 11:47:21 +00:00
magic_rb 475fbf3952 Fix GitHub avatars for GitHub Apps
Signed-off-by: magic_rb <richard@brezak.sk>
2024-06-07 08:16:40 +00:00
magic_rb 067f3e0fc1 Add GitHub App support
Signed-off-by: magic_rb <richard@brezak.sk>
2024-06-07 08:16:39 +00:00
Jörg Thalheim a36953b52d gitea: fix testing pull requests 2024-05-03 10:20:55 +00:00
magic_rb 3f01a96147 Add Gitea backend
Signed-off-by: magic_rb <richard@brezak.sk>
2024-04-29 18:30:15 +02:00
magic_rb 1605d2d3c2 Remove assumption of GitHub being the only forge
Signed-off-by: magic_rb <richard@brezak.sk>
2024-04-29 18:29:35 +02:00
Jörg Thalheim 5f92033b61 git clone project if it doesn't exist yet in local-merge case 2024-04-11 10:47:06 +00:00
Jörg Thalheim 956e8e0a67 do merges locally 2024-04-06 18:54:58 +02:00
Jörg Thalheim 35c3fb64c8 fix users not beeing able to restart virtual builders 2024-03-07 22:58:37 +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 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