feat: queue only the runs the event actually triggers #3

Merged
day01 merged %!d() commits from %!s() into %!s() 2026-08-06 09:23:12 +00:00
Owner

Depends on syncode/workflow#4, and is pinned to that branch until it merges.

Triggering read a workflow and queued it. It now asks the workflow whether it
wants the event first. A workflow that does not declare the event is neither an
error nor a run — it has nothing to say about it — so Triggered says which of
the two happened rather than returning an empty list that means two things.

What the workflow does declare still becomes one run per matrix combination,
each carrying its own plan.

Verification

cargo fmt --check, cargo clippy --workspace --all-targets --all-features -- -D warnings,
cargo test --workspace --all-targets --all-features, check-architecture.sh,
check-rust-loc.sh.

Next

Reading the workflow files from a commit, and the forge event feed that produces
the events this now takes.

Depends on `syncode/workflow#4`, and is pinned to that branch until it merges. Triggering read a workflow and queued it. It now asks the workflow whether it wants the event first. A workflow that does not declare the event is neither an error nor a run — it has nothing to say about it — so `Triggered` says which of the two happened rather than returning an empty list that means two things. What the workflow does declare still becomes one run per matrix combination, each carrying its own plan. ## Verification `cargo fmt --check`, `cargo clippy --workspace --all-targets --all-features -- -D warnings`, `cargo test --workspace --all-targets --all-features`, `check-architecture.sh`, `check-rust-loc.sh`. ## Next Reading the workflow files from a commit, and the forge event feed that produces the events this now takes.
day01 added 1 commit 2026-08-06 06:58:22 +00:00
		Triggering read a workflow and queued it. It now asks the workflow whether it
wants this event first: a workflow that does not declare it is neither an error
nor a run, and queues nothing. What the workflow does declare still becomes one
run per matrix combination.
	
day01 added 1 commit 2026-08-06 07:13:15 +00:00
		A run has to be compiled from what a commit says, not from what the branch says
by the time the control plane gets round to it, so the contents are read at a
stated commit. Both directories the dialect allows are read, in the order the
forge reads them.

A repository without workflows is not a failure; a forge that refuses is, and
says so rather than passing for a repository with nothing in it.
	
day01 added 1 commit 2026-08-06 07:22:27 +00:00
day01 added 1 commit 2026-08-06 07:34:03 +00:00
		A workflow that calls another contributes the called workflow's runs, resolved
from the same commit, so the whole run is compiled from one state of the
repository. A cycle is refused, a call this commit does not contain is refused,
and calling another repository is refused with the reason rather than treated as
missing.

Inputs and secrets are not passed yet, so a call that states them is refused.
Running the called workflow without them would run the wrong thing quietly.
	
day01 added 1 commit 2026-08-06 09:20:40 +00:00
day01 merged commit 7debe1ed1d into %!s() 2026-08-06 09:23:12 +00:00
day01 deleted branch feat/queue-only-what-the-event-triggers 2026-08-06 09:23:12 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: syncode/control#3