Commit Graph
787 Commits
Author SHA1 Message Date
Lars Wirzenius 43f2de4605 test: drop release 0.12 from upgrade tests
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-06-03 08:49:12 +03:00
Lars Wirzenius 6d94467d51 chore: drop rust-toolchain, fix problems found newer toolchain
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-06-03 08:43:34 +03:00
Lars Wirzenius 5f203cd2d7 feat: check that all adapters in triggers are defined
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-29 14:17:23 +03:00
Lars Wirzenius b7dd71b27a feat: improve logging in queueproc helper threads
This was useful for figuring out my actual problem, which was a
configuration issue.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-29 13:59:40 +03:00
Lars Wirzenius 9408939361 ci: publish deb
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-27 14:46:05 +03:00
Lars Wirzenius 2e3101a0db feat: log exit code of every command that is run
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-26 14:56:48 +03:00
Lars Wirzenius a90788296f docs(doc/userguide.md): tweak Debian installation
Add note about `kvm` kernel module and Unix group.

Add step to create log directory.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-21 18:21:37 +03:00
Lars Wirzenius 4fd7d2a61b fix: typo in Cargo.toml
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-19 17:48:09 +03:00
Lars Wirzenius 83aa0b0a0a chore: prepare release version 0.17.1
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-19 17:45:23 +03:00
Lars Wirzenius b93695ff43 fix: parse "concurrent_adapters" in config correctly
Oops. Brown paper bag moment.

This undoes the type mangling to ensure the field value is never zero,
in favor of doing run time logic. That should be done with types some
day, but today I need to get running.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-19 16:51:51 +03:00
Lars Wirzenius 46963aaa4f chore: prepare release 0.17.0
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-19 12:33:49 +03:00
Lars Wirzenius 941343071d Revert "docs(doc/install.md): oops, add the installation document to Git"
This reverts commit 5ae86e9103.

The doc is part of the user guide already, no need to have it as a
separate file as well. It'll just get out of sync.
2025-05-19 11:24:54 +03:00
Lars Wirzenius 5ae86e9103 docs(doc/install.md): oops, add the installation document to Git
Had forgotten to add that. Bummer.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-19 10:56:52 +03:00
Lars Wirzenius af581de269 test(ci-broker.md): add previous release to upgrade tests
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-19 10:36:35 +03:00
Lars Wirzenius 4e5dbdae20 docs(doc/userguide.md): add detailed installation guide for Debian
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-15 15:54:28 +03:00
Lars Wirzenius 78cf1269eb build(Makefile): add
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 14:30:17 +03:00
Lars Wirzenius 6c14e56371 Merge branch 'patch/9437534' 2025-05-14 13:37:02 +03:00
Lars Wirzenius 4577682fd6 refactor(src/pull_queue.rs): drop "end" method, add Drop impl
This makes it harder to forget to close the producer end.

Suggested-by: Fintan
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 13:17:20 +03:00
Lars Wirzenius 19ede6dfed refactor(src/pull_queue.rs): avoid asserts
I didn't like having asserts, and didn't want debug_asserts. With
plain asserts, the program would have panicked. With debug_asserts, the
program would have silently overwritten the item in the queue.
Instead, change the method to return whether it was able to set, and
have the caller cope with not being able to set. The caller needs to
be able handle that (and was already doing so).

Found-by: Fintan
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 08:45:34 +03:00
Lars Wirzenius 582bd54b73 refactor: drop commented-out constants
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 08:20:05 +03:00
Lars Wirzenius e5723448d4 feat(src/queueproc.rs): log reason why waiting for adapter fails
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 08:16:01 +03:00
Lars Wirzenius e494961227 refactor: drop unnecessary pragma for allowing dead code
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 08:06:48 +03:00
Lars Wirzenius 62faeeec02 refactor: drop now-unnecessary pragma to allow unused imports
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 08:00:21 +03:00
Lars Wirzenius c493ec4928 fix(src/queueproc.rs): rewrite to avoid unimplemented!
This should never trigger, but just in case, we don't ever want it to
trigger in production.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 07:55:44 +03:00
Lars Wirzenius fd845f7e44 refactor: use more idiomatic Rust to check result of operation
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 07:52:14 +03:00
Lars Wirzenius 1f8978186a refactor: use a type to capture non-zero count of concurrent adapters
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-14 07:44:42 +03:00
Lars Wirzenius 93177407b4 docs(doc/architecture.md): update architecture components
Have just one component description, instead of separating "external"
and "native CI". Native CI doesn't need t be mentioned anyway.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 10:24:51 +03:00
Lars Wirzenius d1e28dcd8a docs(README.md): add link to the Ambient adapter
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:38:37 +03:00
Lars Wirzenius 06449445ec feat: enable adapter concurrency in cib
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius 55023f2e4f refactor: rewrite the timeoutcmd module for simplicity
Feed child process stdin via a temporary file. This is simpler than
opening a pipe and spawning a thread that feeds the pipe, when it's
not full.

Capture child stderr into a buffer without trying to let the
caller (another thread) process it line by line. We don't seem to have
use for that, and this simplifies things a fair bit.

Simplify the capture of child stdout to use a simpler thread and data
structure, compared to the previous multi-thread setup. Splitting
stdout into lines is now done by the thread that consumes the lines,
making the code that captures it simpler.

Also update the timeout subcommand to work with the changes. Other
callers of this code aren't yet updated.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius b73ab44962 refactor(src/broker.rs): add accessors, drop unnecessary mut
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius 0cf160d3d1 feat: implement concurrently running adapters
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius c16e9b0af7 feat: add log messages for thread start/end, log exit status in full
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius ccb82c8890 feat: implement cloning of a NotififcationSender
This will be useful later.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius c7dbff55e5 feat: add a "pull queue" data type
This will be useful for inter-thread synchronization in situations
where the producer thread should not produce anything until at least
one consumer is ready for it.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Lars Wirzenius 5ce95bc360 feat: add "concurrent_adapters" to configuration file
This doesn't yet affect anything, but it's a step towards implementing
concurrent adapters. The default is 1, which will be no change from
previous behavior, once I add support.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-13 09:02:12 +03:00
Arnaud Bailly d90b609b41 doc: link doc/ directory from README 2025-05-13 09:00:51 +03:00
Tshepang Mbambo 0e746060fe process-events help: add missing space 2025-05-13 08:59:38 +03:00
Tshepang Mbambo 1d4442d42f avoid confusing terminology
Got confused here, where I did not know if what was referred was the
normal node or the CI node.

Also, "seed node" is used elsewhere to refer to nodes which need to
remain online.
2025-05-13 08:58:27 +03:00
Tshepang Mbambo b80a97d146 typo 2025-05-02 23:55:09 +02:00
Lars Wirzenius 22451b4b3a refactor: drop unused Broker::all_runs method
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-05-02 12:22:35 +03:00
Lars Wirzenius 768af45e7e chore: prepare release 0.16.0
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-17 17:31:01 +03:00
Lars Wirzenius 8d7989cc6a Revert "fix: "cibtool run list" shows ids without loading run info"
This reverts commit 900a457157.
2025-04-17 17:04:46 +03:00
Lars Wirzenius d035b4fd8d ci(.radicle/ambient.yaml): add Radicle bin directory to path
I previously installed Radicle from a `deb`, which meant `rad` is in
`/usr/bin`, and thus in the default `$PATH`. But now I install it with
the Radicle installer, and need to add `/root/.radicle/bin` to `$PATH`.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-17 14:02:21 +03:00
Lars Wirzenius dafd585a30 doc(README.md): drop obsolete disclaimer
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-10 17:06:57 +03:00
Lars Wirzenius 9f0adbdc58 fix(debian/rules): run "cargo install" with --locked
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-09 08:47:02 +03:00
Lars Wirzenius 4e99a74674 chore(Cargo.lock): update to use specific dependencies
For Rust 1.80 compatibility. radicle-ci-broker uses 1.80 because it
depends on heartwood that uses 1.80 and I've had radicle-ci-broker
fail to compile if the two use different versions: cargo fails to find
a compatible sqlite crate.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-09 08:32:19 +03:00
Lars Wirzenius 15058d3d7f chore(Cargo.lock): cargo update 2025-04-09 07:46:33 +03:00
Lars Wirzenius 904f4bb249 refactor: make a proper new type for TagName
Make TagName into a new type (struct), instead of a type alias for
RefString. This provide stronger type safety, for the cost of a little
more implementation work. For the needs of the CI broker, that's two
methods and two trait impls.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-07 16:02:03 +03:00
Lars Wirzenius 0bda319b54 refactor: add a TagName type alias
Slightly better self-documentation in code, even if not actually
stronger typing.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-04-07 16:02:03 +03:00