Add event filters TagCreated, TagUpdated, and TagDeleted. These were
supposed to already exist, but were never committed. They're in the
documentation, though, so it's quite surprising that they don't work.
Cope with the fact that the node can now emit events for canonical
refs changing. This does NOT yet add a filter on canonical ref
updates. But at least the Ci broker shouldn't crash any more.
Signed-off-by: Lars Wirzenius <liw@liw.fi>
Individual report pages are generated under `report_dir` from the cib
config, which is the directory which contains the summary `index.html`
page so there's no need to link to the parent.
Previously, radicle-ci-broker crashed whenever it received an event
from radicle-node which it could not parse, for example because a
new event type has been added to radicle-node, but the radicle crate
radicle-ci-broker depended on didn't contain this new variant yet.
serde-yaml was orphaned, so I switched to serde-yml, which is now
unmaintained and depends on libyml with a security issue. The new
replacement seems to be serde-norway.
May be worth thinking about not using YAML in the future.
Signed-off-by: Lars Wirzenius <liw@liw.fi>
The cib configuration setting max_run_time didn't always work, because
its implementation only killed the adapter, not any child processes of
the adapter. We fix this by running the adapter in its own process
group, and killing the whole group if the time runs out.
In addition, the timeoutcmd.rs module (and the ChildProcess type) is
simplified, by making the deadline mandatory. It is no longer possible
to run an adapter without a timeout. This makes sense, as it'd not be
useful to allow an adapter to run indefinitely. The old behavior can
be simulated by setting a very long timeout, such as a year.
Signed-off-by: Lars Wirzenius <liw@liw.fi>
Spawn a thread that sleeps until timeout, then notifies the
RealtimeLines condition variable, which wakes up the reader thread and
lets it eventually finish.
Signed-off-by: Lars Wirzenius <liw@liw.fi>
Sometimes I accidentally make a test that never finishes and uses all
the CPU and memory available. Killing that manually can be impossible,
because switching focus to the right terminal requires more CPU and
memory than the kernel can spare.
Signed-off-by: Lars Wirzenius <liw@liw.fi>
Previously we only supported reading `cib` log output wrapped into
`journald` messages as JSON.
This is a breaking change because the command line syntax changes
slightly.
Signed-off-by: Lars Wirzenius <liw@liw.fi>