Skip to content

Add downstream-check CI (builds Strata against DDM PRs)#3

Draft
shigoel wants to merge 2 commits into
mainfrom
add-downstream-check
Draft

Add downstream-check CI (builds Strata against DDM PRs)#3
shigoel wants to merge 2 commits into
mainfrom
add-downstream-check

Conversation

@shigoel

@shigoel shigoel commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

What

Advisory, non-blocking cross-repo check: when a StrataDDM PR is ready (or a collaborator comments !downstream-check), build Strata against this PR's StrataDDM code to catch breakage before it lands on main. Result shows up as a Downstream / Strata job on the PR.

Builds Strata with its full toolchain (cvc5 + z3 + .NET + ion-java jar) and runs lake test, matching Strata's own CI, so a green check means the same thing.

Mechanism

Checks out the PR's StrataDDM, clones Strata, rewrites Strata's require "StrataDDM" to a local path (fork-safe), then lake update StrataDDM + build + test. Reuses the downstream-gate and rewrite-require composite actions from strata-org/Strata via @main.

Transitive breakage (DDM → Strata → Boole/Python/CLI) is intentionally not chased here — that's caught when the DDM rev is bumped in a Strata PR, which fires Strata's own check.

Depends on

⚠️ strata-org/Strata#1387 must land first — this workflow references composite actions that don't exist on Strata main until that PR merges. Until then this check will error (expected). Part of the same cross-repo rollout; see #1387 for the full design.

Draft for early feedback.

Advisory, non-blocking check: builds Strata against this PR's StrataDDM code
to catch breakage before it lands on main. Reuses the downstream-gate and
rewrite-require composite actions from strata-org/Strata via @main.

Depends on strata-org/Strata#1387 landing first (the composite actions
must exist on Strata main before this workflow can resolve them).
Comment thread .github/workflows/downstream-check.yml Fixed
Comment thread .github/workflows/downstream-check.yml Fixed
The issue_comment trigger runs in the privileged default-branch context;
building untrusted PR code there is a cache-poisoning / code-execution vector
(CodeQL actions/cache-poisoning/poisonable-step). Run only on pull_request,
which builds the same code in an isolated, unprivileged context.

Collapses the gate job into a job-level draft check and reads the PR head SHA
from the event payload (no shared gate action needed).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants