Skip to content

ci: skip SDK test matrices on markdown-only changes - #2967

Merged
opieter-aws merged 1 commit into
strands-agents:mainfrom
opieter-aws:opieter-aws/ci-skip-md-only-sdk-runs
Jun 25, 2026
Merged

opieter-aws merged 1 commit into
strands-agents:mainfrom
opieter-aws:opieter-aws/ci-skip-md-only-sdk-runs

Conversation

@opieter-aws

@opieter-aws opieter-aws commented Jun 25, 2026 •

Copy link
Copy Markdown
Contributor

Description

Don't run the entire integ test suite on markdown changes only. See e.g. #2959

Verified all test suites run as expected when .md changes are combined with source code changes.

Related Issues

Motivated by the CI behavior observed on #2959.

Documentation PR

Not applicable.

Type of Change

Other (please describe): CI configuration — refine merge-gate path filtering.

Testing

Cannot run the merge gate locally, but I traced the edited filters against the real paths-filter matching algorithm (per-pattern picomatch({dot:true}), OR-ed under the some quantifier) for representative change-sets:

  • strands-py/AGENTS.md only → python does not fire (intended)
  • strands-py/src/strands/agent/agent.py → python fires (intended)
  • strands-py/AGENTS.md + …/agent.py together → python fires — the critical mixed case: any non-.md file in the changeset still triggers the suite
  • strands-ts/AGENTS.md only → typescript does not fire (intended)
  • site/** → docs fires, SDK suites do not (unchanged)

Note: because every filter lists .github/workflows/ci.yml, this PR itself will (correctly) trigger all three suites.

  • I ran hatch run prepare

Checklist

  • I have read the CONTRIBUTING document
  • I have reviewed and understand every line of code in this PR, including any generated by AI tools, and I can explain why it works
  • My change is focused and reasonably small; I have split unrelated work into separate PRs
  • I have added any necessary tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have added an appropriate example to the documentation to outline the feature, or no new docs are needed
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@github-actions github-actions Bot added size/xs chore Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact area-community Related to community and contributor health labels Jun 25, 2026
@opieter-aws
opieter-aws marked this pull request as ready for review June 25, 2026 19:25
@opieter-aws opieter-aws removed the area-community Related to community and contributor health label Jun 25, 2026
Comment thread .github/workflows/ci.yml Resolved
@opieter-aws
opieter-aws enabled auto-merge (squash) June 25, 2026 19:28
@codecov

codecov Bot commented Jun 25, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Comment thread .github/workflows/ci.yml Resolved
@github-actions

Copy link
Copy Markdown
Contributor

Assessment: Approve

Focused, correct CI change. I reproduced the paths-filter matching behavior locally with picomatch (both v2.3.2 and v4.0.4) under {dot: true} and confirmed the extglob does exactly what the PR claims — including the critical mixed-changeset case.

What I verified
  • strands-py/**/!(*.md) excludes .md at every depth (AGENTS.md, README.md, docs/*.md, a/b/c.md).
  • Non-.md files match at every depth, including no-extension (Makefile) and dotfiles (.gitignore).
  • Top-level non-.md with zero intermediate dirs (e.g. conftest.py) still matches — so a mixed .md + source changeset correctly fires the suite.
  • The inline comment's warning about a bare !**/*.md negation is accurate and worth keeping.
  • The python-check-markdown-links workflow is schedule/workflow_dispatch-triggered, not gated by ci.yml, so markdown link checking is unaffected by this change.

One minor, non-blocking consistency nit left inline (strandly/**). Nice, well-reasoned change with the manual verification documented in the description.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance tasks, dependency updates, CI changes, refactoring with no user-facing impact size/xs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants