fix(ci): compile every workspace package in CI Fast - #208
Merged
Conversation
`tests/e2e/test-apps/comprehensive-rust` (`alien-test-server`) stopped compiling when 2a6cd64 (#169) removed the redundant binding-name argument from `BoundQueue::send/receive/ack`. The app is the default target of the e2e-cloud workflow, so cloud Rust e2e has been broken since 2026-07-21. CI Fast missed it because the package was listed under `--exclude`, which drops a package from compilation, not just from the test run. Replace it with a `--filter-expr` clause: the package is built, only its tests are skipped. `byocdb` and `endpoint-agent` were excluded the same way for no reason — both compile and their 9 unit tests pass in under a tenth of a second, so they now build and run normally. Also sweep pre-existing `cargo fmt` drift across seven files, which was masking real formatting failures because the pre-commit hook only rustfmt-checks changed files. Refs ALIEN-335
Greptile SummaryRestores comprehensive Rust workspace compilation in CI Fast.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| .github/workflows/ci-fast.yml | Replaces workspace exclusions with test-level nextest filters while retaining the existing cloud and integration-suite exclusions. |
| tests/e2e/test-apps/comprehensive-rust/src/handlers/queue.rs | Removes obsolete queue-name arguments from four BoundQueue operations, matching the queue handle’s bound-name contract. |
| crates/alien-deploy-cli/src/commands/register.rs | Contains formatting-only changes. |
| crates/alien-deployment/src/pending.rs | Contains formatting-only changes to imports, wrapping, and test fixtures. |
| crates/alien-deployment/tests/test_platform.rs | Contains formatting-only changes. |
| crates/alien-preflights/src/compatibility/permission_profiles_unchanged.rs | Contains formatting-only changes. |
| crates/alien-preflights/src/compile_time/resource_enabled_valid.rs | Contains formatting-only changes. |
| crates/alien-terraform/src/emitters/gcp/kv.rs | Contains formatting-only import and wrapping changes. |
| crates/alien-terraform/tests/generator/helpers.rs | Contains formatting-only import changes. |
Reviews (3): Last reviewed commit: "refactor(ci): split the fast-test filter..." | Re-trigger Greptile
The break landed in #169 (2026-07-21), not over a month ago.
The filterset is now load-bearing for compile coverage, but it was a single ~600-character line holding roughly 15 clauses, so a wrong or missing clause was undetectable in review. Same expression, one clause per line, grouped by suite.
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.
Refs ALIEN-335
The break
tests/e2e/test-apps/comprehensive-rust(packagealien-test-server) has not compiled since 2026-07-21.2a6cd640("feat!: simplify commands and runtime bindings", #169) removed the redundant binding-name argument fromBoundQueue::send/receive/ack— the handle already carries its own name:Four call sites in
src/handlers/queue.rswere never updated, so the package fails witherror[E0061]: this method takes 1 argument but 2 arguments were supplied.binding_namestays a live local at every site (it is still used for the binding lookup, the log line, and the response), so this is a pure argument drop with no dead bindings left behind.alien-test-serveris the defaultappinput of the manuale2e-cloudworkflow and is deployed to AWS, GCP and Azure. Cloud Rust e2e has therefore been broken for over a month. Nobody noticed because that workflow isworkflow_dispatch-only.Why CI Fast stayed green — the part that matters
CI Fast ran:
--excluderemoves a package from compilation, not just from the test run. Once a package is behind--exclude, nothing in CI Fast builds it, and it rots silently until something else happens to build it — which for an e2e-only app is "never, until someone dispatches the cloud workflow."The
filter-exprtreatment already applied toalien-bindingsin the same command —not (package(alien-bindings) and kind(test))— is the correct pattern: the package still compiles, only the selected tests are skipped, so a break fails the job even though the tests never run.All three
--excludeflags are now gone.alien-test-servermoves to a filter clause, and a comment on the step records why--excludemust not come back.byocdbandendpoint-agentBoth were excluded for the same blunt reason — no rationale in the diff, and both flags date back to the initial import without ever being revisited. Verified locally that neither needs to be excluded at all, so they now compile and run:
Their 9 unit tests are pure in-process checks — duration parsing, PII regexes, command-receiver env validation — with no network, credentials, or system dependencies:
43 milliseconds of coverage that CI has been throwing away. Neither needs a filter clause.
alien-test-serverkeeps a filter clause rather than being left uncovered: it has no Rust unit tests today, and the clause stops any added later from silently starting to run in the fast job when they belong ine2e-cloud.fmt sweep
cargo fmt --all -- --checkwas already failing onmainacross 7 files inalien-deploy-cli,alien-deployment,alien-preflightsandalien-terraform.hkonly rustfmt-checks changed files, so this drift was invisible day to day while masking any real formatting failure in those crates.Ran
cargo fmt --all. The diff is import reordering and line wrapping only — no semantic change.Validation
Core proof — the package compiles again:
The exact CI Fast invocation with the edited flags, proving every included package builds:
No package other than
alien-test-serverwas hiding a compile break.Full run of the same command was also done locally, after
pnpm install --frozen-lockfile. It is not a clean signal on this machine and I am not claiming it as one:terraform,helmandkubeconformare not installed here, and CI installs all three before this step. The generator does a best-effortterraform fmtpass and says so itself:So every local failure is an
alien-terraforminsta snapshot or analien-testassertion comparing against equals-sign-aligned HCL (e.g.rendered.contains("id = \"management\"")). Diffing one snapshot against its.newshows nothing but alignment:None of these touch anything this PR changes, and the two
alien-terraformfiles in the fmt sweep are import re-wrapping plus one filegit diffreports as "No syntactic changes". The authoritative full-run signal is this PR's own CI Fast job, which has the toolchain installed — and it is green:That is the real proof: the whole workspace — now including
alien-test-server,byocdbandendpoint-agent— compiles and passes under the edited flags.Formatting and whitespace:
The workflow file was also parsed with a YAML loader to confirm the edited
runblock is intact, andcargo nextest listunder the new filter confirms it selects the 9byocdb/endpoint-agenttests and zeroalien-test-serverentries.