ci: make workflows conditional, add docs-only spread tests
Metadata
Current evaluation
Merged after approval. Updates CI workflows to run conditionally on changed files, splitting source and documentation spread tests into separate runners. Predictable initial failures were acknowledged, and the changes were merged.
Suggested action: —
No scores available.
Issue body
Make workflows and jobs conditional:
- Full QA / lint runs if source files change.
- QA / Test runs if source files change.
- The Spread workflow calls the `test/**` Spread tests if source files change.
Add a Docs Spread workflow that runs the `docs/**` Spread tests if docs files change.
With the QA workflow, if there's a change to the source, all linters run in one runner (`make lint`). But for the Spread tests, there's a hard split between the docs and source Spread tests, meaning each will spawn their own runner. This isn't bad, but it adds complexity and inconsistency between the different workflow types. If Starflow's QA workflow were completely split, we could properly partition the checks in both collections – QA source, QA docs, Spread source, Spread docs.
---
- [x] I've followed the [contribution guidelines](https://github.com/canonical/rockcraft/blob/main/CONTRIBUTING.md).
- [x] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/).
- [x] I've successfully run `make lint && make test`.
- [ ] I've added or updated any relevant documentation.
- [ ] In documents I changed, I [added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing.
- [ ] I've updated the relevant release notes.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged after approval. Updates CI workflows to run conditionally on changed files, splitting source and documentation spread tests into separate runners. Predictable initial failures were acknowledged, and the changes were merged. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. CI workflows now run conditionally based on changed files, splitting Spread tests into dedicated source and docs jobs. The docs spread test fails predictably but was included in the merge. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. CI workflows are now conditional on file changes, routing source updates to full QA and source Spread tests while adding a dedicated docs-only Spread workflow. A predictable docs test failure was noted but did not block the merge. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #6245 ci: make workflows conditional, add docs-only spread tests | snapcraft | merged | Merged. Configured CI workflows to run conditionally based on changed files, separating source and documentation pipelines. Added a docs-only spread test workflow. Approved and merged. | |
| #2688 ci: make workflows conditional on affected files | charmcraft | merged | Merged changes optimizing CI workflows to run conditionally on affected files. Test, policy, experimental, and spread jobs now trigger only on relevant source or documentation changes, streamlining builds. | |
| #1205 ci: make workflows conditional, add docs-only spread tests | rockcraft | closed | Closed without merging. The changes to conditional CI workflows and docs-only Spread tests remained pending review with unresolved comments and failing snap-tests. The PR was likely abandoned or superseded. | |
| #1220 ci: always run spread workflow on schedule | rockcraft | merged | Merged CI configuration updates ensuring the full Spread test suite always runs on the scheduled bi-daily workflow for the main branch, preventing automatic skips. Approved by one reviewer and passed all checks. | |
| #2126 ci(docs): spread test documentation | charmcraft | merged | Merged changes adding a CI workflow for spread testing documentation and adjusting tasks for Google runners. Approved by two reviewers, the update modifies five files (+100/-22 lines) and resolves CRAFT-3798. | |
| #352 ci: add conditionals for docs-only checks | imagecraft | merged | Merged pull request adding CI conditionals to skip checks for documentation-only changes. Approved by a reviewer, passed all CI checks, and successfully integrated into the main branch. | |
| #143 docs: make docs spread-testable | craft-store | merged | Merged documentation spread-testing infrastructure setup. Approved by two reviewers and passing CI, the change modifies six files (+136/-41 lines) to enable local spread test execution for documentation. | |
| #801 test(spread): mark doc tests as manual | rockcraft | open | Marks doc spread tests as manual so they don't run on every code change. Pending review, 0 comments, no CI. Docs tests now run via a separate conditional workflow (spread-docs.yaml) on a weekly schedule and only when docs code changes. | |
| #546 docs: add filter to qa workflow | starbase | merged | Merged workflow updates adding conditionals to skip unnecessary documentation checks. The fork test job hanging was clarified as a missing self-hosted runner tag configuration issue. Approved by reviewers and merged after CI validation. | |
| #573 ci: run spread tests on 'spread-installed' runners | rockcraft | merged | Merged a two-file, four-line CI configuration change to run spread tests on spread-installed runners. Approved by three reviewers and integrated. |