Add CI for the data feeds contracts workspace - #177
Draft
Fletch153 wants to merge 2 commits into
Draft
Conversation
Fletch153
changed the base branch from
main
to
feature/DF-25434/data-feeds-deployment
August 10, 2026 12:52
Soroban Contract Test Coverage92.57% line coverage — 18067 / 19517 lines hit
Per-Contract Breakdown
Full file-level coverage report |
Fletch153
force-pushed
the
feature/DF-25434/data-feeds-deployment
branch
from
August 10, 2026 22:42
971e21a to
5c98a9c
Compare
- New data-feeds-contracts workflow: tests, clippy, fmt check, and wasm build for contracts/data-feeds, path-filtered so other projects' PRs skip it - Parameterize setup-rust-toolchain action with toolchain and clippy inputs; scope rustup adds to the requested toolchain - Install rust 1.96.0 in check-formatting so repo-wide fmt check covers the data feeds workspace - Detect brand-new generated files in check-generated via git add --intent-to-add before diffing - Delegate data feeds recipes from the root Justfile to a new contracts/data-feeds/Justfile module
soroban-sdk 26.1 refuses wasm builds from stellar-cli older than 25.2.0, so the data feeds Build WASM job installs 27.0.0 (matching local development). Other workflows keep the 25.1.0 default.
Fletch153
force-pushed
the
chore/DF-25509/data-feeds-contracts-ci
branch
from
August 10, 2026 22:55
3fc2722 to
573409e
Compare
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
contracts/data-feeds) their own CI: tests, clippy, formatting, and a wasm build, without touching how the CCIP workspace is built or tested.Context
The data feeds contracts live in their own cargo workspace pinned to a newer rust and soroban-sdk than the root workspace, so none of the existing contract workflows compiled them. This adds coverage for that workspace while keeping the two projects independent: data feeds jobs only trigger on changes that affect them, and other projects' PRs are unaffected.
Changes
data-feeds-contracts.yamlwith test, lint plus format, and wasm build jobs running insidecontracts/data-feeds. Path filtered to the workspace, the workflow itself, and the composite actions the jobs execute, so a broken action edit fails here instead of on the next unrelated data feeds PR. Runs unfiltered in merge groups, matching the other workflows.setup-rust-toolchainnow takestoolchainandclippyinputs (defaults unchanged, existing callers behave identically). The rustup target and component installs are scoped to the requested toolchain instead of whatever is currently default, which matters now that one job can install two toolchains.check-formattingadditionally installs the data feeds toolchain with rustfmt, since the repo-wide format check now recurses into the data feeds workspace and each toolchain needs its own rustfmt.check-generatedmarks untracked files withgit add --intent-to-addbefore diffing. Previously a brand-new contract whose generated bindings were never committed would pass, becausegit diffignores untracked files.contracts/data-feeds/Justfileowns the workspace's recipes; the root Justfile mounts it as a module and delegates, so root recipes stay generic. Root also gainslint-contractsand runs it in theallpipeline.Testing
just check-contracts,just fmt-contracts-check, andjust lint-contractsrun clean locally across both workspaces.Notes