Commit Graph
100 Commits
Author SHA1 Message Date
Lars Wirzenius 9e84afecbf feat! change the "Not" event filter to take a list of filters
Change the logical negation operator `Not` to take a list of filters
as operands. The operator returns true, if and only if all of the
operands are false. The syntax is now consistent with logical `And`
and `Or`, which simplifies code, and is expected to simplify use.

In YAML syntax, `Not` now works like this:

~~~
!Not
  - !Allow
~~~

Previously, `!Not` only had one operand, so that above would have been
expressed as `!Not Allow`.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-30 15:36:57 +02:00
Lars Wirzenius d0c6a8c8c1 test(ci-broker.md): verify event filter Not
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 18:00:01 +02:00
Lars Wirzenius d97f1c6720 test(ci-broker.md): verify event filter Or
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 18:00:01 +02:00
Lars Wirzenius 42bded3825 test(ci-broker.md): verify event filter And
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 18:00:01 +02:00
Lars Wirzenius 28ee4580e0 test(ci-broker.md): verify event filter Deny
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:42:49 +02:00
Lars Wirzenius 568592aabc test(ci-broker.md): verify event filter Allow
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:42:49 +02:00
Lars Wirzenius e0a967af68 test(ci-broker.md): verify event filter BranchDeleted
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:42:49 +02:00
Lars Wirzenius 791b7cad6d test(ci-broker.md): verify event filter BranchUpdated
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:42:49 +02:00
Lars Wirzenius bb5cf1273a test(ci-broker.md): verify event filter BranchCreated
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:42:47 +02:00
Lars Wirzenius d1e9b5e159 test(ci-broker.md): verify event filter Branch
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:42:37 +02:00
Lars Wirzenius 59deeed8c1 test(ci-broker.md): verify event filter Node
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:41:37 +02:00
Lars Wirzenius 2ea38588ad test(ci-broker.md): verify event filter Repository
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:41:16 +02:00
Lars Wirzenius c4bae7b09b test(ci-broker.md): use cibtool trigger option defaults
"cibtool trigger" option "--ref" defaults to "main" and "--commit" to
"HEAD", and there's no need to say those explicitly.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:41:06 +02:00
Lars Wirzenius c045335b69 feat: make log message about patch COB not found clearer
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:41:06 +02:00
Lars Wirzenius d491111726 feat(src/config.rs): make the "env" field for an adapter optional
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:41:06 +02:00
Lars Wirzenius 88e7d75a59 refactor: make Config fields env, sensitive_env private
We already have getters so no other change.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 17:39:54 +02:00
Lars Wirzenius f65a5b83b3 tests: trim releases for upgrade testing
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 11:27:58 +02:00
Lars Wirzenius 64e76a97a8 chore: prepare release 0.12.0
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 11:08:29 +02:00
Lars Wirzenius 030a390159 fix(src/config.rs): use dedicated constant for default interval
The default doesn't change, but it's now called
`DEFAULT_QUEUE_LEN_INTERVAL` instead of `DEFAULT_MAX_RUN_TIME`.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 10:50:59 +02:00
Lars Wirzenius f736bdf8e6 tests(ci-broker.md): document what to upgrade test, use commits
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-29 10:23:33 +02:00
Lars Wirzenius ba9b4365f9 fix(ci-broker.md): drop bashism: set -o pipefail.
On a machine where /bin/sh it not Bash, the pipefail setting will
fail.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-27 18:01:24 +02:00
Lars Wirzenius 3da72805e9 feat! drop Db::queued_events
For several releases already, `cib` has refused to start if the
database has any "broker events". Broker events were a predecessor for
CI events, and they haven't been supported by the CI broker since
0.7.0, from October 2024.

Drop the Db method to query the database for queued broker events.
Also drop the creation of a table for that queue.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-27 17:41:02 +02:00
Lars Wirzenius 25a8d24d30 docs(doc/userguide.md): document "triggers" feature
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-23 18:20:22 +02:00
Lars Wirzenius 1336037b91 fix(.radicle/ambient.yaml): clean up for deb building
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-22 10:15:35 +02:00
Lars Wirzenius 501bb8ca3d fix(.radicle/ambient.yaml): skip upgrade tests
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-22 10:09:21 +02:00
Lars Wirzenius 7141c3261a fix(.radicle/ambient.yaml): set missing env vars
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-22 09:55:13 +02:00
Lars Wirzenius c5bcb6e918 build: add .radicle/ambient.yaml to allow Radicle CI use Ambient
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-22 09:50:20 +02:00
Lars Wirzenius c239dfb0a9 fix(ci-broker.md): drop unused embedded file
Unused files make `subplot docgen` fail unless it's given the
`--merciful` option.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-22 09:46:51 +02:00
Lars Wirzenius aaf687376c tests: add scenarios to verify new "triggers" functionality
Also add a useful extra step.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-21 19:11:39 +02:00
Lars Wirzenius 9af108485d feat: add optional "triggers" to config
A trigger is a condition (filter) when to run CI using a specific
adapter. Change the configuration to allow them, and make the old list
of filters and default adapter be optional. This way, the user can use
either or both.

CI is run for each of:

- top level filter matches, using default adapter
- trigger filter matches, using the adapter specified in the trigger

To be clear, this can mean that CI is run many times for one CI event.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-21 19:07:07 +02:00
Lars Wirzenius ee34af59f1 feat: construct a collection of all adapters that knows the default
Construct the collection, and give it to the queue processor, which is
the only part that needs to know what adapters there are.

For now, only the default adapter is used, but this makes a space from
which to pick a different for each CI run.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-21 17:01:34 +02:00
Lars Wirzenius 7ebe081334 refactor: allow picking many adapters
This is preparation for allowing many triggers: we will want to allow
any number of triggers allow a single change, resulting in a different
CI run for each. Change the code that picks an adapter to be able to
pick any number of them, and then run all of them. Even if one fails,
run the rest.

This will potentially mean run the same adapter many times, although
it's meant to allow running a different adapter for each trigger.
Running the same adapter many times may be pointless, but we can't
reliably know that, only the user can. It depends on the adapter, the
change, and what the user is trying to achieve. So for now we don't
worry about that. If it turns out to be important, we can later add a
way to say each adapter will only be run once.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-21 17:00:19 +02:00
Lars Wirzenius ba644e14d6 feat: filter queued events when they are processed
Move CI event filtering from the queue adder to the queue processor.
This is ground work for supporting different adapters for different
runs.

Later, each "trigger" will have a separate filter, and if the filter
allows an event, the adapter for that trigger is run. However, we have
no way to communicate the chosen adapter via the event queue in the
database, without making a breaking database schema, which I would
prefer to avoid.

Instead, we add all events into the queue, and filter when we remove
them from the queue. This may be a little wasteful in terms of disk
space and I/O, if there are very large numbers of events. If this
turns out to be too expensive, we'll revert this change and do a
breaking schema change.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-21 17:00:19 +02:00
Lars Wirzenius 73c533580a refactor: Broker::execute_ci is given adapter to use
Remove the default adapter from Broker, and make callers give the
adapter to use to the Broker::execute_ci method each time. This is
ground work for allowing different adapters for different CI runs.

There's no need for Broker to know about any adapters, except the one
it is currently running.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-21 17:00:16 +02:00
Lars Wirzenius 2e37eb04f4 refactor: drop custom Debug implementation of AdapterConfig
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 18:00:18 +02:00
Lars Wirzenius e55a7de242 refactor: Config::default_adapter returns an adapter, not its config
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:57:19 +02:00
Lars Wirzenius 9418e98863 refactor: make Broker::default_adapter() method private
It's only used in `src/broker.rs` after all.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:41:19 +02:00
Lars Wirzenius 2a7ddc303a refactor: can't create a Broker without setting default adapter
There's no point in making it optional at this stage.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:34:40 +02:00
Lars Wirzenius 6e52f1da50 refactor(src/broker.rs): drop unnecessary adapter method
The default_adapter method can be used in every case.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:26:48 +02:00
Lars Wirzenius 346b871938 refactor(src/broker.rs): drop list of adapters
The broker overall only supports the default adapter. When we add
support for using an adapter other than the default one, it'll not be
per repository.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:23:37 +02:00
Lars Wirzenius 67ec871f23 refactor: drop unused default_adapter_name
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:15:41 +02:00
Lars Wirzenius b8171031f6 refactor(src/config.rs): rename Adapter to AdapterConfig
This makes it less likely to be confused with create::adapter::Adapter.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:15:41 +02:00
Lars Wirzenius 3ca4462e5a refactor: drop Config::adapter method
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:15:41 +02:00
Lars Wirzenius 07d9db2018 refactor: Config::default_adapter returns an error if no default set
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 17:15:41 +02:00
Lars Wirzenius c89b471f84 refactor(src/broker.rs): drop unused per-repository adapters
We don't make any actual use of this so off it goes.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 14:43:41 +02:00
Lars Wirzenius 558cc34cc3 refactor: broker execute helper for clarity, DRY
Change the src/broker.rs function execute_helper function to be
clearer by reducing repetitive code.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 14:37:30 +02:00
Lars Wirzenius 47f776392e refactor: prevent direct access to struct Config fields
Make struct Config fields private and introduces getter methods to
access them. This will make it easier to change the CI broker to be
able to run different adapters for different changes.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-20 14:14:18 +02:00
Lars Wirzenius 30fcabba09 test: adjust upgrade test to cover recent releases
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-15 11:57:23 +02:00
Lars Wirzenius daed76ff4d feat: cibtool trigger --ref defaults to main, --commit to HEAD
This simplifies using "cibtool trigger" a tiny bit.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-14 19:16:13 +02:00
Lars Wirzenius f814880aeb feat: make cibool trigger --ref be preferred over --name
Either will continue to work.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-14 19:11:34 +02:00
Lars Wirzenius b33aae598c fix: actually set the log interval from the config
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-14 18:08:31 +02:00
Lars Wirzenius cadb933d41 feat: allow setting how often the event queue length is logged
The configuration file can have a field `queue_len_interval`, and
defaults to 10 seconds. This should reduce log spam.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-14 17:10:31 +02:00
Lars Wirzenius c108cf1108 feat! rename helper error type to MessageHelperError
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-10 16:36:57 +02:00
Lars Wirzenius 14d7b5322b chore: prepare release 0.11.1
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-09 18:58:13 +02:00
Lars Wirzenius 09db9b7674 fix: capture and log all stderr from adapter
Previously, we failed to capture all of stderr from the adapter if the
adapter sent messages to its stdout could not be parsed, or otherwise
meant the CI broker deduced the CI run had failed. Now we read all of
stderr (module time limits) before returning an error result.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-08 14:26:46 +02:00
Lars Wirzenius fda28dbaae fix(src/timeoutcmd.rs): say stderr, instead of stdout
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-08 13:47:56 +02:00
Lars Wirzenius 7a754fe104 feat: add helper functions for adaters
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-07 15:31:20 +02:00
Lars Wirzenius e9f51c5c93 chore: bump version in Cargo.toml/lock, debian/changelog
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-07 14:05:20 +02:00
Lars Wirzenius b40826314e docs(NEWS.md): update for new release
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-07 14:01:08 +02:00
Lars Wirzenius 11c002d9c5 chore: bump dependency on subplotlib, subplot-build
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-03 16:01:12 +02:00
Lars Wirzenius 01d60563ea chore: bump dedendency on serde-yml
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-03 15:59:31 +02:00
Lars Wirzenius 52dba0ca85 chore: bump dependency on duration-str
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-03 15:56:30 +02:00
Lars Wirzenius 69b6db769e chore: bump dependency on anyhow
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-03 15:54:55 +02:00
Lars Wirzenius 909cc28e4e chore: update Cargo.lock
Run "cargo update".

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2025-01-03 15:47:55 +02:00
Lars Wirzenius 9f5fff09b0 feat: subcommand "log" to format and filter cib logs from journald
Add subcommand "cibtool log" to extract cib log messages from journald
logs, and pretty print them. Optionally with some very rudimentary
filtering based on log level, message kind, or broker run id.

Example:

    sudo journalctl -S today -u radicle-ci-broker -o json | cibtool log --log-level info

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-12 17:35:22 +02:00
Lars Wirzenius 3ce84a47c0 test: in acceptance scenarios, search for log ids, not message texts
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-11 12:23:05 +02:00
Lars Wirzenius cdd6a6c212 feat: add a "message id" field to each log message
This identifies what the message is, without having to parse the
message text, which is free form and may change and may some day get
translated.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-11 11:44:41 +02:00
Lars Wirzenius a7c9bd13c5 feat: don't crash when failing to create trigger message
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-09 12:44:11 +02:00
Lars Wirzenius f42ea5cb9c refactor: add RunBuilder to build a Run
This is a nicer interface than the old Run::new, with many arguments.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 15:43:58 +02:00
Lars Wirzenius e431a10f35 feat: add broker run ID to log messages related to a specific CI run
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 15:22:47 +02:00
Lars Wirzenius 162d80347c chore: tidy up logging
Adjust log levels for messages, move data from free-form text field
into extra fields (even if still in free-form text form, as debug
formatted Rust values), and other related changes.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 12:34:13 +02:00
Lars Wirzenius 6dc8f8e202 chore: prepare release 0.10.0
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:47:12 +02:00
Lars Wirzenius 2e2236aea7 fix: use node id from ref name as originating node id
Change CI event creation to set the `from_node` field to the node id
in the Git ref being updated. Previously we set it to the `remote`
field in the node event, but that is id of the node from which our
local node got the `RefsUpdated` event, not the node where the change
was originally made.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:20:04 +02:00
Lars Wirzenius 10f52163ba feat: add detailed trace logging to trigger message construction
This makes the code more verbose, possibly harder to follow, but will
make it easier to figure what's going wrong, in production. That's
more valuable than elegant code.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:20:04 +02:00
Lars Wirzenius 660109e72e feat: use trace level for trigger creation logging
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:20:04 +02:00
Lars Wirzenius 3d942273f9 feat: extract config data to a separate field in log message
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:20:04 +02:00
Lars Wirzenius bb9e9f27bc refactor: node and CI event and trigger message creation
Refactor the code the constructs CI events from node events, and
trigger messages from CI events, to debug why I'm having trouble with
patch events.

Also adjust debug logging so I have more insight of what's going on.

Also, make code clearer, less repetitive, and overall easier to
follow.
2024-12-05 08:20:04 +02:00
Lars Wirzenius 1bc0ad40dc feat: cibtool can add every type of CI event to event queue
Add support to "cibtool event add" for branch deletion, and patch
creation and update events. Use this in a scenario that adds every
type of event to the queue and processes them. This ensures the CI
broker can actually handle any kind of CI event.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:20:04 +02:00
Lars Wirzenius 46651b7fa5 chore: bump dependency on radicle to 0.14.0
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-05 08:20:04 +02:00
Lars Wirzenius ac3fcf28a3 doc: add help texts to cib options and subcommands
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-04 11:01:49 +02:00
Lars Wirzenius f0a3e65c59 fix: drop unused embedded files from the subplot document
`subplot docgen` fails if an embedded file is not used. Drop the three
files that are no longer used.

This would've been found earlier if I gated merges on CI passing.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-12-04 10:59:47 +02:00
Lars Wirzenius 4512912804 test: document and test step to construct a refsFetched event
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-29 10:02:47 +02:00
Lars Wirzenius 4589438f46 test: document and test step to create a repository
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-29 10:02:47 +02:00
Lars Wirzenius d802be2a69 test: document and test the step to create and configure a node
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-29 10:02:47 +02:00
Lars Wirzenius d7428e5f94 chore: drop unused scenario step implementations
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-29 10:02:47 +02:00
Lars Wirzenius a1ff0a41b7 test: use new scenario steps in all scenarios
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-29 10:02:47 +02:00
Lars Wirzenius 964d3e1ed2 test: add higher level scenario steps
These are q step towards making scenarios less mired with test
implementation details.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-29 10:02:44 +02:00
Lars Wirzenius b4f379ad26 feat: use fields for extra data in log messages
This makes it easier to access the data than having to parse it from
free-form text fields.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-27 13:43:22 +02:00
Lars Wirzenius ee177c8f20 chore: drop unnecessary Logger
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-27 13:23:32 +02:00
Lars Wirzenius a506c6ebd3 chore: drop unused LogWriter
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-27 13:23:26 +02:00
Lars Wirzenius 9727a392aa feat: add a "kind" field to log messages
This will help with post-processing and filtering logs without having
to rely on the text of the log message.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-27 13:06:33 +02:00
Lars Wirzenius cf395350ea feat: use the tracing crate for structured logging
Switch from the "slog" family of crates for structured logging to the
"tracing" family. There should be no significant changes to the log
messages, so I don't consider this to be a breaking change.

The benefit of this change is that it opens up the possibility to add
extra fields to the log messages as JSON values, instead of strings
that contain the values as JSON.

With slog we currently have this message::

  {"msg":"broker database: /home/_rad/ci-broker.db"}

With slog or tracing we can change this to:

  {"msg":"open database", "filename": "/home/_rad/ci-broker.db"}

With tracing we can have this:

  {"msg":"open database","db":{"type":"sqlite","filename":"/home/_rad/ci-broker.db","size":12765}}

which would be, formatted prettily

  {
    "msg": "open database",
    "db": {
      "type": "sqlite",
      "filename": "/home/_rad/ci-broker.db",
      "size": 12765
    }
  }

Such extra fields can then be easily queried or otherwise processed
with programs, much more easily than having such programs parse text
fields as JSON before they can be processed.

Doing this with slog is supposed to be possible, but I have failed to
get it to work. The slog and tracing families of libraries seem
otherwise similar for our purposes.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-26 18:57:25 +02:00
Lars Wirzenius 84cfab01de feat: lower log level for various messages
Log level info should not be full of irrelevancies for node operators.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-25 10:18:20 +02:00
Lars Wirzenius 67c215c9d8 fix: show branch name in push events in HTML reports
We used to parse the ref name to find out the branch name, when
creating a trigger message. The CI events now do that for us. This
meant that parsing the branch name failed, and resulted in the empty
string.

Fix this by using already-parsed branch name from the CI event instead
of trying to parse it again.

Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-22 12:56:23 +02:00
Lars Wirzenius 70f1ba7de5 chore: prepare release 0.9.0
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-21 10:19:56 +02:00
Lars Wirzenius 54c3459aa4 feat: add repository alias to event queue
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-20 12:41:41 +02:00
Lars Wirzenius b707c812df feat: add count of recent failures to front page
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-20 12:17:54 +02:00
Lars Wirzenius d5f6520486 feat: add run counts for all repositories together to report
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-20 11:36:39 +02:00
Lars Wirzenius 331caf78ff feat: add per-repository run count (total, failed) to report
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-20 11:32:57 +02:00
Lars Wirzenius b8027442ca fix: add a time stamp to RSS feed items
Signed-off-by: Lars Wirzenius <liw@liw.fi>
2024-11-14 07:11:37 +02:00