Skip to content

chore: speed up sdk tests, set up actionlint - #3660

Merged
sxlijin merged 1 commit into
canaryfrom
sam/sdk-setup-build-caching
Jun 3, 2026
Merged

sxlijin merged 1 commit into
canaryfrom
sam/sdk-setup-build-caching

Conversation

@sxlijin

@sxlijin sxlijin commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores
    • Updated CI/CD testing workflows to improve test execution scope.
    • Added configuration for workflow validation tooling.
    • Enhanced development environment setup tooling.

@vercel

vercel Bot commented Jun 3, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview, Comment Jun 3, 2026 9:47am
promptfiddle Ready Ready Preview, Comment Jun 3, 2026 9:47am
promptfiddle2 Ready Ready Preview, Comment Jun 3, 2026 9:47am

Request Review

@coderabbitai

coderabbitai Bot commented Jun 3, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds an actionlint config and registers actionlint in mise.toml, and scopes the sdk-tests job's cargo nextest run steps to the matrix-selected package using -p ${{ matrix.package-name }}.

Changes

CI workflow tooling and test scoping

Layer / File(s) Summary
GitHub Actions linting configuration
.github/actionlint.yaml, mise.toml
New .github/actionlint.yaml lists allowed self-hosted-runner labels; mise.toml adds actionlint = "latest" under [tools].
SDK test execution per-package scoping
.github/workflows/cargo-tests.reusable.yaml
Both "Run sdk test setup" and "Run sdk tests" nextest steps add -p ${{ matrix.package-name }} while keeping existing -E filters to ensure execution is limited to the selected package.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • BoundaryML/baml#3644: Modifies the same .github/workflows/cargo-tests.reusable.yaml to package-scope SDK nextest execution.
  • BoundaryML/baml#3496: Adjusts nextest invocation/filters in the shared cargo tests workflow.
  • BoundaryML/baml#3489: Changes the reusable workflow's SDK test execution paths and layout.

Poem

🐰
I hopped through YAML with a tiny cheer,
Linted the runners so workflows steer clear,
Scoped tests per package, neat and spry,
CI hums softly — carrot-cake for I! 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 78.57% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main changes: speeding up SDK tests (by adding package-scoping to cargo nextest) and setting up actionlint (new config file and tool setup).
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch sam/sdk-setup-build-caching

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 07:39 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 07:45 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle June 3, 2026 07:56 Inactive
@sxlijin
sxlijin force-pushed the sam/sdk-setup-build-caching branch from a8dcc49 to af7ace4 Compare June 3, 2026 08:07
@sxlijin
sxlijin changed the base branch from canary to push-oywruyxkuvnm June 3, 2026 08:08
@github-actions

github-actions Bot commented Jun 3, 2026 •

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 08:09 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 08:14 Inactive
@sxlijin
sxlijin force-pushed the sam/sdk-setup-build-caching branch from af7ace4 to c0fd379 Compare June 3, 2026 08:27
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 08:28 Inactive
@github-actions

github-actions Bot commented Jun 3, 2026 •

Copy link
Copy Markdown

Binary size checks passed

✅ 7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
✅ baml-cli Linux 🔒 17.4 MB 7.4 MB file 24.1 MB -6.7 MB (-27.9%) OK
✅ packed-program Linux 🔒 12.7 MB 5.4 MB file 15.1 MB -2.4 MB (-16.1%) OK
✅ baml-cli macOS 🔒 13.2 MB 6.4 MB file 18.2 MB -5.0 MB (-27.3%) OK
✅ packed-program macOS 🔒 9.7 MB 4.7 MB file 11.5 MB -1.8 MB (-16.0%) OK
✅ baml-cli Windows 🔒 14.2 MB 6.5 MB file 19.6 MB -5.4 MB (-27.5%) OK
✅ packed-program Windows 🔒 10.2 MB 4.7 MB file 12.2 MB -2.0 MB (-16.7%) OK
✅ bridge_wasm WASM 11.6 MB 🔒 3.3 MB gzip 3.9 MB -580.9 KB (-15.0%) OK

🔒 = the size this artifact is GATED on (ceiling + delta). Binaries gate on file size (installed binary); WASM gates on gzip (download size). The other size is shown for information only.


Generated by cargo size-gate · workflow run

@sxlijin
sxlijin force-pushed the sam/sdk-setup-build-caching branch from c0fd379 to 959ad64 Compare June 3, 2026 08:32
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 08:33 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 08:38 Inactive
@sxlijin
sxlijin force-pushed the push-oywruyxkuvnm branch from 596c81b to 6e25687 Compare June 3, 2026 08:39
@sxlijin
sxlijin force-pushed the sam/sdk-setup-build-caching branch from 959ad64 to f8e2166 Compare June 3, 2026 08:46
@sxlijin
sxlijin changed the base branch from push-oywruyxkuvnm to canary June 3, 2026 08:46
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 08:47 Inactive
@sxlijin sxlijin changed the title ci: scope sdk-tests nextest with -p and trim dev debuginfo chore: speed up sdk tests, set up actionlint Jun 3, 2026
@sxlijin
sxlijin enabled auto-merge June 3, 2026 08:51
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 08:52 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle June 3, 2026 09:05 Inactive
The "Run sdk test setup" / "Run sdk tests" steps ran `cargo nextest run`
without `-p`, so nextest compiled the whole workspace's ~145 test binaries
to run a single package's tests (~2m30s/step even on a fully hot cache).
The `-E` filter only selects which tests run, not what compiles. The SDK
crates have no cargo dependency on the bridge cdylibs, so adding
`-p ${{ matrix.package-name }}` is safe.

Tooling: add actionlint to mise.toml plus a .github/actionlint.yaml that
declares our Blacksmith self-hosted runner labels, so the workflows lint
clean locally and in CI.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@sxlijin
sxlijin force-pushed the sam/sdk-setup-build-caching branch from f8e2166 to d791593 Compare June 3, 2026 09:28
@vercel
vercel Bot temporarily deployed to Preview – beps June 3, 2026 09:29 Inactive

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
mise.toml (1)

40-40: ⚡ Quick win

Allow actionlint = "latest" in mise.toml — mise supports it.

actionlint is included in mise’s official registry, so setup-mise should be able to install it from mise.toml. Optional: add a brief category/comment header around it to keep grouping consistent.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@mise.toml` at line 40, Update the setup-mise installation logic to accept and
install entries specified as actionlint = "latest" in mise.toml: when parsing
entries like the string "latest" for an action (e.g., actionlint), resolve it to
the registry's latest version instead of failing or requiring a pinned version,
then proceed with normal install; also add an optional grouped comment/header
near the actionlint entry in mise.toml to keep consistency with other tool
groups. Ensure the code paths that lookup registry entries and call install use
the same identifier (actionlint) and handle the "latest" sentinel by querying
the registry for its current version before downloading.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@mise.toml`:
- Line 40: Update the setup-mise installation logic to accept and install
entries specified as actionlint = "latest" in mise.toml: when parsing entries
like the string "latest" for an action (e.g., actionlint), resolve it to the
registry's latest version instead of failing or requiring a pinned version, then
proceed with normal install; also add an optional grouped comment/header near
the actionlint entry in mise.toml to keep consistency with other tool groups.
Ensure the code paths that lookup registry entries and call install use the same
identifier (actionlint) and handle the "latest" sentinel by querying the
registry for its current version before downloading.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: e319e472-818d-4f2b-8bf3-dc69ca452f45

📥 Commits

Reviewing files that changed from the base of the PR and between f8e2166 and d791593.

📒 Files selected for processing (3)
  • .github/actionlint.yaml
  • .github/workflows/cargo-tests.reusable.yaml
  • mise.toml
✅ Files skipped from review due to trivial changes (1)
  • .github/actionlint.yaml
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/cargo-tests.reusable.yaml

@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 June 3, 2026 09:34 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle June 3, 2026 09:47 Inactive
@sxlijin
sxlijin added this pull request to the merge queue Jun 3, 2026
Merged via the queue into canary with commit 0b62aea Jun 3, 2026
49 of 51 checks passed
@sxlijin
sxlijin deleted the sam/sdk-setup-build-caching branch June 3, 2026 10:00
@coderabbitai coderabbitai Bot mentioned this pull request Jun 3, 2026

This branch was previously deployed

3 inactive deployments
Preview – promptfiddle — d7915935 Deployed Jun 3, 2026 by vercel[bot]
Preview – promptfiddle2 — d7915935 Deployed Jun 3, 2026 by vercel[bot]
Preview – beps — d7915935 Deployed Jun 3, 2026 by vercel[bot]
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.

1 participant