Repository navigation
Conversation
|
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
Test EQL decided whether to run its heavy jobs from one list of paths. That list included the stack-* crates, so a pull request that changed only stack-encrypt ran the whole Postgres suite. Only the Rust workspace crates job compiles those crates, through the stack-encrypt feature of eql-bindings. The SQLx suite and the codegen crates never enable it. The first job is now the selector job from ADR 0003. It runs on a GitHub-hosted runner, because every gated job waits for it. The selector has two filters. Nine jobs read eql. The Rust workspace crates job reads rust_crates. That filter adds the stack-* crates and the root Cargo.toml. On a pull request, the selector now fails when a filter gives no answer. Before, a missing answer skipped every gated job, and ci-required counts skipped as passed. eql-selector.test.mjs runs the selector's own script for a simulated pull request and evaluates each job's if: against its outputs.
auxesis
force-pushed
the
docs/ci-cost-decisions
branch
from
October 28, 2026 11:55
06d0a61 to
49052a2
Compare
auxesis
force-pushed
the
ci/test-eql-selector-job
branch
from
October 28, 2026 11:55
66db9c0 to
8cd0786
Compare
This was referenced Oct 28, 2026
Every job in this repository is getting a timeout-minutes limit. In the RunsOn trial, one job without a limit ran for over 2 hours. The selector job is new in this branch, so the change that adds the other limits cannot see it. The selector only reads a list of changed files. Ten minutes is far more than it needs.
This was referenced Oct 28, 2026
The repository now requires a maintainer to approve the workflow runs of every outside contributor, not only a first-time one. The comment on the fork guard said otherwise. The guard itself stays, because an approved run still executes the fork's code.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test EQL tests EQL, the SQL that stores and queries encrypted values in Postgres. It used one list of paths to decide whether to run its heavy jobs. That list included the stack-* Rust crates. So a pull request that changed only
stack-encryptran the whole Postgres test suite on 16-vCPU machines. From 30 September to 20 October 2026, 42 pull requests did that.After this change, such a pull request runs only the job that compiles those crates.
This pull request is stacked on #1416. Merge that one first.
Changes
test-eql.yml,changes, is nowselector. It runs on a GitHub-hosted runner, because every gated job waits for it.eql. The "Rust workspace crates" job readsrust_crates. That filter adds the stack-* crates and the rootCargo.toml.ci-requiredcounts skipped as passed.scripts/__tests__/eql-selector.test.mjsruns the selector's own script for a simulated pull request. Then it evaluates each job's realif:against the outputs.scripts/__tests__/lib/paths-filter.mjsaspathsGlobToRegExp.Only "Rust workspace crates" compiles the stack-* crates. It does so through the
stack-encryptfeature ofeql-bindings. I checked every cargo command inpackages/eql/mise.tomland its task scripts. The SQLx suite and the codegen crates never enable that feature.Verification
pnpm run test:scripts: 81 files, 1,428 tests passed, 3 skipped.actionlint1.7.12 withshellcheck0.11.0 ontest-eql.yml: no findings.dorny/paths-filterversion documents the*aliasform thatrust_cratesuses.test-eql.yml, so Test EQL runs every gated job here.Related
Review notes
selectorjob and at theif:of therust-cratesjob.ci-requiredand thesetupjob stay on Blacksmith. Light jobs move together in a later change.